diff --git a/previews/PR479/404.html b/previews/PR479/404.html index 6f522c1f..ba775fd8 100644 --- a/previews/PR479/404.html +++ b/previews/PR479/404.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@
- + \ No newline at end of file diff --git a/previews/PR479/UserGuide/cache.html b/previews/PR479/UserGuide/cache.html index 66f5cfb9..84387d9d 100644 --- a/previews/PR479/UserGuide/cache.html +++ b/previews/PR479/UserGuide/cache.html @@ -9,9 +9,9 @@ - + - + @@ -26,7 +26,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/PR479/UserGuide/chunk.html b/previews/PR479/UserGuide/chunk.html index fb8ec047..97b16607 100644 --- a/previews/PR479/UserGuide/chunk.html +++ b/previews/PR479/UserGuide/chunk.html @@ -9,9 +9,9 @@ - + - + @@ -119,7 +119,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/PR479/UserGuide/combine.html b/previews/PR479/UserGuide/combine.html index 0566807f..de0819cc 100644 --- a/previews/PR479/UserGuide/combine.html +++ b/previews/PR479/UserGuide/combine.html @@ -9,11 +9,11 @@ - + - + - + @@ -22,9 +22,10 @@
Skip to content

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
+using YAXArrays: YAXArrays as YAX
 
-first_half = YAXArray((Dim{:time}(1:6),), rand(6))
-second_half = YAXArray((Dim{:time}(7:12),), rand(6))
+first_half = YAXArray((YAX.time(1:6),), rand(6))
+second_half = YAXArray((YAX.time(7:12),), rand(6))
 whole_year = cat(first_half, second_half, dims = 1)
╭────────────────────────────────╮
 │ 12-element YAXArray{Float64,1} │
 ├────────────────────────────────┴──────────────────────────────── dims ┐
@@ -34,22 +35,23 @@
 ├───────────────────────────────────────────────────── loaded in memory ┤
   data size: 96.0 bytes
 └───────────────────────────────────────────────────────────────────────┘

concatenatecubes to a new dimension

Here we use concatenatecubes to combine two arrays of different variables that have the same dimensions. The resulting array combined has an additional dimension variable indicating from which array the element values originates. Note that using a Dataset instead is a more flexible approach in handling different variables.

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 
-temperature = YAXArray((Dim{:time}(1:6),), rand(6))
-precipitation = YAXArray((Dim{:time}(1:6),), rand(6))
+temperature = YAXArray((YAX.time(1:6),), rand(6))
+precipitation = YAXArray((YAX.time(1:6),), rand(6))
 cubes = [temperature,precipitation]
-var_axis = Dim{:variable}(["temp", "prep"])
+var_axis = Variables(["temp", "prep"])
 combined = concatenatecubes(cubes, var_axis)
╭─────────────────────────╮
 │ 6×2 YAXArray{Float64,2} │
-├─────────────────────────┴──────────────────────────────── dims ┐
-  ↓ time     Sampled{Int64} 1:6 ForwardOrdered Regular Points,
-  → variable Categorical{String} ["temp", "prep"] ReverseOrdered
-├────────────────────────────────────────────────────── metadata ┤
+├─────────────────────────┴───────────────────────────────── dims ┐
+  ↓ time      Sampled{Int64} 1:6 ForwardOrdered Regular Points,
+  → Variables Categorical{String} ["temp", "prep"] ReverseOrdered
+├─────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
-├───────────────────────────────────────────────── loaded lazily ┤
+├────────────────────────────────────────────────── loaded lazily ┤
   data size: 96.0 bytes
-└────────────────────────────────────────────────────────────────┘
- +└─────────────────────────────────────────────────────────────────┘ + \ No newline at end of file diff --git a/previews/PR479/UserGuide/compute.html b/previews/PR479/UserGuide/compute.html index bfbcef65..50495e4b 100644 --- a/previews/PR479/UserGuide/compute.html +++ b/previews/PR479/UserGuide/compute.html @@ -9,11 +9,11 @@ - + - + - + @@ -22,12 +22,13 @@
Skip to content

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 YAXArrays: YAXArrays as YAX
 using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
@@ -42,7 +43,7 @@
   :origin => "user guide"
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 35.16 KB
-└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.5665467544778467
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.062032476785460866
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,
@@ -86,9 +87,10 @@
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 240.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

mapCube

mapCube is the most flexible way to apply a function over subsets of an array. Dimensions may be added or removed.

Operations over several YAXArrays

Here, we will define a simple function, that will take as input several YAXArrays. But first, let's load the necessary packages.

julia
using YAXArrays, Zarr
+using YAXArrays: YAXArrays as YAX
 using Dates

Define function in space and time

julia
f(lo, la, t) = (lo + la + Dates.dayofyear(t))
f (generic function with 1 method)

now, mapCube requires this function to be wrapped as follows

julia
function g(xout, lo, la, t)
     xout .= f.(lo, la, t)
-end
g (generic function with 1 method)

INFO

Note the . after f, this is because we will slice across time, namely, the function is broadcasted along this dimension.

Here, we do create YAXArrays only with the desired dimensions as

julia
julia> lon = YAXArray(Dim{:lon}(range(1, 15)))
╭──────────────────────────────╮
+end
g (generic function with 1 method)

INFO

Note the . after f, this is because we will slice across time, namely, the function is broadcasted along this dimension.

Here, we do create YAXArrays only with the desired dimensions as

julia
julia> lon_yax = YAXArray(lon(range(1, 15)))
╭──────────────────────────────╮
 15-element YAXArray{Int64,1}
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
 lon Sampled{Int64} 1:15 ForwardOrdered Regular Points
@@ -96,7 +98,7 @@
   Dict{String, Any}()
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 120.0 bytes
-└──────────────────────────────────────────────────────────────────────────────┘
julia
julia> lat = YAXArray(Dim{:lat}(range(1, 10)))
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘
julia
julia> lat_yax = YAXArray(lat(range(1, 10)))
╭──────────────────────────────╮
 10-element YAXArray{Int64,1}
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
 lat Sampled{Int64} 1:10 ForwardOrdered Regular Points
@@ -105,7 +107,7 @@
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 80.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

And a time Cube's Axis

julia
tspan = Date("2022-01-01"):Day(1):Date("2022-01-30")
-time = YAXArray(Dim{:time}(tspan))
╭─────────────────────────────╮
+time_yax = YAXArray(YAX.time(tspan))
╭─────────────────────────────╮
 │ 30-element YAXArray{Date,1} │
 ├─────────────────────────────┴────────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points
@@ -113,7 +115,7 @@
   Dict{String, Any}()
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 240.0 bytes
-└──────────────────────────────────────────────────────────────────────────────┘

note that the following can be extended to arbitrary YAXArrays with additional data and dimensions.

Let's generate a new cube using mapCube and saving the output directly into disk.

julia
julia> gen_cube = mapCube(g, (lon, lat, time);
+└──────────────────────────────────────────────────────────────────────────────┘

note that the following can be extended to arbitrary YAXArrays with additional data and dimensions.

Let's generate a new cube using mapCube and saving the output directly into disk.

julia
julia> gen_cube = mapCube(g, (lon_yax, lat_yax, time_yax);
            indims = (InDims(), InDims(), InDims("time")),
            outdims = OutDims("time", overwrite=true, path="my_gen_cube.zarr", backend=:zarr,
            outtype = Float32)
@@ -144,7 +146,7 @@
  14.0  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0
  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0
  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0
- 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

but, we can generate a another cube with a different output order as follows

julia
julia> gen_cube = mapCube(g, (lon, lat, time);
+ 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

but, we can generate a another cube with a different output order as follows

julia
julia> gen_cube = mapCube(g, (lon_yax, lat_yax, time_yax);
            indims = (InDims("lon"), InDims(), InDims()),
            outdims = OutDims("lon", overwrite=true, path="my_gen_cube.zarr", backend=:zarr,
            outtype = Float32)
@@ -175,15 +177,17 @@
  14.0  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0
  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0
  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0
- 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

which outputs the same as the gen_cube.data[1, :, :] called above.

OutDims and YAXArray Properties

Here, we will consider different scenarios, namely how we deal with different input cubes and how to specify the output ones. We will illustrate this with the following test example and the subsequent function definitions.

julia
using YAXArrays, Dates
+ 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

which outputs the same as the gen_cube.data[1, :, :] called above.

OutDims and YAXArray Properties

Here, we will consider different scenarios, namely how we deal with different input cubes and how to specify the output ones. We will illustrate this with the following test example and the subsequent function definitions.

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
+using Dates
 using Zarr
 using Random
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-05")),
-    Dim{:lon}(range(1, 4, length=4)),
-    Dim{:lat}(range(1, 3, length=3)),
-    Dim{:variables}(["a", "b"])
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-05")),
+    lon(range(1, 4, length=4)),
+    lat(range(1, 3, length=3)),
+    Variables(["a", "b"])
 )
 
 Random.seed!(123)
@@ -196,7 +200,7 @@
   ↓ time      Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-05") ForwardOrdered Regular Points,
   → lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   ↗ lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ⬔ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ⬔ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 1 entry:
   "description" => "multi dimensional test cube"
@@ -225,7 +229,7 @@
   ↓ time      Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-05") ForwardOrdered Regular Points,
   → lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   ↗ lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ⬔ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ⬔ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any} with 1 entry:
   "name" => "plus_two"
@@ -237,7 +241,7 @@
 ├─────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   → lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ↗ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ↗ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├─────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 1 entry:
   "description" => "2d dimensional test cube"
@@ -266,7 +270,7 @@
 a, b

Different InDims names

Here, the goal is to operate at the pixel level (longitude, latitude), and then apply the corresponding function to the extracted values. Consider the following toy cubes:

julia
Random.seed!(123)
 data = rand(3.0:5.0, 5, 4, 3)
 
-axlist = (Dim{:lon}(1:4), Dim{:lat}(1:3), Dim{:depth}(1:7),)
+axlist = (lon(1:4), lat(1:3), Dim{:depth}(1:7),)
 yax_2d = YAXArray(axlist, rand(-3.0:0.0, 4, 3, 7))
╭───────────────────────────╮
 │ 4×3×7 YAXArray{Float64,3} │
 ├───────────────────────────┴───────────────────────── dims ┐
@@ -280,8 +284,8 @@
 └───────────────────────────────────────────────────────────┘

and

julia
Random.seed!(123)
 data = rand(3.0:5.0, 5, 4, 3)
 
-axlist = (Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-05")),
-    Dim{:lon}(1:4), Dim{:lat}(1:3),)
+axlist = (YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-05")),
+    lon(1:4), lat(1:3),)
 
 properties = Dict("description" => "multi dimensional test cube")
 yax_test = YAXArray(axlist, data, properties)
╭───────────────────────────╮
@@ -317,13 +321,14 @@
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 480.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘
  • TODO:
    • Example passing additional arguments to function.

    • MovingWindow

    • Multiple variables outputs, OutDims, in the same YAXArray

Creating a vector array

Here we transform a raster array with spatial dimension lat and lon into a vector array having just one spatial dimension i.e. region. First, create the raster array:

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 using DimensionalData
 using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 raster_arr = YAXArray(axlist, data)
╭──────────────────────────────╮
@@ -399,13 +404,14 @@
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 960.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

This gives us a vector array with only one spatial dimension, i.e. the region. Note that we still have 30 points in time. The transformation was applied for each date separately.

Hereby, xin is a 10x15 array representing a map at a given time and xout is a 4 element vector of missing values initially representing the 4 regions at that date. Then, we set each output element by the sum of all corresponding points

Distributed Computation

All map methods apply a function on all elements of all non-input dimensions separately. This allows to run each map function call in parallel. For example, we can execute each date of a time series in a different CPU thread during spatial aggregation.

The following code does a time mean over all grid points using multiple CPUs of a local machine:

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 using Dates
 using Distributed
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
@@ -427,7 +433,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/PR479/UserGuide/convert.html b/previews/PR479/UserGuide/convert.html index 5cbabb08..cbaba2b1 100644 --- a/previews/PR479/UserGuide/convert.html +++ b/previews/PR479/UserGuide/convert.html @@ -9,11 +9,11 @@ - + - + - + @@ -43,36 +43,7 @@ lon, lat = X(25:1:30), Y(25:1:30) time = Ti(2000:2024) ras = Raster(rand(lon, lat, time)) -a = YAXArray(dims(ras), ras.data)
╭────────────────────────────╮
-│ 6×6×25 YAXArray{Float64,3} │
-├────────────────────────────┴────────────────────────── dims ┐
-  ↓ X  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  → Y  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  ↗ Ti Sampled{Int64} 2000:2024 ForwardOrdered Regular Points
-├─────────────────────────────────────────────────── metadata ┤
-  Dict{String, Any}()
-├─────────────────────────────────────────── loaded in memory ┤
-  data size: 7.03 KB
-└─────────────────────────────────────────────────────────────┘
julia
ras2 = Raster(a)
╭──────────────────────────╮
-│ 6×6×25 Raster{Float64,3} │
-├──────────────────────────┴──────────────────────────── dims ┐
-  ↓ X  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  → Y  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  ↗ Ti Sampled{Int64} 2000:2024 ForwardOrdered Regular Points
-├─────────────────────────────────────────────────── metadata ┤
-  Dict{String, Any}()
-├───────────────────────────────────────────────────── raster ┤
-  extent: Extent(X = (25, 30), Y = (25, 30), Ti = (2000, 2024))
-
-└─────────────────────────────────────────────────────────────┘
-[:, :, 1]
-  ↓ →  25         26          27          28         29         30
- 25     0.862644   0.770949    0.0702532   0.973332   0.12568    0.938094
- 26     0.203714   0.718667    0.916686    0.796375   0.376409   0.395234
- 27     0.492817   0.0566881   0.617023    0.475725   0.870888   0.521991
- 28     0.268675   0.215973    0.193109    0.687891   0.561549   0.81362
- 29     0.540514   0.0620649   0.71314     0.225542   0.299637   0.762559
- 30     0.872575   0.731779    0.926096    0.744521   0.21056    0.0593761

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
+a = YAXArray(dims(ras), ras.data)
julia
ras2 = Raster(a)

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}())
@@ -93,13 +64,13 @@
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0        13.0       14.0       15.0
- 1     0.340769   0.658321   0.0881736   0.630469   0.63593    0.229281
- 2     0.536273   0.791138   0.47951     0.917969   0.686278   0.780824
- 3     0.522262   0.237824   0.165853    0.662295   0.327439   0.793913
- 4     0.365971   0.215988   0.520744    0.096862   0.625389   0.725765
- 5     0.271209   0.521769   0.858065    0.162134   0.181798   0.425153

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.862644 0.872575 0.0620649 0.193109 0.475725 0.953391 + 2 0.203714 0.770949 0.731779 0.71314 0.687891 0.435994 + 3 0.492817 0.718667 0.0702532 0.926096 0.225542 0.100622 + 4 0.268675 0.0566881 0.916686 0.973332 0.744521 0.052264 + 5 0.540514 0.215973 0.617023 0.796375 0.13205 0.366625

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/PR479/UserGuide/create.html b/previews/PR479/UserGuide/create.html index a9ac566e..1e5584aa 100644 --- a/previews/PR479/UserGuide/create.html +++ b/previews/PR479/UserGuide/create.html @@ -9,11 +9,11 @@ - + - + - + @@ -22,6 +22,8 @@
Skip to content

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
+using YAXArrays: YAXArrays as YAX
+
 a1 = YAXArray(rand(10, 20, 5))
╭─────────────────────────────╮
 │ 10×20×5 YAXArray{Float64,3} │
 ├─────────────────────────────┴────────────────────────────────── dims ┐
@@ -35,9 +37,9 @@
 └──────────────────────────────────────────────────────────────────────┘

The dimensions have only generic names, e.g. Dim_1 and only integer values. We can also specify the dimensions with custom names enabling easier access:

julia
using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data2 = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
@@ -69,7 +71,7 @@
 a2, a3
 
 Properties: Dict(:origin => "user guide")
- + \ No newline at end of file diff --git a/previews/PR479/UserGuide/faq.html b/previews/PR479/UserGuide/faq.html index 83cb03e5..86400016 100644 --- a/previews/PR479/UserGuide/faq.html +++ b/previews/PR479/UserGuide/faq.html @@ -9,11 +9,11 @@ - + - + - + @@ -87,10 +87,12 @@ ├──────────────────────────────────────────────────────────── loaded in memory ┤ data size: 800.0 bytes └──────────────────────────────────────────────────────────────────────────────┘

How do I concatenate cubes

It is possible to concatenate several cubes that shared the same dimensions using the [concatenatecubes]@ref function.

Let's create two dummy cubes

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
+
 axlist = (
-    Dim{:time}(range(1, 20, length=20)),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15))
+    YAX.time(range(1, 20, length=20)),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15))
     )
 
 data1 = rand(20, 10, 15)
@@ -110,7 +112,7 @@
   data size: 46.88 KB
 └──────────────────────────────────────────────────────────────────────────────┘

How do I subset a YAXArray ( Cube ) or Dataset?

These are the three main datatypes provided by the YAXArrays libray. You can find a description of them here. A Cube is no more than a YAXArray, so, we will not explicitly tell about a Cube.

Subsetting a YAXArray

Let's start by creating a dummy YAXArray.

Firstly, load the required libraries

julia
using YAXArrays
 using Dates # To generate the dates of the time axis
-using DimensionalData # To use the "Between" option for selecting data, however the intervals notation should be used instead, i.e. `a .. b`.

Define the time span of the YAXArray

julia
t = Date("2020-01-01"):Month(1):Date("2022-12-31")
Date("2020-01-01"):Dates.Month(1):Date("2022-12-01")

create YAXArray axes

julia
axes = (Dim{:Lon}(1:10), Dim{:Lat}(1:10), Dim{:Time}(t))
(↓ Lon  1:10,
+using DimensionalData # To use the "Between" option for selecting data, however the intervals notation should be used instead, i.e. `a .. b`.

Define the time span of the YAXArray

julia
t = Date("2020-01-01"):Month(1):Date("2022-12-31")
Date("2020-01-01"):Dates.Month(1):Date("2022-12-01")

create YAXArray axes

julia
axes = (Lon(1:10), Lat(1:10), YAX.Time(t))
(↓ Lon  1:10,
 → Lat  1:10,
 ↗ Time Date("2020-01-01"):Dates.Month(1):Date("2022-12-01"))

create the YAXArray

julia
y = YAXArray(axes, reshape(1:3600, (10, 10, 36)))
╭────────────────────────────╮
 │ 10×10×36 YAXArray{Int64,3} │
@@ -166,7 +168,7 @@
 using DimensionalData # To use the "Between" option for selecting data
 
 t = Date("2020-01-01"):Month(1):Date("2022-12-31")
-axes = (Dim{:Lon}(1:10), Dim{:Lat}(1:10), Dim{:Time}(t))
+axes = (Lon(1:10), Lat(1:10), YAX.Time(t))
 
 var1 = YAXArray(axes, reshape(1:3600, (10, 10, 36)))
 var2 = YAXArray(axes, reshape((1:3600)*5, (10, 10, 36)))
@@ -191,7 +193,7 @@
 
 t = Date("2020-01-01"):Month(1):Date("2022-12-31")
 common_axis = Dim{:points}(1:100)
-time_axis =   Dim{:Time}(t)
+time_axis =   YAX.Time(t)
 
 # Note that longitudes and latitudes are not dimensions, but YAXArrays
 longitudes = YAXArray((common_axis,), rand(1:369, 100)) # 100 random values taken from 1 to 359
@@ -217,18 +219,18 @@
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] ForwardOrdered Irregular Points)
   Variables: 
   longitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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"])
@@ -240,18 +242,18 @@
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] ForwardOrdered Irregular Points)
   Variables: 
   latitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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}
@@ -300,7 +302,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])
@@ -346,37 +348,39 @@
   (Dim_1 Sampled{Int64} Base.OneTo(10) ForwardOrdered Regular Points,
 Dim_2 Sampled{Int64} Base.OneTo(5) ForwardOrdered Regular Points)
   Variables: 
-  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
+  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
+using YAXArrays: YAXArrays as YAX
+using DimensionalData
 using MarketData, TimeSeries
 
 stocks = Dict(:Stock1 => random_ohlcv(), :Stock2 => random_ohlcv(), :Stock3 => random_ohlcv())
 d_keys = keys(stocks)
KeySet for a Dict{Symbol, TimeSeries.TimeArray{Float64, 2, DateTime, Matrix{Float64}}} with 3 entries. Keys:
   :Stock3
   :Stock1
-  :Stock2

currently there is not direct support to obtain dims from a TimeArray, but we can code a function for it

julia
getTArrayAxes(ta::TimeArray) = (Dim{:time}(timestamp(ta)), Dim{:variable}(colnames(ta)), );

then, we create the YAXArrays as

julia
yax_list = [YAXArray(getTArrayAxes(stocks[k]), values(stocks[k])) for k in d_keys];

and a Dataset with all stocks names

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

currently there is not direct support to obtain dims from a TimeArray, but we can code a function for it

julia
getTArrayAxes(ta::TimeArray) = (YAX.time(timestamp(ta)), Variables(colnames(ta)), );

then, we create the YAXArrays as

julia
yax_list = [YAXArray(getTArrayAxes(stocks[k]), values(stocks[k])) for k in d_keys];

and a Dataset with all stocks names

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
 Shared Axes:
 None
 Variables with additional axes:
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock2
+  Stock3
 
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock3
+  Stock2
 
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables 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
 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables 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.

Create a YAXArray with unions containing Strings

julia
test_x = stack(Vector{Union{Int,String}}[[1, "Test"], [2, "Test2"]])
@@ -400,7 +404,7 @@
 ├─────────────────────────────────────────────────── loaded in memory ┤
   summarysize: 172.0 bytes
 └─────────────────────────────────────────────────────────────────────┘

WARNING

Note that although their creation is allowed, it is not possible to save these types into Zarr or NetCDF.

- + \ No newline at end of file diff --git a/previews/PR479/UserGuide/group.html b/previews/PR479/UserGuide/group.html index ec99f338..844d8a69 100644 --- a/previews/PR479/UserGuide/group.html +++ b/previews/PR479/UserGuide/group.html @@ -9,11 +9,11 @@ - + - + - + @@ -211,8 +211,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/PR479/UserGuide/read.html b/previews/PR479/UserGuide/read.html index 846a22ff..c455293e 100644 --- a/previews/PR479/UserGuide/read.html +++ b/previews/PR479/UserGuide/read.html @@ -9,9 +9,9 @@ - + - + @@ -139,7 +139,7 @@ ├──────────────────────────────────────────────────────────── loaded in memory ┤ data size: 2.8 MB └──────────────────────────────────────────────────────────────────────────────┘

Note how the loading status changes from loaded lazily to loaded in memory.

- + \ No newline at end of file diff --git a/previews/PR479/UserGuide/select.html b/previews/PR479/UserGuide/select.html index 6740829a..c06397ea 100644 --- a/previews/PR479/UserGuide/select.html +++ b/previews/PR479/UserGuide/select.html @@ -9,9 +9,9 @@ - + - + @@ -315,7 +315,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/PR479/UserGuide/types.html b/previews/PR479/UserGuide/types.html index 06810ccd..0b2cf7f2 100644 --- a/previews/PR479/UserGuide/types.html +++ b/previews/PR479/UserGuide/types.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,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/PR479/UserGuide/write.html b/previews/PR479/UserGuide/write.html index c2a81363..8e85e230 100644 --- a/previews/PR479/UserGuide/write.html +++ b/previews/PR479/UserGuide/write.html @@ -9,11 +9,11 @@ - + - + - + @@ -43,7 +43,7 @@ savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

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

netcdf compression

Save a dataset to NetCDF format with compression:

julia
n = 7 # compression level, number between 0 (no compression) and 9 (max compression)
 savedataset(ds, path="ds_c.nc", driver=:netcdf, compress=n)

Comparing it to the default saved file

julia
ds_info = stat("ds.nc")
 ds_c_info = stat("ds_c.nc")
-println("File size: ", "default: ", ds_info.size, " bytes", ", compress: ", ds_c_info.size, " bytes")
File size: default: 2963860 bytes, compress: 1159916 bytes

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)))
+println("File size: ", "default: ", ds_info.size, " bytes", ", compress: ", ds_c_info.size, " bytes")
File size: default: 2963860 bytes, compress: 1159916 bytes

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
@@ -81,19 +81,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.720635  0.0188721  0.520406  0.471857
- 0.882929  0.841123   0.497881  0.959899
- 0.459041  0.761553   0.367809  0.414041
- 0.223574  0.898926   0.647957  0.820737
- 0.457984  0.839919   0.858795  0.1921

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

julia
ds_open = open_dataset("skeleton.zarr")
+ 0.558193  0.62639    0.860688  0.363668
+ 0.414006  0.66729    0.125769  0.00277787
+ 0.891257  0.0887544  0.630526  0.782494
+ 0.948244  0.195437   0.102333  0.669125
+ 0.102816  0.781572   0.527401  0.719692

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 Matrix{Union{Missing, Float32}}:
- 0.720635  0.0188721  0.520406  0.471857
- 0.882929  0.841123   0.497881  0.959899
- 0.459041  0.761553   0.367809  0.414041
- 0.223574  0.898926   0.647957  0.820737
- 0.457984  0.839919   0.858795  0.1921

indeed, those entries had been updated.

- + 0.558193 0.62639 0.860688 0.363668 + 0.414006 0.66729 0.125769 0.00277787 + 0.891257 0.0887544 0.630526 0.782494 + 0.948244 0.195437 0.102333 0.669125 + 0.102816 0.781572 0.527401 0.719692

indeed, those entries had been updated.

+ \ No newline at end of file diff --git a/previews/PR479/api.html b/previews/PR479/api.html index ed9d2f77..30902db9 100644 --- a/previews/PR479/api.html +++ b/previews/PR479/api.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,22 +21,22 @@ -
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.open_mfdataset Method
julia
open_mfdataset(files::DD.DimVector{<:AbstractString}; kwargs...)

Opens and concatenates a list of dataset paths along the dimension specified in files. This method can be used when the generic glob-based version of open_mfdataset fails or is too slow. For example, to concatenate a list of annual NetCDF files along the Ti dimension, one can use:

julia
files = ["1990.nc","1991.nc","1992.nc"]
-open_mfdataset(DD.DimArray(files,DD.Ti()))

alternatively, if the dimension to concatenate along does not exist yet, the dimension provided in the input arg is used:

julia
files = ["a.nc","b.nc","c.nc"]
-open_mfdataset(DD.DimArray(files,DD.Dim{:NewDim}(["a","b","c"])))

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="Variables")

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.open_mfdataset Method
julia
open_mfdataset(files::DD.DimVector{<:AbstractString}; kwargs...)

Opens and concatenates a list of dataset paths along the dimension specified in files. This method can be used when the generic glob-based version of open_mfdataset fails or is too slow. For example, to concatenate a list of annual NetCDF files along the time dimension, one can use:

julia
files = ["1990.nc","1991.nc","1992.nc"]
+open_mfdataset(DD.DimArray(files, YAX.time()))

alternatively, if the dimension to concatenate along does not exist yet, the dimension provided in the input arg is used:

julia
files = ["a.nc", "b.nc", "c.nc"]
+open_mfdataset(DD.DimArray(files, DD.Dim{:NewDim}(["a","b","c"])))

source

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

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variables" 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 = "Variables", 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::NTuple{NIN, YAXArrays.DAT.InputCube} where NIN: The input data cubes

  • outcubes::NTuple{NOUT, YAXArrays.DAT.OutputCube} 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::NTuple{NIN, YAXArrays.DAT.InputCube} where NIN: The input data cubes

  • outcubes::NTuple{NOUT, YAXArrays.DAT.OutputCube} 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="Variables" 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/PR479/assets/UserGuide_combine.md.mA6U1NW5.js b/previews/PR479/assets/UserGuide_combine.md.B3kKJwRR.js similarity index 70% rename from previews/PR479/assets/UserGuide_combine.md.mA6U1NW5.js rename to previews/PR479/assets/UserGuide_combine.md.B3kKJwRR.js index 7d1caf8c..796b2629 100644 --- a/previews/PR479/assets/UserGuide_combine.md.mA6U1NW5.js +++ b/previews/PR479/assets/UserGuide_combine.md.B3kKJwRR.js @@ -1,7 +1,8 @@ -import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.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.DYY3HcdR.js";const E=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
+using YAXArrays: YAXArrays as YAX
 
-first_half = YAXArray((Dim{:time}(1:6),), rand(6))
-second_half = YAXArray((Dim{:time}(7:12),), rand(6))
+first_half = YAXArray((YAX.time(1:6),), rand(6))
+second_half = YAXArray((YAX.time(7:12),), rand(6))
 whole_year = cat(first_half, second_half, dims = 1)
╭────────────────────────────────╮
 │ 12-element YAXArray{Float64,1} │
 ├────────────────────────────────┴──────────────────────────────── dims ┐
@@ -11,18 +12,19 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const c
 ├───────────────────────────────────────────────────── loaded in memory ┤
   data size: 96.0 bytes
 └───────────────────────────────────────────────────────────────────────┘

concatenatecubes to a new dimension

Here we use concatenatecubes to combine two arrays of different variables that have the same dimensions. The resulting array combined has an additional dimension variable indicating from which array the element values originates. Note that using a Dataset instead is a more flexible approach in handling different variables.

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 
-temperature = YAXArray((Dim{:time}(1:6),), rand(6))
-precipitation = YAXArray((Dim{:time}(1:6),), rand(6))
+temperature = YAXArray((YAX.time(1:6),), rand(6))
+precipitation = YAXArray((YAX.time(1:6),), rand(6))
 cubes = [temperature,precipitation]
-var_axis = Dim{:variable}(["temp", "prep"])
+var_axis = Variables(["temp", "prep"])
 combined = concatenatecubes(cubes, var_axis)
╭─────────────────────────╮
 │ 6×2 YAXArray{Float64,2} │
-├─────────────────────────┴──────────────────────────────── dims ┐
-  ↓ time     Sampled{Int64} 1:6 ForwardOrdered Regular Points,
-  → variable Categorical{String} ["temp", "prep"] ReverseOrdered
-├────────────────────────────────────────────────────── metadata ┤
+├─────────────────────────┴───────────────────────────────── dims ┐
+  ↓ time      Sampled{Int64} 1:6 ForwardOrdered Regular Points,
+  → Variables Categorical{String} ["temp", "prep"] ReverseOrdered
+├─────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
-├───────────────────────────────────────────────── loaded lazily ┤
+├────────────────────────────────────────────────── loaded lazily ┤
   data size: 96.0 bytes
-└────────────────────────────────────────────────────────────────┘
`,10)]))}const E=i(t,[["render",p]]);export{c as __pageData,E as default}; +└─────────────────────────────────────────────────────────────────┘
`,10)]))}const c=i(t,[["render",p]]);export{E as __pageData,c as default}; diff --git a/previews/PR479/assets/UserGuide_combine.md.mA6U1NW5.lean.js b/previews/PR479/assets/UserGuide_combine.md.B3kKJwRR.lean.js similarity index 70% rename from previews/PR479/assets/UserGuide_combine.md.mA6U1NW5.lean.js rename to previews/PR479/assets/UserGuide_combine.md.B3kKJwRR.lean.js index 7d1caf8c..796b2629 100644 --- a/previews/PR479/assets/UserGuide_combine.md.mA6U1NW5.lean.js +++ b/previews/PR479/assets/UserGuide_combine.md.B3kKJwRR.lean.js @@ -1,7 +1,8 @@ -import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.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.DYY3HcdR.js";const E=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
+using YAXArrays: YAXArrays as YAX
 
-first_half = YAXArray((Dim{:time}(1:6),), rand(6))
-second_half = YAXArray((Dim{:time}(7:12),), rand(6))
+first_half = YAXArray((YAX.time(1:6),), rand(6))
+second_half = YAXArray((YAX.time(7:12),), rand(6))
 whole_year = cat(first_half, second_half, dims = 1)
╭────────────────────────────────╮
 │ 12-element YAXArray{Float64,1} │
 ├────────────────────────────────┴──────────────────────────────── dims ┐
@@ -11,18 +12,19 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const c
 ├───────────────────────────────────────────────────── loaded in memory ┤
   data size: 96.0 bytes
 └───────────────────────────────────────────────────────────────────────┘

concatenatecubes to a new dimension

Here we use concatenatecubes to combine two arrays of different variables that have the same dimensions. The resulting array combined has an additional dimension variable indicating from which array the element values originates. Note that using a Dataset instead is a more flexible approach in handling different variables.

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 
-temperature = YAXArray((Dim{:time}(1:6),), rand(6))
-precipitation = YAXArray((Dim{:time}(1:6),), rand(6))
+temperature = YAXArray((YAX.time(1:6),), rand(6))
+precipitation = YAXArray((YAX.time(1:6),), rand(6))
 cubes = [temperature,precipitation]
-var_axis = Dim{:variable}(["temp", "prep"])
+var_axis = Variables(["temp", "prep"])
 combined = concatenatecubes(cubes, var_axis)
╭─────────────────────────╮
 │ 6×2 YAXArray{Float64,2} │
-├─────────────────────────┴──────────────────────────────── dims ┐
-  ↓ time     Sampled{Int64} 1:6 ForwardOrdered Regular Points,
-  → variable Categorical{String} ["temp", "prep"] ReverseOrdered
-├────────────────────────────────────────────────────── metadata ┤
+├─────────────────────────┴───────────────────────────────── dims ┐
+  ↓ time      Sampled{Int64} 1:6 ForwardOrdered Regular Points,
+  → Variables Categorical{String} ["temp", "prep"] ReverseOrdered
+├─────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
-├───────────────────────────────────────────────── loaded lazily ┤
+├────────────────────────────────────────────────── loaded lazily ┤
   data size: 96.0 bytes
-└────────────────────────────────────────────────────────────────┘
`,10)]))}const E=i(t,[["render",p]]);export{c as __pageData,E as default}; +└─────────────────────────────────────────────────────────────────┘
`,10)]))}const c=i(t,[["render",p]]);export{E as __pageData,c as default}; diff --git a/previews/PR479/assets/UserGuide_compute.md.DigNHVwR.js b/previews/PR479/assets/UserGuide_compute.md.GnwBFM_7.js similarity index 88% rename from previews/PR479/assets/UserGuide_compute.md.DigNHVwR.js rename to previews/PR479/assets/UserGuide_compute.md.GnwBFM_7.js index cc450218..b6407648 100644 --- a/previews/PR479/assets/UserGuide_compute.md.DigNHVwR.js +++ b/previews/PR479/assets/UserGuide_compute.md.GnwBFM_7.js @@ -1,10 +1,11 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.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 l(e,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.

Let's start by creating an example dataset:

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
@@ -19,7 +20,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   :origin => "user guide"
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 35.16 KB
-└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.5665467544778467
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.062032476785460866
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,
@@ -63,9 +64,10 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 240.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

mapCube

mapCube is the most flexible way to apply a function over subsets of an array. Dimensions may be added or removed.

Operations over several YAXArrays

Here, we will define a simple function, that will take as input several YAXArrays. But first, let's load the necessary packages.

julia
using YAXArrays, Zarr
+using YAXArrays: YAXArrays as YAX
 using Dates

Define function in space and time

julia
f(lo, la, t) = (lo + la + Dates.dayofyear(t))
f (generic function with 1 method)

now, mapCube requires this function to be wrapped as follows

julia
function g(xout, lo, la, t)
     xout .= f.(lo, la, t)
-end
g (generic function with 1 method)

INFO

Note the . after f, this is because we will slice across time, namely, the function is broadcasted along this dimension.

Here, we do create YAXArrays only with the desired dimensions as

julia
julia> lon = YAXArray(Dim{:lon}(range(1, 15)))
╭──────────────────────────────╮
+end
g (generic function with 1 method)

INFO

Note the . after f, this is because we will slice across time, namely, the function is broadcasted along this dimension.

Here, we do create YAXArrays only with the desired dimensions as

julia
julia> lon_yax = YAXArray(lon(range(1, 15)))
╭──────────────────────────────╮
 15-element YAXArray{Int64,1}
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
 lon Sampled{Int64} 1:15 ForwardOrdered Regular Points
@@ -73,7 +75,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   Dict{String, Any}()
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 120.0 bytes
-└──────────────────────────────────────────────────────────────────────────────┘
julia
julia> lat = YAXArray(Dim{:lat}(range(1, 10)))
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘
julia
julia> lat_yax = YAXArray(lat(range(1, 10)))
╭──────────────────────────────╮
 10-element YAXArray{Int64,1}
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
 lat Sampled{Int64} 1:10 ForwardOrdered Regular Points
@@ -82,7 +84,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 80.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

And a time Cube's Axis

julia
tspan = Date("2022-01-01"):Day(1):Date("2022-01-30")
-time = YAXArray(Dim{:time}(tspan))
╭─────────────────────────────╮
+time_yax = YAXArray(YAX.time(tspan))
╭─────────────────────────────╮
 │ 30-element YAXArray{Date,1} │
 ├─────────────────────────────┴────────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points
@@ -90,7 +92,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   Dict{String, Any}()
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 240.0 bytes
-└──────────────────────────────────────────────────────────────────────────────┘

note that the following can be extended to arbitrary YAXArrays with additional data and dimensions.

Let's generate a new cube using mapCube and saving the output directly into disk.

julia
julia> gen_cube = mapCube(g, (lon, lat, time);
+└──────────────────────────────────────────────────────────────────────────────┘

note that the following can be extended to arbitrary YAXArrays with additional data and dimensions.

Let's generate a new cube using mapCube and saving the output directly into disk.

julia
julia> gen_cube = mapCube(g, (lon_yax, lat_yax, time_yax);
            indims = (InDims(), InDims(), InDims("time")),
            outdims = OutDims("time", overwrite=true, path="my_gen_cube.zarr", backend=:zarr,
            outtype = Float32)
@@ -121,7 +123,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
  14.0  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0
  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0
  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0
- 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

but, we can generate a another cube with a different output order as follows

julia
julia> gen_cube = mapCube(g, (lon, lat, time);
+ 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

but, we can generate a another cube with a different output order as follows

julia
julia> gen_cube = mapCube(g, (lon_yax, lat_yax, time_yax);
            indims = (InDims("lon"), InDims(), InDims()),
            outdims = OutDims("lon", overwrite=true, path="my_gen_cube.zarr", backend=:zarr,
            outtype = Float32)
@@ -152,15 +154,17 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
  14.0  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0
  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0
  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0
- 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

which outputs the same as the gen_cube.data[1, :, :] called above.

OutDims and YAXArray Properties

Here, we will consider different scenarios, namely how we deal with different input cubes and how to specify the output ones. We will illustrate this with the following test example and the subsequent function definitions.

julia
using YAXArrays, Dates
+ 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

which outputs the same as the gen_cube.data[1, :, :] called above.

OutDims and YAXArray Properties

Here, we will consider different scenarios, namely how we deal with different input cubes and how to specify the output ones. We will illustrate this with the following test example and the subsequent function definitions.

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
+using Dates
 using Zarr
 using Random
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-05")),
-    Dim{:lon}(range(1, 4, length=4)),
-    Dim{:lat}(range(1, 3, length=3)),
-    Dim{:variables}(["a", "b"])
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-05")),
+    lon(range(1, 4, length=4)),
+    lat(range(1, 3, length=3)),
+    Variables(["a", "b"])
 )
 
 Random.seed!(123)
@@ -173,7 +177,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   ↓ time      Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-05") ForwardOrdered Regular Points,
   → lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   ↗ lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ⬔ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ⬔ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 1 entry:
   "description" => "multi dimensional test cube"
@@ -202,7 +206,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   ↓ time      Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-05") ForwardOrdered Regular Points,
   → lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   ↗ lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ⬔ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ⬔ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any} with 1 entry:
   "name" => "plus_two"
@@ -214,7 +218,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├─────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   → lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ↗ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ↗ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├─────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 1 entry:
   "description" => "2d dimensional test cube"
@@ -243,7 +247,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 a, b

Different InDims names

Here, the goal is to operate at the pixel level (longitude, latitude), and then apply the corresponding function to the extracted values. Consider the following toy cubes:

julia
Random.seed!(123)
 data = rand(3.0:5.0, 5, 4, 3)
 
-axlist = (Dim{:lon}(1:4), Dim{:lat}(1:3), Dim{:depth}(1:7),)
+axlist = (lon(1:4), lat(1:3), Dim{:depth}(1:7),)
 yax_2d = YAXArray(axlist, rand(-3.0:0.0, 4, 3, 7))
╭───────────────────────────╮
 │ 4×3×7 YAXArray{Float64,3} │
 ├───────────────────────────┴───────────────────────── dims ┐
@@ -257,8 +261,8 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 └───────────────────────────────────────────────────────────┘

and

julia
Random.seed!(123)
 data = rand(3.0:5.0, 5, 4, 3)
 
-axlist = (Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-05")),
-    Dim{:lon}(1:4), Dim{:lat}(1:3),)
+axlist = (YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-05")),
+    lon(1:4), lat(1:3),)
 
 properties = Dict("description" => "multi dimensional test cube")
 yax_test = YAXArray(axlist, data, properties)
╭───────────────────────────╮
@@ -294,13 +298,14 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 480.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

Creating a vector array

Here we transform a raster array with spatial dimension lat and lon into a vector array having just one spatial dimension i.e. region. First, create the raster array:

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 using DimensionalData
 using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 raster_arr = YAXArray(axlist, data)
╭──────────────────────────────╮
@@ -376,13 +381,14 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 960.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

This gives us a vector array with only one spatial dimension, i.e. the region. Note that we still have 30 points in time. The transformation was applied for each date separately.

Hereby, xin is a 10x15 array representing a map at a given time and xout is a 4 element vector of missing values initially representing the 4 regions at that date. Then, we set each output element by the sum of all corresponding points

Distributed Computation

All map methods apply a function on all elements of all non-input dimensions separately. This allows to run each map function call in parallel. For example, we can execute each date of a time series in a different CPU thread during spatial aggregation.

The following code does a time mean over all grid points using multiple CPUs of a local machine:

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 using Dates
 using Distributed
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
diff --git a/previews/PR479/assets/UserGuide_compute.md.DigNHVwR.lean.js b/previews/PR479/assets/UserGuide_compute.md.GnwBFM_7.lean.js
similarity index 88%
rename from previews/PR479/assets/UserGuide_compute.md.DigNHVwR.lean.js
rename to previews/PR479/assets/UserGuide_compute.md.GnwBFM_7.lean.js
index cc450218..b6407648 100644
--- a/previews/PR479/assets/UserGuide_compute.md.DigNHVwR.lean.js
+++ b/previews/PR479/assets/UserGuide_compute.md.GnwBFM_7.lean.js
@@ -1,10 +1,11 @@
 import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.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 l(e,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 YAXArrays: YAXArrays as YAX
 using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
@@ -19,7 +20,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   :origin => "user guide"
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 35.16 KB
-└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.5665467544778467
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.062032476785460866
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,
@@ -63,9 +64,10 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 240.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

mapCube

mapCube is the most flexible way to apply a function over subsets of an array. Dimensions may be added or removed.

Operations over several YAXArrays

Here, we will define a simple function, that will take as input several YAXArrays. But first, let's load the necessary packages.

julia
using YAXArrays, Zarr
+using YAXArrays: YAXArrays as YAX
 using Dates

Define function in space and time

julia
f(lo, la, t) = (lo + la + Dates.dayofyear(t))
f (generic function with 1 method)

now, mapCube requires this function to be wrapped as follows

julia
function g(xout, lo, la, t)
     xout .= f.(lo, la, t)
-end
g (generic function with 1 method)

INFO

Note the . after f, this is because we will slice across time, namely, the function is broadcasted along this dimension.

Here, we do create YAXArrays only with the desired dimensions as

julia
julia> lon = YAXArray(Dim{:lon}(range(1, 15)))
╭──────────────────────────────╮
+end
g (generic function with 1 method)

INFO

Note the . after f, this is because we will slice across time, namely, the function is broadcasted along this dimension.

Here, we do create YAXArrays only with the desired dimensions as

julia
julia> lon_yax = YAXArray(lon(range(1, 15)))
╭──────────────────────────────╮
 15-element YAXArray{Int64,1}
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
 lon Sampled{Int64} 1:15 ForwardOrdered Regular Points
@@ -73,7 +75,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   Dict{String, Any}()
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 120.0 bytes
-└──────────────────────────────────────────────────────────────────────────────┘
julia
julia> lat = YAXArray(Dim{:lat}(range(1, 10)))
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘
julia
julia> lat_yax = YAXArray(lat(range(1, 10)))
╭──────────────────────────────╮
 10-element YAXArray{Int64,1}
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
 lat Sampled{Int64} 1:10 ForwardOrdered Regular Points
@@ -82,7 +84,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 80.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

And a time Cube's Axis

julia
tspan = Date("2022-01-01"):Day(1):Date("2022-01-30")
-time = YAXArray(Dim{:time}(tspan))
╭─────────────────────────────╮
+time_yax = YAXArray(YAX.time(tspan))
╭─────────────────────────────╮
 │ 30-element YAXArray{Date,1} │
 ├─────────────────────────────┴────────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points
@@ -90,7 +92,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   Dict{String, Any}()
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 240.0 bytes
-└──────────────────────────────────────────────────────────────────────────────┘

note that the following can be extended to arbitrary YAXArrays with additional data and dimensions.

Let's generate a new cube using mapCube and saving the output directly into disk.

julia
julia> gen_cube = mapCube(g, (lon, lat, time);
+└──────────────────────────────────────────────────────────────────────────────┘

note that the following can be extended to arbitrary YAXArrays with additional data and dimensions.

Let's generate a new cube using mapCube and saving the output directly into disk.

julia
julia> gen_cube = mapCube(g, (lon_yax, lat_yax, time_yax);
            indims = (InDims(), InDims(), InDims("time")),
            outdims = OutDims("time", overwrite=true, path="my_gen_cube.zarr", backend=:zarr,
            outtype = Float32)
@@ -121,7 +123,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
  14.0  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0
  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0
  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0
- 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

but, we can generate a another cube with a different output order as follows

julia
julia> gen_cube = mapCube(g, (lon, lat, time);
+ 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

but, we can generate a another cube with a different output order as follows

julia
julia> gen_cube = mapCube(g, (lon_yax, lat_yax, time_yax);
            indims = (InDims("lon"), InDims(), InDims()),
            outdims = OutDims("lon", overwrite=true, path="my_gen_cube.zarr", backend=:zarr,
            outtype = Float32)
@@ -152,15 +154,17 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
  14.0  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0
  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0
  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0
- 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

which outputs the same as the gen_cube.data[1, :, :] called above.

OutDims and YAXArray Properties

Here, we will consider different scenarios, namely how we deal with different input cubes and how to specify the output ones. We will illustrate this with the following test example and the subsequent function definitions.

julia
using YAXArrays, Dates
+ 17.0  18.0  19.0  20.0  21.0  22.0  23.0  24.0  25.0  26.0

which outputs the same as the gen_cube.data[1, :, :] called above.

OutDims and YAXArray Properties

Here, we will consider different scenarios, namely how we deal with different input cubes and how to specify the output ones. We will illustrate this with the following test example and the subsequent function definitions.

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
+using Dates
 using Zarr
 using Random
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-05")),
-    Dim{:lon}(range(1, 4, length=4)),
-    Dim{:lat}(range(1, 3, length=3)),
-    Dim{:variables}(["a", "b"])
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-05")),
+    lon(range(1, 4, length=4)),
+    lat(range(1, 3, length=3)),
+    Variables(["a", "b"])
 )
 
 Random.seed!(123)
@@ -173,7 +177,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   ↓ time      Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-05") ForwardOrdered Regular Points,
   → lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   ↗ lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ⬔ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ⬔ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 1 entry:
   "description" => "multi dimensional test cube"
@@ -202,7 +206,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   ↓ time      Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-05") ForwardOrdered Regular Points,
   → lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   ↗ lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ⬔ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ⬔ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any} with 1 entry:
   "name" => "plus_two"
@@ -214,7 +218,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├─────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ lon       Sampled{Float64} 1.0:1.0:4.0 ForwardOrdered Regular Points,
   → lat       Sampled{Float64} 1.0:1.0:3.0 ForwardOrdered Regular Points,
-  ↗ variables Categorical{String} ["a", "b"] ForwardOrdered
+  ↗ Variables Categorical{String} ["a", "b"] ForwardOrdered
 ├─────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 1 entry:
   "description" => "2d dimensional test cube"
@@ -243,7 +247,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 a, b

Different InDims names

Here, the goal is to operate at the pixel level (longitude, latitude), and then apply the corresponding function to the extracted values. Consider the following toy cubes:

julia
Random.seed!(123)
 data = rand(3.0:5.0, 5, 4, 3)
 
-axlist = (Dim{:lon}(1:4), Dim{:lat}(1:3), Dim{:depth}(1:7),)
+axlist = (lon(1:4), lat(1:3), Dim{:depth}(1:7),)
 yax_2d = YAXArray(axlist, rand(-3.0:0.0, 4, 3, 7))
╭───────────────────────────╮
 │ 4×3×7 YAXArray{Float64,3} │
 ├───────────────────────────┴───────────────────────── dims ┐
@@ -257,8 +261,8 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 └───────────────────────────────────────────────────────────┘

and

julia
Random.seed!(123)
 data = rand(3.0:5.0, 5, 4, 3)
 
-axlist = (Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-05")),
-    Dim{:lon}(1:4), Dim{:lat}(1:3),)
+axlist = (YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-05")),
+    lon(1:4), lat(1:3),)
 
 properties = Dict("description" => "multi dimensional test cube")
 yax_test = YAXArray(axlist, data, properties)
╭───────────────────────────╮
@@ -294,13 +298,14 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 480.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘
  • TODO:
    • Example passing additional arguments to function.

    • MovingWindow

    • Multiple variables outputs, OutDims, in the same YAXArray

Creating a vector array

Here we transform a raster array with spatial dimension lat and lon into a vector array having just one spatial dimension i.e. region. First, create the raster array:

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 using DimensionalData
 using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 raster_arr = YAXArray(axlist, data)
╭──────────────────────────────╮
@@ -376,13 +381,14 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 960.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

This gives us a vector array with only one spatial dimension, i.e. the region. Note that we still have 30 points in time. The transformation was applied for each date separately.

Hereby, xin is a 10x15 array representing a map at a given time and xout is a 4 element vector of missing values initially representing the 4 regions at that date. Then, we set each output element by the sum of all corresponding points

Distributed Computation

All map methods apply a function on all elements of all non-input dimensions separately. This allows to run each map function call in parallel. For example, we can execute each date of a time series in a different CPU thread during spatial aggregation.

The following code does a time mean over all grid points using multiple CPUs of a local machine:

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
 using Dates
 using Distributed
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
diff --git a/previews/PR479/assets/UserGuide_convert.md.BoWk4XSr.js b/previews/PR479/assets/UserGuide_convert.md.CObFCPzI.js
similarity index 68%
rename from previews/PR479/assets/UserGuide_convert.md.BoWk4XSr.js
rename to previews/PR479/assets/UserGuide_convert.md.CObFCPzI.js
index 52c0b3f3..304bd862 100644
--- a/previews/PR479/assets/UserGuide_convert.md.BoWk4XSr.js
+++ b/previews/PR479/assets/UserGuide_convert.md.CObFCPzI.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DYY3HcdR.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 t(l,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 i,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const c=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),p={name:"UserGuide/convert.md"};function t(l,s,h,r,k,d){return e(),i("div",null,s[0]||(s[0]=[n(`

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)
╭──────────────────────────╮
@@ -20,36 +20,7 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DYY3HcdR.js";const c
 lon, lat = X(25:1:30), Y(25:1:30)
 time = Ti(2000:2024)
 ras = Raster(rand(lon, lat, time))
-a = YAXArray(dims(ras), ras.data)
╭────────────────────────────╮
-│ 6×6×25 YAXArray{Float64,3} │
-├────────────────────────────┴────────────────────────── dims ┐
-  ↓ X  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  → Y  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  ↗ Ti Sampled{Int64} 2000:2024 ForwardOrdered Regular Points
-├─────────────────────────────────────────────────── metadata ┤
-  Dict{String, Any}()
-├─────────────────────────────────────────── loaded in memory ┤
-  data size: 7.03 KB
-└─────────────────────────────────────────────────────────────┘
julia
ras2 = Raster(a)
╭──────────────────────────╮
-│ 6×6×25 Raster{Float64,3} │
-├──────────────────────────┴──────────────────────────── dims ┐
-  ↓ X  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  → Y  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  ↗ Ti Sampled{Int64} 2000:2024 ForwardOrdered Regular Points
-├─────────────────────────────────────────────────── metadata ┤
-  Dict{String, Any}()
-├───────────────────────────────────────────────────── raster ┤
-  extent: Extent(X = (25, 30), Y = (25, 30), Ti = (2000, 2024))
-
-└─────────────────────────────────────────────────────────────┘
-[:, :, 1]
-  ↓ →  25         26          27          28         29         30
- 25     0.862644   0.770949    0.0702532   0.973332   0.12568    0.938094
- 26     0.203714   0.718667    0.916686    0.796375   0.376409   0.395234
- 27     0.492817   0.0566881   0.617023    0.475725   0.870888   0.521991
- 28     0.268675   0.215973    0.193109    0.687891   0.561549   0.81362
- 29     0.540514   0.0620649   0.71314     0.225542   0.299637   0.762559
- 30     0.872575   0.731779    0.926096    0.744521   0.21056    0.0593761

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
+a = YAXArray(dims(ras), ras.data)
julia
ras2 = Raster(a)

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 +41,9 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DYY3HcdR.js";const c
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0        13.0       14.0       15.0
- 1     0.340769   0.658321   0.0881736   0.630469   0.63593    0.229281
- 2     0.536273   0.791138   0.47951     0.917969   0.686278   0.780824
- 3     0.522262   0.237824   0.165853    0.662295   0.327439   0.793913
- 4     0.365971   0.215988   0.520744    0.096862   0.625389   0.725765
- 5     0.271209   0.521769   0.858065    0.162134   0.181798   0.425153

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",t]]);export{c as __pageData,g as default}; + ↓ → 10.0 11.0 12.0 13.0 14.0 15.0 + 1 0.862644 0.872575 0.0620649 0.193109 0.475725 0.953391 + 2 0.203714 0.770949 0.731779 0.71314 0.687891 0.435994 + 3 0.492817 0.718667 0.0702532 0.926096 0.225542 0.100622 + 4 0.268675 0.0566881 0.916686 0.973332 0.744521 0.052264 + 5 0.540514 0.215973 0.617023 0.796375 0.13205 0.366625

INFO

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

`,23)]))}const g=a(p,[["render",t]]);export{c as __pageData,g as default}; diff --git a/previews/PR479/assets/UserGuide_convert.md.BoWk4XSr.lean.js b/previews/PR479/assets/UserGuide_convert.md.CObFCPzI.lean.js similarity index 68% rename from previews/PR479/assets/UserGuide_convert.md.BoWk4XSr.lean.js rename to previews/PR479/assets/UserGuide_convert.md.CObFCPzI.lean.js index 52c0b3f3..304bd862 100644 --- a/previews/PR479/assets/UserGuide_convert.md.BoWk4XSr.lean.js +++ b/previews/PR479/assets/UserGuide_convert.md.CObFCPzI.lean.js @@ -1,4 +1,4 @@ -import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DYY3HcdR.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 t(l,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 i,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const c=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),p={name:"UserGuide/convert.md"};function t(l,s,h,r,k,d){return e(),i("div",null,s[0]||(s[0]=[n(`

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)
╭──────────────────────────╮
@@ -20,36 +20,7 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DYY3HcdR.js";const c
 lon, lat = X(25:1:30), Y(25:1:30)
 time = Ti(2000:2024)
 ras = Raster(rand(lon, lat, time))
-a = YAXArray(dims(ras), ras.data)
╭────────────────────────────╮
-│ 6×6×25 YAXArray{Float64,3} │
-├────────────────────────────┴────────────────────────── dims ┐
-  ↓ X  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  → Y  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  ↗ Ti Sampled{Int64} 2000:2024 ForwardOrdered Regular Points
-├─────────────────────────────────────────────────── metadata ┤
-  Dict{String, Any}()
-├─────────────────────────────────────────── loaded in memory ┤
-  data size: 7.03 KB
-└─────────────────────────────────────────────────────────────┘
julia
ras2 = Raster(a)
╭──────────────────────────╮
-│ 6×6×25 Raster{Float64,3} │
-├──────────────────────────┴──────────────────────────── dims ┐
-  ↓ X  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  → Y  Sampled{Int64} 25:1:30 ForwardOrdered Regular Points,
-  ↗ Ti Sampled{Int64} 2000:2024 ForwardOrdered Regular Points
-├─────────────────────────────────────────────────── metadata ┤
-  Dict{String, Any}()
-├───────────────────────────────────────────────────── raster ┤
-  extent: Extent(X = (25, 30), Y = (25, 30), Ti = (2000, 2024))
-
-└─────────────────────────────────────────────────────────────┘
-[:, :, 1]
-  ↓ →  25         26          27          28         29         30
- 25     0.862644   0.770949    0.0702532   0.973332   0.12568    0.938094
- 26     0.203714   0.718667    0.916686    0.796375   0.376409   0.395234
- 27     0.492817   0.0566881   0.617023    0.475725   0.870888   0.521991
- 28     0.268675   0.215973    0.193109    0.687891   0.561549   0.81362
- 29     0.540514   0.0620649   0.71314     0.225542   0.299637   0.762559
- 30     0.872575   0.731779    0.926096    0.744521   0.21056    0.0593761

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
+a = YAXArray(dims(ras), ras.data)
julia
ras2 = Raster(a)

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 +41,9 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DYY3HcdR.js";const c
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0        13.0       14.0       15.0
- 1     0.340769   0.658321   0.0881736   0.630469   0.63593    0.229281
- 2     0.536273   0.791138   0.47951     0.917969   0.686278   0.780824
- 3     0.522262   0.237824   0.165853    0.662295   0.327439   0.793913
- 4     0.365971   0.215988   0.520744    0.096862   0.625389   0.725765
- 5     0.271209   0.521769   0.858065    0.162134   0.181798   0.425153

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",t]]);export{c as __pageData,g as default}; + ↓ → 10.0 11.0 12.0 13.0 14.0 15.0 + 1 0.862644 0.872575 0.0620649 0.193109 0.475725 0.953391 + 2 0.203714 0.770949 0.731779 0.71314 0.687891 0.435994 + 3 0.492817 0.718667 0.0702532 0.926096 0.225542 0.100622 + 4 0.268675 0.0566881 0.916686 0.973332 0.744521 0.052264 + 5 0.540514 0.215973 0.617023 0.796375 0.13205 0.366625

INFO

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

`,23)]))}const g=a(p,[["render",t]]);export{c as __pageData,g as default}; diff --git a/previews/PR479/assets/UserGuide_create.md.hkVdvB3i.js b/previews/PR479/assets/UserGuide_create.md.C7ebbtn2.js similarity index 87% rename from previews/PR479/assets/UserGuide_create.md.hkVdvB3i.js rename to previews/PR479/assets/UserGuide_create.md.C7ebbtn2.js index 187bba68..304d7f74 100644 --- a/previews/PR479/assets/UserGuide_create.md.hkVdvB3i.js +++ b/previews/PR479/assets/UserGuide_create.md.C7ebbtn2.js @@ -1,4 +1,6 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.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
+using YAXArrays: YAXArrays as YAX
+
 a1 = YAXArray(rand(10, 20, 5))
╭─────────────────────────────╮
 │ 10×20×5 YAXArray{Float64,3} │
 ├─────────────────────────────┴────────────────────────────────── dims ┐
@@ -12,9 +14,9 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 └──────────────────────────────────────────────────────────────────────┘

The dimensions have only generic names, e.g. Dim_1 and only integer values. We can also specify the dimensions with custom names enabling easier access:

julia
using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data2 = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
diff --git a/previews/PR479/assets/UserGuide_create.md.hkVdvB3i.lean.js b/previews/PR479/assets/UserGuide_create.md.C7ebbtn2.lean.js
similarity index 87%
rename from previews/PR479/assets/UserGuide_create.md.hkVdvB3i.lean.js
rename to previews/PR479/assets/UserGuide_create.md.C7ebbtn2.lean.js
index 187bba68..304d7f74 100644
--- a/previews/PR479/assets/UserGuide_create.md.hkVdvB3i.lean.js
+++ b/previews/PR479/assets/UserGuide_create.md.C7ebbtn2.lean.js
@@ -1,4 +1,6 @@
 import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.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
+using YAXArrays: YAXArrays as YAX
+
 a1 = YAXArray(rand(10, 20, 5))
╭─────────────────────────────╮
 │ 10×20×5 YAXArray{Float64,3} │
 ├─────────────────────────────┴────────────────────────────────── dims ┐
@@ -12,9 +14,9 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 └──────────────────────────────────────────────────────────────────────┘

The dimensions have only generic names, e.g. Dim_1 and only integer values. We can also specify the dimensions with custom names enabling easier access:

julia
using Dates
 
 axlist = (
-    Dim{:time}(Date("2022-01-01"):Day(1):Date("2022-01-30")),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15)),
+    YAX.time(Date("2022-01-01"):Day(1):Date("2022-01-30")),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
 )
 data2 = rand(30, 10, 15)
 properties = Dict(:origin => "user guide")
diff --git a/previews/PR479/assets/UserGuide_faq.md.BO-Oajgz.js b/previews/PR479/assets/UserGuide_faq.md.C9UN1j4H.js
similarity index 92%
rename from previews/PR479/assets/UserGuide_faq.md.BO-Oajgz.js
rename to previews/PR479/assets/UserGuide_faq.md.C9UN1j4H.js
index 6c5a0b1e..aa9cfc23 100644
--- a/previews/PR479/assets/UserGuide_faq.md.BO-Oajgz.js
+++ b/previews/PR479/assets/UserGuide_faq.md.C9UN1j4H.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/pvbkmme.BNwnPvkJ.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.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/utzwahn.DldUI1n7.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 ┐
@@ -64,10 +64,12 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 800.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

How do I concatenate cubes

It is possible to concatenate several cubes that shared the same dimensions using the [concatenatecubes]@ref function.

Let's create two dummy cubes

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
+
 axlist = (
-    Dim{:time}(range(1, 20, length=20)),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15))
+    YAX.time(range(1, 20, length=20)),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15))
     )
 
 data1 = rand(20, 10, 15)
@@ -87,7 +89,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
   data size: 46.88 KB
 └──────────────────────────────────────────────────────────────────────────────┘

How do I subset a YAXArray ( Cube ) or Dataset?

These are the three main datatypes provided by the YAXArrays libray. You can find a description of them here. A Cube is no more than a YAXArray, so, we will not explicitly tell about a Cube.

Subsetting a YAXArray

Let's start by creating a dummy YAXArray.

Firstly, load the required libraries

julia
using YAXArrays
 using Dates # To generate the dates of the time axis
-using DimensionalData # To use the "Between" option for selecting data, however the intervals notation should be used instead, i.e. \`a .. b\`.

Define the time span of the YAXArray

julia
t = Date("2020-01-01"):Month(1):Date("2022-12-31")
Date("2020-01-01"):Dates.Month(1):Date("2022-12-01")

create YAXArray axes

julia
axes = (Dim{:Lon}(1:10), Dim{:Lat}(1:10), Dim{:Time}(t))
(↓ Lon  1:10,
+using DimensionalData # To use the "Between" option for selecting data, however the intervals notation should be used instead, i.e. \`a .. b\`.

Define the time span of the YAXArray

julia
t = Date("2020-01-01"):Month(1):Date("2022-12-31")
Date("2020-01-01"):Dates.Month(1):Date("2022-12-01")

create YAXArray axes

julia
axes = (Lon(1:10), Lat(1:10), YAX.Time(t))
(↓ Lon  1:10,
 → Lat  1:10,
 ↗ Time Date("2020-01-01"):Dates.Month(1):Date("2022-12-01"))

create the YAXArray

julia
y = YAXArray(axes, reshape(1:3600, (10, 10, 36)))
╭────────────────────────────╮
 │ 10×10×36 YAXArray{Int64,3} │
@@ -143,7 +145,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 using DimensionalData # To use the "Between" option for selecting data
 
 t = Date("2020-01-01"):Month(1):Date("2022-12-31")
-axes = (Dim{:Lon}(1:10), Dim{:Lat}(1:10), Dim{:Time}(t))
+axes = (Lon(1:10), Lat(1:10), YAX.Time(t))
 
 var1 = YAXArray(axes, reshape(1:3600, (10, 10, 36)))
 var2 = YAXArray(axes, reshape((1:3600)*5, (10, 10, 36)))
@@ -168,7 +170,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 
 t = Date("2020-01-01"):Month(1):Date("2022-12-31")
 common_axis = Dim{:points}(1:100)
-time_axis =   Dim{:Time}(t)
+time_axis =   YAX.Time(t)
 
 # Note that longitudes and latitudes are not dimensions, but YAXArrays
 longitudes = YAXArray((common_axis,), rand(1:369, 100)) # 100 random values taken from 1 to 359
@@ -194,18 +196,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] ForwardOrdered Irregular Points)
   Variables: 
   longitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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 +219,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] ForwardOrdered Irregular Points)
   Variables: 
   latitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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,37 +325,39 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.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

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
+  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
+using YAXArrays: YAXArrays as YAX
+using DimensionalData
 using MarketData, TimeSeries
 
 stocks = Dict(:Stock1 => random_ohlcv(), :Stock2 => random_ohlcv(), :Stock3 => random_ohlcv())
 d_keys = keys(stocks)
KeySet for a Dict{Symbol, TimeSeries.TimeArray{Float64, 2, DateTime, Matrix{Float64}}} with 3 entries. Keys:
   :Stock3
   :Stock1
-  :Stock2

currently there is not direct support to obtain dims from a TimeArray, but we can code a function for it

julia
getTArrayAxes(ta::TimeArray) = (Dim{:time}(timestamp(ta)), Dim{:variable}(colnames(ta)), );

then, we create the YAXArrays as

julia
yax_list = [YAXArray(getTArrayAxes(stocks[k]), values(stocks[k])) for k in d_keys];

and a Dataset with all stocks names

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

currently there is not direct support to obtain dims from a TimeArray, but we can code a function for it

julia
getTArrayAxes(ta::TimeArray) = (YAX.time(timestamp(ta)), Variables(colnames(ta)), );

then, we create the YAXArrays as

julia
yax_list = [YAXArray(getTArrayAxes(stocks[k]), values(stocks[k])) for k in d_keys];

and a Dataset with all stocks names

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
 Shared Axes:
 None
 Variables with additional axes:
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock2
+  Stock3
 
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock3
+  Stock2
 
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables 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
 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables 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.

Create a YAXArray with unions containing Strings

julia
test_x = stack(Vector{Union{Int,String}}[[1, "Test"], [2, "Test2"]])
diff --git a/previews/PR479/assets/UserGuide_faq.md.BO-Oajgz.lean.js b/previews/PR479/assets/UserGuide_faq.md.C9UN1j4H.lean.js
similarity index 92%
rename from previews/PR479/assets/UserGuide_faq.md.BO-Oajgz.lean.js
rename to previews/PR479/assets/UserGuide_faq.md.C9UN1j4H.lean.js
index 6c5a0b1e..aa9cfc23 100644
--- a/previews/PR479/assets/UserGuide_faq.md.BO-Oajgz.lean.js
+++ b/previews/PR479/assets/UserGuide_faq.md.C9UN1j4H.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/pvbkmme.BNwnPvkJ.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.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/utzwahn.DldUI1n7.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 ┐
@@ -64,10 +64,12 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data size: 800.0 bytes
 └──────────────────────────────────────────────────────────────────────────────┘

How do I concatenate cubes

It is possible to concatenate several cubes that shared the same dimensions using the [concatenatecubes]@ref function.

Let's create two dummy cubes

julia
using YAXArrays
+using YAXArrays: YAXArrays as YAX
+
 axlist = (
-    Dim{:time}(range(1, 20, length=20)),
-    Dim{:lon}(range(1, 10, length=10)),
-    Dim{:lat}(range(1, 5, length=15))
+    YAX.time(range(1, 20, length=20)),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15))
     )
 
 data1 = rand(20, 10, 15)
@@ -87,7 +89,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
   data size: 46.88 KB
 └──────────────────────────────────────────────────────────────────────────────┘

How do I subset a YAXArray ( Cube ) or Dataset?

These are the three main datatypes provided by the YAXArrays libray. You can find a description of them here. A Cube is no more than a YAXArray, so, we will not explicitly tell about a Cube.

Subsetting a YAXArray

Let's start by creating a dummy YAXArray.

Firstly, load the required libraries

julia
using YAXArrays
 using Dates # To generate the dates of the time axis
-using DimensionalData # To use the "Between" option for selecting data, however the intervals notation should be used instead, i.e. \`a .. b\`.

Define the time span of the YAXArray

julia
t = Date("2020-01-01"):Month(1):Date("2022-12-31")
Date("2020-01-01"):Dates.Month(1):Date("2022-12-01")

create YAXArray axes

julia
axes = (Dim{:Lon}(1:10), Dim{:Lat}(1:10), Dim{:Time}(t))
(↓ Lon  1:10,
+using DimensionalData # To use the "Between" option for selecting data, however the intervals notation should be used instead, i.e. \`a .. b\`.

Define the time span of the YAXArray

julia
t = Date("2020-01-01"):Month(1):Date("2022-12-31")
Date("2020-01-01"):Dates.Month(1):Date("2022-12-01")

create YAXArray axes

julia
axes = (Lon(1:10), Lat(1:10), YAX.Time(t))
(↓ Lon  1:10,
 → Lat  1:10,
 ↗ Time Date("2020-01-01"):Dates.Month(1):Date("2022-12-01"))

create the YAXArray

julia
y = YAXArray(axes, reshape(1:3600, (10, 10, 36)))
╭────────────────────────────╮
 │ 10×10×36 YAXArray{Int64,3} │
@@ -143,7 +145,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 using DimensionalData # To use the "Between" option for selecting data
 
 t = Date("2020-01-01"):Month(1):Date("2022-12-31")
-axes = (Dim{:Lon}(1:10), Dim{:Lat}(1:10), Dim{:Time}(t))
+axes = (Lon(1:10), Lat(1:10), YAX.Time(t))
 
 var1 = YAXArray(axes, reshape(1:3600, (10, 10, 36)))
 var2 = YAXArray(axes, reshape((1:3600)*5, (10, 10, 36)))
@@ -168,7 +170,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 
 t = Date("2020-01-01"):Month(1):Date("2022-12-31")
 common_axis = Dim{:points}(1:100)
-time_axis =   Dim{:Time}(t)
+time_axis =   YAX.Time(t)
 
 # Note that longitudes and latitudes are not dimensions, but YAXArrays
 longitudes = YAXArray((common_axis,), rand(1:369, 100)) # 100 random values taken from 1 to 359
@@ -194,18 +196,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] ForwardOrdered Irregular Points)
   Variables: 
   longitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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 +219,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] ForwardOrdered Irregular Points)
   Variables: 
   latitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [9, 13, …, 95, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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} [9, 13, …, 95, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [2, 4, …, 96, 98] 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,37 +325,39 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.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

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
+  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
+using YAXArrays: YAXArrays as YAX
+using DimensionalData
 using MarketData, TimeSeries
 
 stocks = Dict(:Stock1 => random_ohlcv(), :Stock2 => random_ohlcv(), :Stock3 => random_ohlcv())
 d_keys = keys(stocks)
KeySet for a Dict{Symbol, TimeSeries.TimeArray{Float64, 2, DateTime, Matrix{Float64}}} with 3 entries. Keys:
   :Stock3
   :Stock1
-  :Stock2

currently there is not direct support to obtain dims from a TimeArray, but we can code a function for it

julia
getTArrayAxes(ta::TimeArray) = (Dim{:time}(timestamp(ta)), Dim{:variable}(colnames(ta)), );

then, we create the YAXArrays as

julia
yax_list = [YAXArray(getTArrayAxes(stocks[k]), values(stocks[k])) for k in d_keys];

and a Dataset with all stocks names

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

currently there is not direct support to obtain dims from a TimeArray, but we can code a function for it

julia
getTArrayAxes(ta::TimeArray) = (YAX.time(timestamp(ta)), Variables(colnames(ta)), );

then, we create the YAXArrays as

julia
yax_list = [YAXArray(getTArrayAxes(stocks[k]), values(stocks[k])) for k in d_keys];

and a Dataset with all stocks names

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
 Shared Axes:
 None
 Variables with additional axes:
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock2
+  Stock3
 
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock3
+  Stock2
 
   Additional 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables 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
 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)
+  (time      Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
+Variables 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.

Create a YAXArray with unions containing Strings

julia
test_x = stack(Vector{Union{Int,String}}[[1, "Test"], [2, "Test2"]])
diff --git a/previews/PR479/assets/UserGuide_group.md.DX5SlgGD.js b/previews/PR479/assets/UserGuide_group.md.C2yVVeKj.js
similarity index 99%
rename from previews/PR479/assets/UserGuide_group.md.DX5SlgGD.js
rename to previews/PR479/assets/UserGuide_group.md.C2yVVeKj.js
index 4fdd729a..be8edb3d 100644
--- a/previews/PR479/assets/UserGuide_group.md.DX5SlgGD.js
+++ b/previews/PR479/assets/UserGuide_group.md.C2yVVeKj.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/dadyujg.BJNzQY3Z.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),h={name:"UserGuide/group.md"};function l(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.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/lhmmpxn.BJNzQY3Z.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),h={name:"UserGuide/group.md"};function l(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 YAXArrays: YAXArrays as YAX
 using NetCDF
 using Downloads
diff --git a/previews/PR479/assets/UserGuide_group.md.DX5SlgGD.lean.js b/previews/PR479/assets/UserGuide_group.md.C2yVVeKj.lean.js
similarity index 99%
rename from previews/PR479/assets/UserGuide_group.md.DX5SlgGD.lean.js
rename to previews/PR479/assets/UserGuide_group.md.C2yVVeKj.lean.js
index 4fdd729a..be8edb3d 100644
--- a/previews/PR479/assets/UserGuide_group.md.DX5SlgGD.lean.js
+++ b/previews/PR479/assets/UserGuide_group.md.C2yVVeKj.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/dadyujg.BJNzQY3Z.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),h={name:"UserGuide/group.md"};function l(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.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/lhmmpxn.BJNzQY3Z.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),h={name:"UserGuide/group.md"};function l(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 YAXArrays: YAXArrays as YAX
 using NetCDF
 using Downloads
diff --git a/previews/PR479/assets/UserGuide_write.md.D_JyEE73.js b/previews/PR479/assets/UserGuide_write.md.CslDCk8B.js
similarity index 96%
rename from previews/PR479/assets/UserGuide_write.md.D_JyEE73.js
rename to previews/PR479/assets/UserGuide_write.md.CslDCk8B.js
index 9425edf9..178553f5 100644
--- a/previews/PR479/assets/UserGuide_write.md.D_JyEE73.js
+++ b/previews/PR479/assets/UserGuide_write.md.CslDCk8B.js
@@ -20,7 +20,7 @@ import{_ as n,c as l,a2 as t,j as i,a,G as p,B as h,o as k}from"./chunks/framewo
 savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

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

netcdf compression

Save a dataset to NetCDF format with compression:

julia
n = 7 # compression level, number between 0 (no compression) and 9 (max compression)
 savedataset(ds, path="ds_c.nc", driver=:netcdf, compress=n)

Comparing it to the default saved file

julia
ds_info = stat("ds.nc")
 ds_c_info = stat("ds_c.nc")
-println("File size: ", "default: ", ds_info.size, " bytes", ", compress: ", ds_c_info.size, " bytes")
File size: default: 2963860 bytes, compress: 1159916 bytes

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

`,29)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},[i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[1]||(s[1]=a()),p(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=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[3]||(s[3]=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[4]||(s[4]=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[5]||(s[5]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[7]||(s[7]=t(`

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)))
+println("File size: ", "default: ", ds_info.size, " bytes", ", compress: ", ds_c_info.size, " bytes")
File size: default: 2963860 bytes, compress: 1159916 bytes

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

`,29)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},[i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[1]||(s[1]=a()),p(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=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[3]||(s[3]=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[4]||(s[4]=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[5]||(s[5]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[7]||(s[7]=t(`

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
@@ -58,15 +58,15 @@ import{_ as n,c as l,a2 as t,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.720635  0.0188721  0.520406  0.471857
- 0.882929  0.841123   0.497881  0.959899
- 0.459041  0.761553   0.367809  0.414041
- 0.223574  0.898926   0.647957  0.820737
- 0.457984  0.839919   0.858795  0.1921

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

julia
ds_open = open_dataset("skeleton.zarr")
+ 0.558193  0.62639    0.860688  0.363668
+ 0.414006  0.66729    0.125769  0.00277787
+ 0.891257  0.0887544  0.630526  0.782494
+ 0.948244  0.195437   0.102333  0.669125
+ 0.102816  0.781572   0.527401  0.719692

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 Matrix{Union{Missing, Float32}}:
- 0.720635  0.0188721  0.520406  0.471857
- 0.882929  0.841123   0.497881  0.959899
- 0.459041  0.761553   0.367809  0.414041
- 0.223574  0.898926   0.647957  0.820737
- 0.457984  0.839919   0.858795  0.1921

indeed, those entries had been updated.

`,35))])}const C=n(d,[["render",o]]);export{v as __pageData,C as default}; + 0.558193 0.62639 0.860688 0.363668 + 0.414006 0.66729 0.125769 0.00277787 + 0.891257 0.0887544 0.630526 0.782494 + 0.948244 0.195437 0.102333 0.669125 + 0.102816 0.781572 0.527401 0.719692

indeed, those entries had been updated.

`,35))])}const C=n(d,[["render",o]]);export{v as __pageData,C as default}; diff --git a/previews/PR479/assets/UserGuide_write.md.D_JyEE73.lean.js b/previews/PR479/assets/UserGuide_write.md.CslDCk8B.lean.js similarity index 96% rename from previews/PR479/assets/UserGuide_write.md.D_JyEE73.lean.js rename to previews/PR479/assets/UserGuide_write.md.CslDCk8B.lean.js index 9425edf9..178553f5 100644 --- a/previews/PR479/assets/UserGuide_write.md.D_JyEE73.lean.js +++ b/previews/PR479/assets/UserGuide_write.md.CslDCk8B.lean.js @@ -20,7 +20,7 @@ import{_ as n,c as l,a2 as t,j as i,a,G as p,B as h,o as k}from"./chunks/framewo savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

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

netcdf compression

Save a dataset to NetCDF format with compression:

julia
n = 7 # compression level, number between 0 (no compression) and 9 (max compression)
 savedataset(ds, path="ds_c.nc", driver=:netcdf, compress=n)

Comparing it to the default saved file

julia
ds_info = stat("ds.nc")
 ds_c_info = stat("ds_c.nc")
-println("File size: ", "default: ", ds_info.size, " bytes", ", compress: ", ds_c_info.size, " bytes")
File size: default: 2963860 bytes, compress: 1159916 bytes

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

`,29)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},[i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[1]||(s[1]=a()),p(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=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[3]||(s[3]=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[4]||(s[4]=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[5]||(s[5]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[7]||(s[7]=t(`

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)))
+println("File size: ", "default: ", ds_info.size, " bytes", ", compress: ", ds_c_info.size, " bytes")
File size: default: 2963860 bytes, compress: 1159916 bytes

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

`,29)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},[i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[1]||(s[1]=a()),p(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=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[3]||(s[3]=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[4]||(s[4]=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[5]||(s[5]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[7]||(s[7]=t(`

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
@@ -58,15 +58,15 @@ import{_ as n,c as l,a2 as t,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.720635  0.0188721  0.520406  0.471857
- 0.882929  0.841123   0.497881  0.959899
- 0.459041  0.761553   0.367809  0.414041
- 0.223574  0.898926   0.647957  0.820737
- 0.457984  0.839919   0.858795  0.1921

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

julia
ds_open = open_dataset("skeleton.zarr")
+ 0.558193  0.62639    0.860688  0.363668
+ 0.414006  0.66729    0.125769  0.00277787
+ 0.891257  0.0887544  0.630526  0.782494
+ 0.948244  0.195437   0.102333  0.669125
+ 0.102816  0.781572   0.527401  0.719692

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 Matrix{Union{Missing, Float32}}:
- 0.720635  0.0188721  0.520406  0.471857
- 0.882929  0.841123   0.497881  0.959899
- 0.459041  0.761553   0.367809  0.414041
- 0.223574  0.898926   0.647957  0.820737
- 0.457984  0.839919   0.858795  0.1921

indeed, those entries had been updated.

`,35))])}const C=n(d,[["render",o]]);export{v as __pageData,C as default}; + 0.558193 0.62639 0.860688 0.363668 + 0.414006 0.66729 0.125769 0.00277787 + 0.891257 0.0887544 0.630526 0.782494 + 0.948244 0.195437 0.102333 0.669125 + 0.102816 0.781572 0.527401 0.719692

indeed, those entries had been updated.

`,35))])}const C=n(d,[["render",o]]);export{v as __pageData,C as default}; diff --git a/previews/PR479/assets/api.md.Bfipf1hV.js b/previews/PR479/assets/api.md.LtcwYcT6.js similarity index 70% rename from previews/PR479/assets/api.md.Bfipf1hV.js rename to previews/PR479/assets/api.md.LtcwYcT6.js index 3c9f2fe3..2fffeaa4 100644 --- a/previews/PR479/assets/api.md.Bfipf1hV.js +++ b/previews/PR479/assets/api.md.LtcwYcT6.js @@ -1,12 +1,12 @@ -import{_ as n,c as o,j as e,a,G as i,a2 as l,B as r,o as p}from"./chunks/framework.DYY3HcdR.js";const cs=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:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={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:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={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:""},as={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""};function ns(os,s,rs,ps,ds,us){const t=r("Badge");return p(),o("div",null,[s[165]||(s[165]=e("h1",{id:"API-Reference",tabindex:"-1"},[a("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[166]||(s[166]=e("p",null,"This section describes all available functions of this package.",-1)),s[167]||(s[167]=e("h2",{id:"Public-API",tabindex:"-1"},[a("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}"},[e("span",{class:"jlbinding"},"YAXArrays.getAxis")],-1)),s[1]||(s[1]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=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",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes")],-1)),s[4]||(s[4]=a()),i(t,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[5]||(s[5]=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[6]||(s[6]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",c,[e("summary",null,[s[7]||(s[7]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray")],-1)),s[8]||(s[8]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[9]||(s[9]=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",b,[e("summary",null,[s[10]||(s[10]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[11]||(s[11]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[12]||(s[12]=e("p",null,"Returns the axes of a Cube",-1)),s[13]||(s[13]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[14]||(s[14]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[15]||(s[15]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[16]||(s[16]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",k,[e("summary",null,[s[17]||(s[17]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes")],-1)),s[18]||(s[18]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[19]||(s[19]=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",g,[e("summary",null,[s[20]||(s[20]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata")],-1)),s[21]||(s[21]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[22]||(s[22]=l('
julia
readcubedata(cube)

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

source

',3))]),e("details",A,[e("summary",null,[s[23]||(s[23]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[24]||(s[24]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[25]||(s[25]=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[26]||(s[26]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube")],-1)),s[27]||(s[27]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[28]||(s[28]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[29]||(s[29]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[30]||(s[30]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims")],-1)),s[31]||(s[31]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[32]||(s[32]=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[33]||(s[33]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow")],-1)),s[34]||(s[34]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[35]||(s[35]=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",E,[e("summary",null,[s[36]||(s[36]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims")],-1)),s[37]||(s[37]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[38]||(s[38]=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",C,[e("summary",null,[s[39]||(s[39]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable")],-1)),s[40]||(s[40]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=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",D,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable")],-1)),s[43]||(s[43]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[44]||(s[44]=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[45]||(s[45]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable")],-1)),s[46]||(s[46]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[47]||(s[47]=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[48]||(s[48]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[49]||(s[49]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[50]||(s[50]=l(`
julia
mapCube(fun, cube, addargs...;kwargs...)
+import{_ as n,c as o,j as e,a,G as i,a2 as l,B as r,o as p}from"./chunks/framework.DYY3HcdR.js";const cs=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:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={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:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={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:""},as={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""};function ns(os,s,rs,ps,ds,us){const t=r("Badge");return p(),o("div",null,[s[165]||(s[165]=e("h1",{id:"API-Reference",tabindex:"-1"},[a("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[166]||(s[166]=e("p",null,"This section describes all available functions of this package.",-1)),s[167]||(s[167]=e("h2",{id:"Public-API",tabindex:"-1"},[a("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}"},[e("span",{class:"jlbinding"},"YAXArrays.getAxis")],-1)),s[1]||(s[1]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=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",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes")],-1)),s[4]||(s[4]=a()),i(t,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[5]||(s[5]=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[6]||(s[6]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",c,[e("summary",null,[s[7]||(s[7]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray")],-1)),s[8]||(s[8]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[9]||(s[9]=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",b,[e("summary",null,[s[10]||(s[10]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[11]||(s[11]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[12]||(s[12]=e("p",null,"Returns the axes of a Cube",-1)),s[13]||(s[13]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[14]||(s[14]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[15]||(s[15]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[16]||(s[16]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",k,[e("summary",null,[s[17]||(s[17]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes")],-1)),s[18]||(s[18]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[19]||(s[19]=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",g,[e("summary",null,[s[20]||(s[20]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata")],-1)),s[21]||(s[21]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[22]||(s[22]=l('
julia
readcubedata(cube)

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

source

',3))]),e("details",A,[e("summary",null,[s[23]||(s[23]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[24]||(s[24]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[25]||(s[25]=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[26]||(s[26]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube")],-1)),s[27]||(s[27]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[28]||(s[28]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[29]||(s[29]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[30]||(s[30]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims")],-1)),s[31]||(s[31]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[32]||(s[32]=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[33]||(s[33]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow")],-1)),s[34]||(s[34]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[35]||(s[35]=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",E,[e("summary",null,[s[36]||(s[36]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims")],-1)),s[37]||(s[37]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[38]||(s[38]=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",C,[e("summary",null,[s[39]||(s[39]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable")],-1)),s[40]||(s[40]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=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",D,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable")],-1)),s[43]||(s[43]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[44]||(s[44]=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[45]||(s[45]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable")],-1)),s[46]||(s[46]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[47]||(s[47]=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[48]||(s[48]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[49]||(s[49]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[50]||(s[50]=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[51]||(s[51]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[52]||(s[52]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[53]||(s[53]=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[54]||(s[54]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[55]||(s[55]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=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[57]||(s[57]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[58]||(s[58]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[59]||(s[59]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[60]||(s[60]=e("p",null,[a("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),a(" a and a list of named YAXArrays cubes...")],-1)),s[61]||(s[61]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[62]||(s[62]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube")],-1)),s[63]||(s[63]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[64]||(s[64]=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[65]||(s[65]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset")],-1)),s[66]||(s[66]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[68]||(s[68]=e("p",null,[a("Open the dataset at "),e("code",null,"g"),a(" with the given "),e("code",null,"driver"),a(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[69]||(s[69]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L408-L413",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[70]||(s[70]=e("a",{id:'YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}',href:'#YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}'},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_mfdataset")],-1)),s[71]||(s[71]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l(`
julia
open_mfdataset(files::DD.DimVector{<:AbstractString}; kwargs...)

Opens and concatenates a list of dataset paths along the dimension specified in files. This method can be used when the generic glob-based version of open_mfdataset fails or is too slow. For example, to concatenate a list of annual NetCDF files along the Ti dimension, one can use:

julia
files = ["1990.nc","1991.nc","1992.nc"]
-open_mfdataset(DD.DimArray(files,DD.Ti()))

alternatively, if the dimension to concatenate along does not exist yet, the dimension provided in the input arg is used:

julia
files = ["a.nc","b.nc","c.nc"]
-open_mfdataset(DD.DimArray(files,DD.Dim{:NewDim}(["a","b","c"])))

source

`,6))]),e("details",M,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube")],-1)),s[74]||(s[74]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[75]||(s[75]=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",B,[e("summary",null,[s[76]||(s[76]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[77]||(s[77]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[78]||(s[78]=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[79]||(s[79]=e("p",null,[a("Saves a Dataset into a file at "),e("code",null,"path"),a(" with the format given by "),e("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[80]||(s[80]=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[81]||(s[81]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[82]||(s[82]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset")],-1)),s[83]||(s[83]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[84]||(s[84]=e("p",null,'to_dataset(c;datasetaxis = "Variable", layername = "layer")',-1)),s[85]||(s[85]=e("p",null,[a(`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[86]||(s[86]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[168]||(s[168]=e("h2",{id:"Internal-API",tabindex:"-1"},[a("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[87]||(s[87]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},[e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults")],-1)),s[88]||(s[88]=a()),i(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[89]||(s[89]=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",J,[e("summary",null,[s[90]||(s[90]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.findAxis")],-1)),s[91]||(s[91]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[92]||(s[92]=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",P,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.getOutAxis")],-1)),s[94]||(s[94]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[95]||(s[95]=l('
julia
getOutAxis

source

',2))]),e("details",q,[e("summary",null,[s[96]||(s[96]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},[e("span",{class:"jlbinding"},"YAXArrays.get_descriptor")],-1)),s[97]||(s[97]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[98]||(s[98]=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[99]||(s[99]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.match_axis")],-1)),s[100]||(s[100]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[101]||(s[101]=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[51]||(s[51]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[52]||(s[52]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[53]||(s[53]=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[54]||(s[54]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[55]||(s[55]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=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[57]||(s[57]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[58]||(s[58]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[59]||(s[59]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[60]||(s[60]=e("p",null,[a("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),a(" a and a list of named YAXArrays cubes...")],-1)),s[61]||(s[61]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[62]||(s[62]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube")],-1)),s[63]||(s[63]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[64]||(s[64]=l('
julia
Cube(ds::Dataset; joinname="Variables")

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[65]||(s[65]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset")],-1)),s[66]||(s[66]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[68]||(s[68]=e("p",null,[a("Open the dataset at "),e("code",null,"g"),a(" with the given "),e("code",null,"driver"),a(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[69]||(s[69]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L408-L413",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[70]||(s[70]=e("a",{id:'YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}',href:'#YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}'},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_mfdataset")],-1)),s[71]||(s[71]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l(`
julia
open_mfdataset(files::DD.DimVector{<:AbstractString}; kwargs...)

Opens and concatenates a list of dataset paths along the dimension specified in files. This method can be used when the generic glob-based version of open_mfdataset fails or is too slow. For example, to concatenate a list of annual NetCDF files along the time dimension, one can use:

julia
files = ["1990.nc","1991.nc","1992.nc"]
+open_mfdataset(DD.DimArray(files, YAX.time()))

alternatively, if the dimension to concatenate along does not exist yet, the dimension provided in the input arg is used:

julia
files = ["a.nc", "b.nc", "c.nc"]
+open_mfdataset(DD.DimArray(files, DD.Dim{:NewDim}(["a","b","c"])))

source

`,6))]),e("details",M,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube")],-1)),s[74]||(s[74]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[75]||(s[75]=l('
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variables" 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",B,[e("summary",null,[s[76]||(s[76]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[77]||(s[77]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[78]||(s[78]=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[79]||(s[79]=e("p",null,[a("Saves a Dataset into a file at "),e("code",null,"path"),a(" with the format given by "),e("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[80]||(s[80]=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[81]||(s[81]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[82]||(s[82]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset")],-1)),s[83]||(s[83]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[84]||(s[84]=e("p",null,'to_dataset(c;datasetaxis = "Variables", layername = "layer")',-1)),s[85]||(s[85]=e("p",null,[a(`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[86]||(s[86]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[168]||(s[168]=e("h2",{id:"Internal-API",tabindex:"-1"},[a("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[87]||(s[87]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},[e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults")],-1)),s[88]||(s[88]=a()),i(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[89]||(s[89]=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",J,[e("summary",null,[s[90]||(s[90]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.findAxis")],-1)),s[91]||(s[91]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[92]||(s[92]=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",P,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.getOutAxis")],-1)),s[94]||(s[94]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[95]||(s[95]=l('
julia
getOutAxis

source

',2))]),e("details",q,[e("summary",null,[s[96]||(s[96]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},[e("span",{class:"jlbinding"},"YAXArrays.get_descriptor")],-1)),s[97]||(s[97]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[98]||(s[98]=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[99]||(s[99]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.match_axis")],-1)),s[100]||(s[100]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[101]||(s[101]=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[102]||(s[102]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe")],-1)),s[103]||(s[103]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=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[105]||(s[105]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean")],-1)),s[106]||(s[106]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[107]||(s[107]=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",R,[e("summary",null,[s[108]||(s[108]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata")],-1)),s[109]||(s[109]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[110]||(s[110]=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",V,[e("summary",null,[s[111]||(s[111]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc")],-1)),s[112]||(s[112]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[113]||(s[113]=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",G,[e("summary",null,[s[114]||(s[114]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig")],-1)),s[115]||(s[115]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=l('

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

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

  • outcubes::NTuple{NOUT, YAXArrays.DAT.OutputCube} 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",W,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube")],-1)),s[118]||(s[118]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=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",U,[e("summary",null,[s[120]||(s[120]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube")],-1)),s[121]||(s[121]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[122]||(s[122]=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",$,[e("summary",null,[s[123]||(s[123]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn")],-1)),s[124]||(s[124]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[125]||(s[125]=l('
julia
YAXColumn

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

  • inarBC

  • inds

source

',4))]),e("details",H,[e("summary",null,[s[126]||(s[126]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses")],-1)),s[127]||(s[127]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[129]||(s[129]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DAT/DAT.jl#L957-L959",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[130]||(s[130]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm")],-1)),s[131]||(s[131]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[132]||(s[132]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[133]||(s[133]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DAT/DAT.jl#L1202",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[134]||(s[134]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize")],-1)),s[135]||(s[135]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[136]||(s[136]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[137]||(s[137]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DAT/DAT.jl#L1056",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Q,[e("summary",null,[s[138]||(s[138]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype")],-1)),s[139]||(s[139]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",_,[e("summary",null,[s[141]||(s[141]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks")],-1)),s[142]||(s[142]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=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",ss,[e("summary",null,[s[144]||(s[144]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes")],-1)),s[145]||(s[145]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=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",es,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[148]||(s[148]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=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",as,[e("summary",null,[s[150]||(s[150]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle")],-1)),s[151]||(s[151]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[153]||(s[153]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L543-L545",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[154]||(s[154]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset")],-1)),s[155]||(s[155]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=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",is,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo")],-1)),s[158]||(s[158]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[159]||(s[159]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[160]||(s[160]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L512-L514",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ls,[e("summary",null,[s[161]||(s[161]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange")],-1)),s[162]||(s[162]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[163]||(s[163]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[164]||(s[164]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L312",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const bs=n(d,[["render",ns]]);export{cs as __pageData,bs as default}; +For example to disregard differences of captialisation.

source

`,5))]),e("details",N,[e("summary",null,[s[102]||(s[102]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe")],-1)),s[103]||(s[103]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=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[105]||(s[105]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean")],-1)),s[106]||(s[106]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[107]||(s[107]=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",R,[e("summary",null,[s[108]||(s[108]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata")],-1)),s[109]||(s[109]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[110]||(s[110]=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",V,[e("summary",null,[s[111]||(s[111]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc")],-1)),s[112]||(s[112]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[113]||(s[113]=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",G,[e("summary",null,[s[114]||(s[114]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig")],-1)),s[115]||(s[115]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=l('

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

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

  • outcubes::NTuple{NOUT, YAXArrays.DAT.OutputCube} 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",W,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube")],-1)),s[118]||(s[118]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=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",U,[e("summary",null,[s[120]||(s[120]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube")],-1)),s[121]||(s[121]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[122]||(s[122]=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",$,[e("summary",null,[s[123]||(s[123]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn")],-1)),s[124]||(s[124]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[125]||(s[125]=l('
julia
YAXColumn

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

  • inarBC

  • inds

source

',4))]),e("details",H,[e("summary",null,[s[126]||(s[126]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses")],-1)),s[127]||(s[127]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[129]||(s[129]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DAT/DAT.jl#L957-L959",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[130]||(s[130]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm")],-1)),s[131]||(s[131]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[132]||(s[132]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[133]||(s[133]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DAT/DAT.jl#L1202",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[134]||(s[134]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize")],-1)),s[135]||(s[135]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[136]||(s[136]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[137]||(s[137]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DAT/DAT.jl#L1056",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Q,[e("summary",null,[s[138]||(s[138]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype")],-1)),s[139]||(s[139]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",_,[e("summary",null,[s[141]||(s[141]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks")],-1)),s[142]||(s[142]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=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",ss,[e("summary",null,[s[144]||(s[144]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes")],-1)),s[145]||(s[145]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=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",es,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[148]||(s[148]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=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",as,[e("summary",null,[s[150]||(s[150]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle")],-1)),s[151]||(s[151]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[153]||(s[153]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L543-L545",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[154]||(s[154]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset")],-1)),s[155]||(s[155]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=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="Variables" 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",is,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo")],-1)),s[158]||(s[158]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[159]||(s[159]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[160]||(s[160]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L512-L514",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ls,[e("summary",null,[s[161]||(s[161]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange")],-1)),s[162]||(s[162]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[163]||(s[163]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[164]||(s[164]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L312",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const bs=n(d,[["render",ns]]);export{cs as __pageData,bs as default}; diff --git a/previews/PR479/assets/api.md.Bfipf1hV.lean.js b/previews/PR479/assets/api.md.LtcwYcT6.lean.js similarity index 70% rename from previews/PR479/assets/api.md.Bfipf1hV.lean.js rename to previews/PR479/assets/api.md.LtcwYcT6.lean.js index 3c9f2fe3..2fffeaa4 100644 --- a/previews/PR479/assets/api.md.Bfipf1hV.lean.js +++ b/previews/PR479/assets/api.md.LtcwYcT6.lean.js @@ -1,12 +1,12 @@ -import{_ as n,c as o,j as e,a,G as i,a2 as l,B as r,o as p}from"./chunks/framework.DYY3HcdR.js";const cs=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:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={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:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={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:""},as={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""};function ns(os,s,rs,ps,ds,us){const t=r("Badge");return p(),o("div",null,[s[165]||(s[165]=e("h1",{id:"API-Reference",tabindex:"-1"},[a("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[166]||(s[166]=e("p",null,"This section describes all available functions of this package.",-1)),s[167]||(s[167]=e("h2",{id:"Public-API",tabindex:"-1"},[a("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}"},[e("span",{class:"jlbinding"},"YAXArrays.getAxis")],-1)),s[1]||(s[1]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=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",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes")],-1)),s[4]||(s[4]=a()),i(t,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[5]||(s[5]=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[6]||(s[6]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",c,[e("summary",null,[s[7]||(s[7]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray")],-1)),s[8]||(s[8]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[9]||(s[9]=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",b,[e("summary",null,[s[10]||(s[10]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[11]||(s[11]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[12]||(s[12]=e("p",null,"Returns the axes of a Cube",-1)),s[13]||(s[13]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[14]||(s[14]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[15]||(s[15]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[16]||(s[16]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",k,[e("summary",null,[s[17]||(s[17]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes")],-1)),s[18]||(s[18]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[19]||(s[19]=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",g,[e("summary",null,[s[20]||(s[20]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata")],-1)),s[21]||(s[21]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[22]||(s[22]=l('
julia
readcubedata(cube)

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

source

',3))]),e("details",A,[e("summary",null,[s[23]||(s[23]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[24]||(s[24]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[25]||(s[25]=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[26]||(s[26]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube")],-1)),s[27]||(s[27]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[28]||(s[28]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[29]||(s[29]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[30]||(s[30]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims")],-1)),s[31]||(s[31]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[32]||(s[32]=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[33]||(s[33]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow")],-1)),s[34]||(s[34]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[35]||(s[35]=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",E,[e("summary",null,[s[36]||(s[36]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims")],-1)),s[37]||(s[37]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[38]||(s[38]=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",C,[e("summary",null,[s[39]||(s[39]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable")],-1)),s[40]||(s[40]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=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",D,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable")],-1)),s[43]||(s[43]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[44]||(s[44]=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[45]||(s[45]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable")],-1)),s[46]||(s[46]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[47]||(s[47]=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[48]||(s[48]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[49]||(s[49]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[50]||(s[50]=l(`
julia
mapCube(fun, cube, addargs...;kwargs...)
+import{_ as n,c as o,j as e,a,G as i,a2 as l,B as r,o as p}from"./chunks/framework.DYY3HcdR.js";const cs=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:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={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:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={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:""},as={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""};function ns(os,s,rs,ps,ds,us){const t=r("Badge");return p(),o("div",null,[s[165]||(s[165]=e("h1",{id:"API-Reference",tabindex:"-1"},[a("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[166]||(s[166]=e("p",null,"This section describes all available functions of this package.",-1)),s[167]||(s[167]=e("h2",{id:"Public-API",tabindex:"-1"},[a("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}"},[e("span",{class:"jlbinding"},"YAXArrays.getAxis")],-1)),s[1]||(s[1]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=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",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes")],-1)),s[4]||(s[4]=a()),i(t,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[5]||(s[5]=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[6]||(s[6]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",c,[e("summary",null,[s[7]||(s[7]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray")],-1)),s[8]||(s[8]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[9]||(s[9]=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",b,[e("summary",null,[s[10]||(s[10]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[11]||(s[11]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[12]||(s[12]=e("p",null,"Returns the axes of a Cube",-1)),s[13]||(s[13]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[14]||(s[14]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes")],-1)),s[15]||(s[15]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[16]||(s[16]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",k,[e("summary",null,[s[17]||(s[17]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes")],-1)),s[18]||(s[18]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[19]||(s[19]=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",g,[e("summary",null,[s[20]||(s[20]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata")],-1)),s[21]||(s[21]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[22]||(s[22]=l('
julia
readcubedata(cube)

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

source

',3))]),e("details",A,[e("summary",null,[s[23]||(s[23]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[24]||(s[24]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[25]||(s[25]=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[26]||(s[26]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube")],-1)),s[27]||(s[27]=a()),i(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[28]||(s[28]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[29]||(s[29]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[30]||(s[30]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims")],-1)),s[31]||(s[31]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[32]||(s[32]=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[33]||(s[33]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow")],-1)),s[34]||(s[34]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[35]||(s[35]=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",E,[e("summary",null,[s[36]||(s[36]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims")],-1)),s[37]||(s[37]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[38]||(s[38]=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",C,[e("summary",null,[s[39]||(s[39]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable")],-1)),s[40]||(s[40]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=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",D,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable")],-1)),s[43]||(s[43]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[44]||(s[44]=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[45]||(s[45]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable")],-1)),s[46]||(s[46]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[47]||(s[47]=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[48]||(s[48]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[49]||(s[49]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[50]||(s[50]=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[51]||(s[51]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[52]||(s[52]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[53]||(s[53]=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[54]||(s[54]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[55]||(s[55]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=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[57]||(s[57]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[58]||(s[58]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[59]||(s[59]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[60]||(s[60]=e("p",null,[a("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),a(" a and a list of named YAXArrays cubes...")],-1)),s[61]||(s[61]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[62]||(s[62]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube")],-1)),s[63]||(s[63]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[64]||(s[64]=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[65]||(s[65]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset")],-1)),s[66]||(s[66]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[68]||(s[68]=e("p",null,[a("Open the dataset at "),e("code",null,"g"),a(" with the given "),e("code",null,"driver"),a(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[69]||(s[69]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L408-L413",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[70]||(s[70]=e("a",{id:'YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}',href:'#YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}'},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_mfdataset")],-1)),s[71]||(s[71]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l(`
julia
open_mfdataset(files::DD.DimVector{<:AbstractString}; kwargs...)

Opens and concatenates a list of dataset paths along the dimension specified in files. This method can be used when the generic glob-based version of open_mfdataset fails or is too slow. For example, to concatenate a list of annual NetCDF files along the Ti dimension, one can use:

julia
files = ["1990.nc","1991.nc","1992.nc"]
-open_mfdataset(DD.DimArray(files,DD.Ti()))

alternatively, if the dimension to concatenate along does not exist yet, the dimension provided in the input arg is used:

julia
files = ["a.nc","b.nc","c.nc"]
-open_mfdataset(DD.DimArray(files,DD.Dim{:NewDim}(["a","b","c"])))

source

`,6))]),e("details",M,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube")],-1)),s[74]||(s[74]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[75]||(s[75]=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",B,[e("summary",null,[s[76]||(s[76]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[77]||(s[77]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[78]||(s[78]=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[79]||(s[79]=e("p",null,[a("Saves a Dataset into a file at "),e("code",null,"path"),a(" with the format given by "),e("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[80]||(s[80]=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[81]||(s[81]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[82]||(s[82]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset")],-1)),s[83]||(s[83]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[84]||(s[84]=e("p",null,'to_dataset(c;datasetaxis = "Variable", layername = "layer")',-1)),s[85]||(s[85]=e("p",null,[a(`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[86]||(s[86]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[168]||(s[168]=e("h2",{id:"Internal-API",tabindex:"-1"},[a("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[87]||(s[87]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},[e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults")],-1)),s[88]||(s[88]=a()),i(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[89]||(s[89]=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",J,[e("summary",null,[s[90]||(s[90]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.findAxis")],-1)),s[91]||(s[91]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[92]||(s[92]=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",P,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.getOutAxis")],-1)),s[94]||(s[94]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[95]||(s[95]=l('
julia
getOutAxis

source

',2))]),e("details",q,[e("summary",null,[s[96]||(s[96]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},[e("span",{class:"jlbinding"},"YAXArrays.get_descriptor")],-1)),s[97]||(s[97]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[98]||(s[98]=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[99]||(s[99]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.match_axis")],-1)),s[100]||(s[100]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[101]||(s[101]=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[51]||(s[51]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube")],-1)),s[52]||(s[52]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[53]||(s[53]=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[54]||(s[54]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[55]||(s[55]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=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[57]||(s[57]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset")],-1)),s[58]||(s[58]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[59]||(s[59]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[60]||(s[60]=e("p",null,[a("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),a(" a and a list of named YAXArrays cubes...")],-1)),s[61]||(s[61]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[62]||(s[62]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube")],-1)),s[63]||(s[63]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[64]||(s[64]=l('
julia
Cube(ds::Dataset; joinname="Variables")

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[65]||(s[65]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset")],-1)),s[66]||(s[66]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[68]||(s[68]=e("p",null,[a("Open the dataset at "),e("code",null,"g"),a(" with the given "),e("code",null,"driver"),a(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[69]||(s[69]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L408-L413",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[70]||(s[70]=e("a",{id:'YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}',href:'#YAXArrays.Datasets.open_mfdataset-Tuple{DimensionalData.DimVector{var"#s34", D, R, A} where {var"#s34"<:AbstractString, D<:Tuple, R<:Tuple, A<:AbstractVector{var"#s34"}}}'},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_mfdataset")],-1)),s[71]||(s[71]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l(`
julia
open_mfdataset(files::DD.DimVector{<:AbstractString}; kwargs...)

Opens and concatenates a list of dataset paths along the dimension specified in files. This method can be used when the generic glob-based version of open_mfdataset fails or is too slow. For example, to concatenate a list of annual NetCDF files along the time dimension, one can use:

julia
files = ["1990.nc","1991.nc","1992.nc"]
+open_mfdataset(DD.DimArray(files, YAX.time()))

alternatively, if the dimension to concatenate along does not exist yet, the dimension provided in the input arg is used:

julia
files = ["a.nc", "b.nc", "c.nc"]
+open_mfdataset(DD.DimArray(files, DD.Dim{:NewDim}(["a","b","c"])))

source

`,6))]),e("details",M,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube")],-1)),s[74]||(s[74]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[75]||(s[75]=l('
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variables" 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",B,[e("summary",null,[s[76]||(s[76]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset")],-1)),s[77]||(s[77]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[78]||(s[78]=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[79]||(s[79]=e("p",null,[a("Saves a Dataset into a file at "),e("code",null,"path"),a(" with the format given by "),e("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[80]||(s[80]=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[81]||(s[81]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L637-L646",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[82]||(s[82]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset")],-1)),s[83]||(s[83]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[84]||(s[84]=e("p",null,'to_dataset(c;datasetaxis = "Variables", layername = "layer")',-1)),s[85]||(s[85]=e("p",null,[a(`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[86]||(s[86]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[168]||(s[168]=e("h2",{id:"Internal-API",tabindex:"-1"},[a("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[87]||(s[87]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},[e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults")],-1)),s[88]||(s[88]=a()),i(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[89]||(s[89]=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",J,[e("summary",null,[s[90]||(s[90]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.findAxis")],-1)),s[91]||(s[91]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[92]||(s[92]=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",P,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.getOutAxis")],-1)),s[94]||(s[94]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[95]||(s[95]=l('
julia
getOutAxis

source

',2))]),e("details",q,[e("summary",null,[s[96]||(s[96]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},[e("span",{class:"jlbinding"},"YAXArrays.get_descriptor")],-1)),s[97]||(s[97]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[98]||(s[98]=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[99]||(s[99]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.match_axis")],-1)),s[100]||(s[100]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[101]||(s[101]=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[102]||(s[102]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe")],-1)),s[103]||(s[103]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=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[105]||(s[105]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean")],-1)),s[106]||(s[106]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[107]||(s[107]=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",R,[e("summary",null,[s[108]||(s[108]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata")],-1)),s[109]||(s[109]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[110]||(s[110]=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",V,[e("summary",null,[s[111]||(s[111]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc")],-1)),s[112]||(s[112]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[113]||(s[113]=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",G,[e("summary",null,[s[114]||(s[114]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig")],-1)),s[115]||(s[115]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=l('

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

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

  • outcubes::NTuple{NOUT, YAXArrays.DAT.OutputCube} 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",W,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube")],-1)),s[118]||(s[118]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=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",U,[e("summary",null,[s[120]||(s[120]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube")],-1)),s[121]||(s[121]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[122]||(s[122]=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",$,[e("summary",null,[s[123]||(s[123]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn")],-1)),s[124]||(s[124]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[125]||(s[125]=l('
julia
YAXColumn

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

  • inarBC

  • inds

source

',4))]),e("details",H,[e("summary",null,[s[126]||(s[126]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses")],-1)),s[127]||(s[127]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[129]||(s[129]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DAT/DAT.jl#L957-L959",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[130]||(s[130]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm")],-1)),s[131]||(s[131]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[132]||(s[132]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[133]||(s[133]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DAT/DAT.jl#L1202",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[134]||(s[134]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize")],-1)),s[135]||(s[135]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[136]||(s[136]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[137]||(s[137]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DAT/DAT.jl#L1056",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Q,[e("summary",null,[s[138]||(s[138]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype")],-1)),s[139]||(s[139]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",_,[e("summary",null,[s[141]||(s[141]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks")],-1)),s[142]||(s[142]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=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",ss,[e("summary",null,[s[144]||(s[144]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes")],-1)),s[145]||(s[145]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=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",es,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[148]||(s[148]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=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",as,[e("summary",null,[s[150]||(s[150]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle")],-1)),s[151]||(s[151]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[153]||(s[153]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L543-L545",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[154]||(s[154]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset")],-1)),s[155]||(s[155]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=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",is,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo")],-1)),s[158]||(s[158]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[159]||(s[159]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[160]||(s[160]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L512-L514",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ls,[e("summary",null,[s[161]||(s[161]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange")],-1)),s[162]||(s[162]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[163]||(s[163]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[164]||(s[164]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/b90013fb96bd4f88372b7e80b5e2e877647cfa49/src/DatasetAPI/Datasets.jl#L312",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const bs=n(d,[["render",ns]]);export{cs as __pageData,bs as default}; +For example to disregard differences of captialisation.

source

`,5))]),e("details",N,[e("summary",null,[s[102]||(s[102]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe")],-1)),s[103]||(s[103]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=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[105]||(s[105]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean")],-1)),s[106]||(s[106]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[107]||(s[107]=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",R,[e("summary",null,[s[108]||(s[108]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata")],-1)),s[109]||(s[109]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[110]||(s[110]=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",V,[e("summary",null,[s[111]||(s[111]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc")],-1)),s[112]||(s[112]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[113]||(s[113]=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",G,[e("summary",null,[s[114]||(s[114]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig")],-1)),s[115]||(s[115]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=l('

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

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

  • outcubes::NTuple{NOUT, YAXArrays.DAT.OutputCube} 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",W,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube")],-1)),s[118]||(s[118]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=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",U,[e("summary",null,[s[120]||(s[120]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube")],-1)),s[121]||(s[121]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[122]||(s[122]=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",$,[e("summary",null,[s[123]||(s[123]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn")],-1)),s[124]||(s[124]=a()),i(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[125]||(s[125]=l('
julia
YAXColumn

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

  • inarBC

  • inds

source

',4))]),e("details",H,[e("summary",null,[s[126]||(s[126]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses")],-1)),s[127]||(s[127]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[129]||(s[129]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DAT/DAT.jl#L957-L959",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[130]||(s[130]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm")],-1)),s[131]||(s[131]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[132]||(s[132]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[133]||(s[133]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DAT/DAT.jl#L1202",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[134]||(s[134]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize")],-1)),s[135]||(s[135]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[136]||(s[136]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[137]||(s[137]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DAT/DAT.jl#L1056",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Q,[e("summary",null,[s[138]||(s[138]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype")],-1)),s[139]||(s[139]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",_,[e("summary",null,[s[141]||(s[141]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks")],-1)),s[142]||(s[142]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=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",ss,[e("summary",null,[s[144]||(s[144]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes")],-1)),s[145]||(s[145]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=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",es,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks")],-1)),s[148]||(s[148]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=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",as,[e("summary",null,[s[150]||(s[150]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle")],-1)),s[151]||(s[151]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[153]||(s[153]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L543-L545",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[154]||(s[154]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset")],-1)),s[155]||(s[155]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=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="Variables" 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",is,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo")],-1)),s[158]||(s[158]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[159]||(s[159]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[160]||(s[160]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L512-L514",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ls,[e("summary",null,[s[161]||(s[161]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},[e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange")],-1)),s[162]||(s[162]=a()),i(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[163]||(s[163]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[164]||(s[164]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/1aeb627f3d8705a950182240b938bee4c9e3e42a/src/DatasetAPI/Datasets.jl#L312",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const bs=n(d,[["render",ns]]);export{cs as __pageData,bs as default}; diff --git a/previews/PR479/assets/app.Bg_n2fp-.js b/previews/PR479/assets/app.Cujj9Dqk.js similarity index 95% rename from previews/PR479/assets/app.Bg_n2fp-.js rename to previews/PR479/assets/app.Cujj9Dqk.js index 3c0d8c22..725ef669 100644 --- a/previews/PR479/assets/app.Bg_n2fp-.js +++ b/previews/PR479/assets/app.Cujj9Dqk.js @@ -1 +1 @@ -import{R as p}from"./chunks/theme.DSoAjSjU.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.DYY3HcdR.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.Cb66Hod8.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.DYY3HcdR.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/PR479/assets/chunks/@localSearchIndexroot.2vnuAND4.js b/previews/PR479/assets/chunks/@localSearchIndexroot.2vnuAND4.js deleted file mode 100644 index 6810638a..00000000 --- a/previews/PR479/assets/chunks/@localSearchIndexroot.2vnuAND4.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":107,"nextId":107,"documentIds":{"0":"/YAXArrays.jl/previews/PR479/UserGuide/cache.html#Caching-YAXArrays","1":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Chunk-YAXArrays","2":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Chunking-YAXArrays","3":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Chunking-Datasets","4":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Set-Chunks-by-Axis","5":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Set-chunking-by-Variable","6":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Set-chunking-for-all-variables","7":"/YAXArrays.jl/previews/PR479/UserGuide/combine.html#Combine-YAXArrays","8":"/YAXArrays.jl/previews/PR479/UserGuide/combine.html#cat-along-an-existing-dimension","9":"/YAXArrays.jl/previews/PR479/UserGuide/combine.html#concatenatecubes-to-a-new-dimension","10":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Compute-YAXArrays","11":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Modify-elements-of-a-YAXArray","12":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#arithmetics","13":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#map","14":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#mapslices","15":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#mapCube","16":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Operations-over-several-YAXArrays","17":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#OutDims-and-YAXArray-Properties","18":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#One-InDims-to-many-OutDims","19":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Many-InDims-to-many-OutDims","20":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Specify-path-in-OutDims","21":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Different-InDims-names","22":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Creating-a-vector-array","23":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Distributed-Computation","24":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-YAXArrays","25":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-Base.Array","26":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-Raster","27":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-DimArray","28":"/YAXArrays.jl/previews/PR479/UserGuide/create.html#Create-YAXArrays-and-Datasets","29":"/YAXArrays.jl/previews/PR479/UserGuide/create.html#Create-a-YAXArray","30":"/YAXArrays.jl/previews/PR479/UserGuide/create.html#Create-a-Dataset","31":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Frequently-Asked-Questions-(FAQ)","32":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Extract-the-axes-names-from-a-Cube","33":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#rebuild","34":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Obtain-values-from-axes-and-data-from-the-cube","35":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-concatenate-cubes","36":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-subset-a-YAXArray-(-Cube-)-or-Dataset?","37":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-YAXArray","38":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-Dataset","39":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-all-their-dimensions","40":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-some-but-not-all-of-their-dimensions","41":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-apply-map-algebra?","42":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-use-the-CubeTable-function?","43":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-assign-variable-names-to-YAXArrays-in-a-Dataset","44":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#One-variable-name","45":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Multiple-variable-names","46":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Ho-do-I-construct-a-Dataset-from-a-TimeArray","47":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Create-a-YAXArray-with-unions-containing-Strings","48":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#Group-YAXArrays-and-Datasets","49":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#Seasonal-Averages-from-Time-Series-of-Monthly-Means","50":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#Download-the-data","51":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#GroupBy:-seasons","52":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#dropdims","53":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#seasons","54":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#GroupBy:-weight","55":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#weights","56":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#weighted-seasons","57":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-YAXArrays-and-Datasets","58":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-Zarr","59":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-NetCDF","60":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-GDAL-(GeoTIFF,-GeoJSON)","61":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Load-data-into-memory","62":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#readcubedata","63":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-YAXArrays-and-Datasets","64":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-a-YAXArray","65":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-elements","66":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-ranges","67":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Closed-and-open-intervals","68":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Get-a-dimension","69":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#types","70":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#yaxarray","71":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#dataset","72":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#(Data)-Cube","73":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#dimension","74":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Write-YAXArrays-and-Datasets","75":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Write-Zarr","76":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#zarr-compression","77":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Write-NetCDF","78":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#netcdf-compression","79":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Overwrite-a-Dataset","80":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Append-to-a-Dataset","81":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Save-Skeleton","82":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Update-values-of-dataset","83":"/YAXArrays.jl/previews/PR479/api.html#API-Reference","84":"/YAXArrays.jl/previews/PR479/api.html#Public-API","85":"/YAXArrays.jl/previews/PR479/api.html#Internal-API","86":"/YAXArrays.jl/previews/PR479/development/contribute.html#Contribute-to-YAXArrays.jl","87":"/YAXArrays.jl/previews/PR479/development/contribute.html#Contribute-to-Documentation","88":"/YAXArrays.jl/previews/PR479/development/contribute.html#Build-docs-locally","89":"/YAXArrays.jl/previews/PR479/get_started.html#Getting-Started","90":"/YAXArrays.jl/previews/PR479/get_started.html#installation","91":"/YAXArrays.jl/previews/PR479/get_started.html#quickstart","92":"/YAXArrays.jl/previews/PR479/get_started.html#updates","93":"/YAXArrays.jl/previews/PR479/#How-to-Install-YAXArrays.jl?","94":"/YAXArrays.jl/previews/PR479/#Want-interoperability?","95":"/YAXArrays.jl/previews/PR479/tutorials/mean_seasonal_cycle.html#Mean-Seasonal-Cycle-for-a-single-pixel","96":"/YAXArrays.jl/previews/PR479/tutorials/mean_seasonal_cycle.html#Define-the-cube","97":"/YAXArrays.jl/previews/PR479/tutorials/mean_seasonal_cycle.html#Plot-results:-mean-seasonal-cycle","98":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#Other-tutorials","99":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#General-overview-of-the-functionality-of-YAXArrays","100":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#Table-style-iteration-over-YAXArrays","101":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#Combining-multiple-tiff-files-into-a-zarr-based-datacube","102":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Plotting-maps","103":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Heatmap-plot","104":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Wintri-Projection","105":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Moll-projection","106":"/YAXArrays.jl/previews/PR479/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,82],"9":[5,2,91],"10":[2,1,119],"11":[5,2,30],"12":[1,2,73],"13":[1,2,121],"14":[1,2,90],"15":[1,2,22],"16":[4,3,213],"17":[4,3,100],"18":[5,7,129],"19":[5,7,99],"20":[4,7,90],"21":[3,3,151],"22":[4,3,248],"23":[2,2,138],"24":[2,1,52],"25":[3,2,86],"26":[2,2,117],"27":[2,2,123],"28":[4,1,14],"29":[3,4,108],"30":[3,4,45],"31":[5,1,19],"32":[7,5,78],"33":[1,11,92],"34":[8,5,77],"35":[5,5,89],"36":[10,5,33],"37":[3,14,146],"38":[3,14,18],"39":[9,14,69],"40":[13,14,156],"41":[7,5,115],"42":[8,5,171],"43":[11,5,1],"44":[3,15,24],"45":[3,15,59],"46":[8,5,140],"47":[7,5,81],"48":[4,1,32],"49":[8,4,35],"50":[3,4,67],"51":[2,4,139],"52":[1,6,101],"53":[1,6,48],"54":[2,4,113],"55":[1,6,86],"56":[2,6,348],"57":[4,1,14],"58":[2,4,188],"59":[2,4,252],"60":[5,4,90],"61":[4,4,42],"62":[1,8,143],"63":[4,1,165],"64":[3,4,106],"65":[2,4,117],"66":[2,4,131],"67":[4,4,144],"68":[3,4,73],"69":[1,1,16],"70":[1,1,113],"71":[1,1,78],"72":[3,1,70],"73":[1,1,32],"74":[4,1,146],"75":[2,4,19],"76":[2,5,52],"77":[2,4,20],"78":[2,5,44],"79":[3,4,77],"80":[4,4,157],"81":[2,4,155],"82":[4,4,93],"83":[2,1,10],"84":[2,2,589],"85":[2,2,462],"86":[4,1,15],"87":[3,4,40],"88":[3,5,75],"89":[2,1,1],"90":[1,2,34],"91":[1,2,197],"92":[1,2,49],"93":[6,1,37],"94":[3,1,21],"95":[7,1,73],"96":[3,7,133],"97":[5,7,48],"98":[2,1,49],"99":[6,2,12],"100":[5,2,38],"101":[9,2,1],"102":[2,1,136],"103":[2,2,21],"104":[2,1,46],"105":[2,2,33],"106":[3,2,57]},"averageFieldLength":[3.504672897196263,3.822429906542055,92.20560747663552],"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":"OutDims and YAXArray Properties","titles":["Compute YAXArrays","mapCube"]},"18":{"title":"One InDims to many OutDims","titles":["Compute YAXArrays","mapCube","OutDims and YAXArray Properties"]},"19":{"title":"Many InDims to many OutDims","titles":["Compute YAXArrays","mapCube","OutDims and YAXArray Properties"]},"20":{"title":"Specify path in OutDims","titles":["Compute YAXArrays","mapCube","OutDims and YAXArray Properties"]},"21":{"title":"Different InDims names","titles":["Compute YAXArrays","mapCube"]},"22":{"title":"Creating a vector array","titles":["Compute YAXArrays","mapCube"]},"23":{"title":"Distributed Computation","titles":["Compute YAXArrays"]},"24":{"title":"Convert YAXArrays","titles":[]},"25":{"title":"Convert Base.Array","titles":["Convert YAXArrays"]},"26":{"title":"Convert Raster","titles":["Convert YAXArrays"]},"27":{"title":"Convert DimArray","titles":["Convert YAXArrays"]},"28":{"title":"Create YAXArrays and Datasets","titles":[]},"29":{"title":"Create a YAXArray","titles":["Create YAXArrays and Datasets"]},"30":{"title":"Create a Dataset","titles":["Create YAXArrays and Datasets"]},"31":{"title":"Frequently Asked Questions (FAQ)","titles":[]},"32":{"title":"Extract the axes names from a Cube","titles":["Frequently Asked Questions (FAQ)"]},"33":{"title":"rebuild","titles":["Frequently Asked Questions (FAQ)","Extract the axes names from a Cube"]},"34":{"title":"Obtain values from axes and data from the cube","titles":["Frequently Asked Questions (FAQ)"]},"35":{"title":"How do I concatenate cubes","titles":["Frequently Asked Questions (FAQ)"]},"36":{"title":"How do I subset a YAXArray ( Cube ) or Dataset?","titles":["Frequently Asked Questions (FAQ)"]},"37":{"title":"Subsetting a YAXArray","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"38":{"title":"Subsetting a Dataset","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"39":{"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"]},"40":{"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"]},"41":{"title":"How do I apply map algebra?","titles":["Frequently Asked Questions (FAQ)"]},"42":{"title":"How do I use the CubeTable function?","titles":["Frequently Asked Questions (FAQ)"]},"43":{"title":"How do I assign variable names to YAXArrays in a Dataset","titles":["Frequently Asked Questions (FAQ)"]},"44":{"title":"One variable name","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"45":{"title":"Multiple variable names","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"46":{"title":"Ho do I construct a Dataset from a TimeArray","titles":["Frequently Asked Questions (FAQ)"]},"47":{"title":"Create a YAXArray with unions containing Strings","titles":["Frequently Asked Questions (FAQ)"]},"48":{"title":"Group YAXArrays and Datasets","titles":[]},"49":{"title":"Seasonal Averages from Time Series of Monthly Means","titles":["Group YAXArrays and Datasets"]},"50":{"title":"Download the data","titles":["Group YAXArrays and Datasets"]},"51":{"title":"GroupBy: seasons","titles":["Group YAXArrays and Datasets"]},"52":{"title":"dropdims","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"53":{"title":"seasons","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"54":{"title":"GroupBy: weight","titles":["Group YAXArrays and Datasets"]},"55":{"title":"weights","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"56":{"title":"weighted seasons","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"57":{"title":"Read YAXArrays and Datasets","titles":[]},"58":{"title":"Read Zarr","titles":["Read YAXArrays and Datasets"]},"59":{"title":"Read NetCDF","titles":["Read YAXArrays and Datasets"]},"60":{"title":"Read GDAL (GeoTIFF, GeoJSON)","titles":["Read YAXArrays and Datasets"]},"61":{"title":"Load data into memory","titles":["Read YAXArrays and Datasets"]},"62":{"title":"readcubedata","titles":["Read YAXArrays and Datasets","Load data into memory"]},"63":{"title":"Select YAXArrays and Datasets","titles":[]},"64":{"title":"Select a YAXArray","titles":["Select YAXArrays and Datasets"]},"65":{"title":"Select elements","titles":["Select YAXArrays and Datasets"]},"66":{"title":"Select ranges","titles":["Select YAXArrays and Datasets"]},"67":{"title":"Closed and open intervals","titles":["Select YAXArrays and Datasets"]},"68":{"title":"Get a dimension","titles":["Select YAXArrays and Datasets"]},"69":{"title":"Types","titles":[]},"70":{"title":"YAXArray","titles":["Types"]},"71":{"title":"Dataset","titles":["Types"]},"72":{"title":"(Data) Cube","titles":["Types"]},"73":{"title":"Dimension","titles":["Types"]},"74":{"title":"Write YAXArrays and Datasets","titles":[]},"75":{"title":"Write Zarr","titles":["Write YAXArrays and Datasets"]},"76":{"title":"zarr compression","titles":["Write YAXArrays and Datasets","Write Zarr"]},"77":{"title":"Write NetCDF","titles":["Write YAXArrays and Datasets"]},"78":{"title":"netcdf compression","titles":["Write YAXArrays and Datasets","Write NetCDF"]},"79":{"title":"Overwrite a Dataset","titles":["Write YAXArrays and Datasets"]},"80":{"title":"Append to a Dataset","titles":["Write YAXArrays and Datasets"]},"81":{"title":"Save Skeleton","titles":["Write YAXArrays and Datasets"]},"82":{"title":"Update values of dataset","titles":["Write YAXArrays and Datasets"]},"83":{"title":"API Reference","titles":[]},"84":{"title":"Public API","titles":["API Reference"]},"85":{"title":"Internal API","titles":["API Reference"]},"86":{"title":"Contribute to YAXArrays.jl","titles":[]},"87":{"title":"Contribute to Documentation","titles":["Contribute to YAXArrays.jl"]},"88":{"title":"Build docs locally","titles":["Contribute to YAXArrays.jl","Contribute to Documentation"]},"89":{"title":"Getting Started","titles":[]},"90":{"title":"Installation","titles":["Getting Started"]},"91":{"title":"Quickstart","titles":["Getting Started"]},"92":{"title":"Updates","titles":["Getting Started"]},"93":{"title":"How to Install YAXArrays.jl?","titles":[]},"94":{"title":"Want interoperability?","titles":[]},"95":{"title":"Mean Seasonal Cycle for a single pixel","titles":[]},"96":{"title":"Define the cube","titles":["Mean Seasonal Cycle for a single pixel"]},"97":{"title":"Plot results: mean seasonal cycle","titles":["Mean Seasonal Cycle for a single pixel"]},"98":{"title":"Other tutorials","titles":[]},"99":{"title":"General overview of the functionality of YAXArrays","titles":["Other tutorials"]},"100":{"title":"Table-style iteration over YAXArrays","titles":["Other tutorials"]},"101":{"title":"Combining multiple tiff files into a zarr based datacube","titles":["Other tutorials"]},"102":{"title":"Plotting maps","titles":[]},"103":{"title":"Heatmap plot","titles":["Plotting maps"]},"104":{"title":"Wintri Projection","titles":[]},"105":{"title":"Moll projection","titles":["Wintri Projection"]},"106":{"title":"3D sphere plot","titles":["Wintri Projection"]}},"dirtCount":0,"index":[["δlon",{"2":{"104":1}}],["├─────────────────────┴─────────────────────────────────────────",{"2":{"47":1}}],["├─────────────────────────┴──────────────────────────",{"2":{"37":1}}],["├─────────────────────────┴─────────────────────────────────────",{"2":{"91":1}}],["├─────────────────────────┴──────────────────────────────────────",{"2":{"33":1}}],["├─────────────────────────┴──────────────────────────────────────────────",{"2":{"34":1,"42":1}}],["├─────────────────────────┴─────────────────────────────────────────",{"2":{"19":1}}],["├─────────────────────────┴──────────────────────────────────",{"2":{"27":2}}],["├─────────────────────────┴────────────────────────────────",{"2":{"9":1}}],["├──────────────────────────┴────────────────────────────",{"2":{"26":1}}],["├──────────────────────────┴────────────────────────────────────",{"2":{"25":1}}],["├──────────────────────────┴─────────────────────────────────────────────",{"2":{"22":1,"37":1}}],["├────────────────────────────┴───────────────────────────────────────────",{"2":{"37":2}}],["├────────────────────────────┴──────────────────────────",{"2":{"26":1}}],["├─────────────────────────────┴──────────────────────────────────",{"2":{"29":1}}],["├─────────────────────────────┴──────────────────────────────────────────",{"2":{"16":1,"32":1}}],["├───────────────────────────────┴────────────────────────────────────────",{"2":{"55":1}}],["├──────────────────────────────────┴─────────────────────────────────────",{"2":{"96":1}}],["├────────────────────────────────────┴───────────────────────────────────",{"2":{"58":1}}],["├──────────────────────────────────────┴────────────────────────",{"2":{"47":1}}],["├────────────────────────────────────────",{"2":{"37":1}}],["├──────────────────────────────────────────┴─────────────────────────────",{"2":{"22":1,"42":1}}],["├─────────────────────────────────────────────┴─────────────────",{"2":{"65":1}}],["├───────────────────────────────────────────────┴────────────────────────",{"2":{"42":1,"66":1,"67":5}}],["├────────────────────────────────────────────────",{"2":{"27":1,"37":1}}],["├────────────────────────────────────────────────┴───────────────────────",{"2":{"14":1,"54":1,"59":1,"62":3,"64":2,"65":2}}],["├──────────────────────────────────────────────────┴─────────────────────",{"2":{"51":1}}],["├────────────────────────────────────────────────────",{"2":{"29":1,"33":1}}],["├────────────────────────────────────────────────────────",{"2":{"27":2}}],["├───────────────────────────────────────────────────────────",{"2":{"25":1,"47":2,"91":1}}],["├────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":3,"17":1,"18":1,"21":2,"22":2,"29":2,"32":1,"33":3,"34":1,"37":4,"41":3,"42":3,"54":1,"62":3,"81":1,"91":1,"96":1}}],["├─────────────────────────────────────────────────────────────────",{"2":{"65":1}}],["├──────────────────────────────────────────────────────────────────",{"2":{"51":1,"54":1}}],["├─────────────────────────────────────────────────────────────────────┴",{"2":{"65":1}}],["├────────────────────────────────────────────────────────────────────────",{"2":{"51":1,"52":1,"54":1,"55":1,"56":3}}],["├────────────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"21":2,"22":3,"29":1,"32":1,"33":2,"34":1,"35":1,"37":4,"41":3,"42":3,"51":2,"52":1,"54":3,"55":2,"56":3,"58":1,"59":1,"62":3,"64":2,"65":2,"66":3,"67":5,"81":1,"91":1,"96":1}}],["├───────────────────────────────────────────────────────────────",{"2":{"16":2,"19":1,"35":1,"58":1,"59":1,"64":2,"65":2,"66":3,"67":5}}],["├─────────────────────────────────────────────────────────────",{"2":{"8":1}}],["├───────────────────────────────────────────────────────",{"2":{"19":1}}],["├──────────────────────────────────────────────────────",{"2":{"9":1}}],["├─────────────────────────────────────────────────────",{"2":{"8":1,"26":1}}],["├───────────────────────────────────────────────────",{"2":{"25":1,"26":2,"47":2,"91":1}}],["├─────────────────────────────────────────────────",{"2":{"9":1,"21":1}}],["├──────────────────────────────────────────────┴─────────────────────────",{"2":{"16":2,"41":1,"66":2}}],["├───────────────────────────────────────────",{"2":{"26":1}}],["├───────────────────────────────────────────┴────────────────────────────",{"2":{"14":1,"18":1,"21":1,"81":1}}],["├─────────────────────────────────────────",{"2":{"21":1}}],["├────────────────────────────────┴───────────────────────────────────────",{"2":{"35":1,"91":1}}],["├────────────────────────────────┴────────────────────────────────",{"2":{"8":1}}],["├──────────────────────────────┴─────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"16":2,"22":1,"29":1,"41":2,"54":1}}],["├───────────────────────────┴─────────────────────────",{"2":{"21":1}}],["├───────────────────────────┴────────────────────────────────────────────",{"2":{"17":1,"21":1,"22":1,"33":2,"37":1}}],["╭─────────────────────╮",{"2":{"47":1}}],["╭──────────────────────────╮",{"2":{"22":1,"25":1,"26":1,"37":1}}],["╭────────────────────────────╮",{"2":{"26":1,"37":2}}],["╭─────────────────────────────╮",{"2":{"16":1,"29":1,"32":1}}],["╭───────────────────────────────╮",{"2":{"55":1}}],["╭──────────────────────────────────╮",{"2":{"96":1}}],["╭────────────────────────────────────╮",{"2":{"58":1}}],["╭──────────────────────────────────────╮",{"2":{"47":1}}],["╭──────────────────────────────────────────╮",{"2":{"22":1,"42":1}}],["╭─────────────────────────────────────────────╮",{"2":{"65":1}}],["╭──────────────────────────────────────────────────────────────────────────────╮",{"2":{"51":1,"52":1,"54":1,"55":1,"56":3}}],["╭──────────────────────────────────────────────────╮",{"2":{"51":1}}],["╭────────────────────────────────────────────────╮",{"2":{"14":1,"54":1,"59":1,"62":3,"64":2,"65":2}}],["╭───────────────────────────────────────────────╮",{"2":{"42":1,"66":1,"67":5}}],["╭──────────────────────────────────────────────╮",{"2":{"16":2,"41":1,"66":2}}],["╭───────────────────────────────────────────╮",{"2":{"14":1,"18":1,"21":1,"81":1}}],["╭────────────────────────────────╮",{"2":{"8":1,"35":1,"91":1}}],["╭──────────────────────────────╮",{"2":{"10":1,"12":1,"13":1,"16":2,"22":1,"29":1,"41":2,"54":1}}],["╭───────────────────────────╮",{"2":{"17":1,"21":2,"22":1,"33":2,"37":1}}],["╭─────────────────────────╮",{"2":{"9":1,"19":1,"27":2,"33":1,"34":1,"37":1,"42":1,"91":1}}],["π",{"2":{"41":2,"95":1,"97":1}}],[">var",{"2":{"96":1}}],[">dates",{"2":{"96":1}}],[">month",{"2":{"84":1}}],[">abs",{"2":{"84":1}}],[">=",{"2":{"40":4}}],[">",{"2":{"40":2,"41":2,"96":1}}],["└──────────────────────────────────────────────────────────┘",{"2":{"37":1}}],["└─────────────────────────────────────────────────────────────┘",{"2":{"26":2}}],["└──────────────────────────────────────────────────────────────────┘",{"2":{"27":2}}],["└──────────────────────────────────────────────────────────────────────┘",{"2":{"29":1,"33":1}}],["└────────────────────────────────────────────────────────────────────────────────┘",{"2":{"65":1}}],["└──────────────────────────────────────────────────────────────────────────────┘",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"21":2,"22":4,"29":1,"32":1,"33":2,"34":1,"35":1,"37":4,"41":3,"42":3,"51":2,"52":1,"54":3,"55":2,"56":3,"58":1,"59":1,"62":3,"64":2,"65":2,"66":3,"67":5,"81":1,"91":1,"96":1}}],["└─────────────────────────────────────────────────────────────────────────┘",{"2":{"19":1}}],["└───────────────────────────────────────────────────────────────────────┘",{"2":{"8":1}}],["└─────────────────────────────────────────────────────────────────────┘",{"2":{"25":1,"47":2,"91":1}}],["└────────────────────────────────────────────────────────────────┘",{"2":{"9":1}}],["└───────────────────────────────────────────────────────────┘",{"2":{"21":1}}],["`diskarrays",{"2":{"85":1}}],["`ds`",{"2":{"84":1}}],["`ordereddict`",{"2":{"84":1}}],["`fun`",{"2":{"84":1}}],["`a",{"2":{"37":1}}],["`layer`",{"2":{"18":1}}],["quickstart",{"0":{"91":1}}],["query",{"2":{"63":1}}],["querying",{"2":{"62":1}}],["questions",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["quot",{"2":{"16":2,"42":2,"79":2,"81":4,"84":16,"85":12}}],["jj+1",{"2":{"59":1,"63":1,"74":1,"80":1}}],["jj",{"2":{"59":1,"63":1,"74":1,"80":1}}],["joinname",{"2":{"84":1}}],["joinname=",{"2":{"84":1}}],["journal",{"2":{"59":1,"63":1,"74":1,"80":1}}],["joe",{"2":{"49":1,"56":1}}],["j",{"2":{"56":8}}],["jan",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["jl",{"0":{"86":1,"93":1},"1":{"87":1,"88":1},"2":{"26":1,"27":1,"42":1,"46":2,"50":1,"56":1,"70":1,"73":1,"86":1,"88":2,"90":1,"91":2,"92":3,"93":2,"100":1}}],["jussieu",{"2":{"59":1,"63":1,"74":1,"80":1}}],["just",{"2":{"22":1,"70":1,"72":1,"84":1,"85":2}}],["jul",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["juliaδlon",{"2":{"104":1}}],["juliaglmakie",{"2":{"103":1}}],["juliagetloopchunks",{"2":{"85":1}}],["juliagetouttype",{"2":{"85":1}}],["juliagetoutaxis",{"2":{"85":1}}],["juliaget",{"2":{"85":1}}],["juliagetaxis",{"2":{"84":1}}],["juliagettarrayaxes",{"2":{"46":1}}],["juliagen",{"2":{"16":1}}],["juliax",{"2":{"95":1}}],["juliapkg>",{"2":{"90":1,"92":1,"93":1}}],["juliapermuteloopaxes",{"2":{"85":1}}],["juliaproperties",{"2":{"19":1}}],["juliaoptifunc",{"2":{"85":1}}],["juliaopen",{"2":{"84":1}}],["juliaoutdims",{"2":{"84":1}}],["juliaoffset",{"2":{"13":1}}],["juliacopydata",{"2":{"85":1}}],["juliacollect",{"2":{"34":1,"68":1}}],["juliaclean",{"2":{"85":1}}],["juliacube",{"2":{"84":1}}],["juliacubefittable",{"2":{"84":1}}],["juliacubetable",{"2":{"84":1}}],["juliacaxes",{"2":{"84":1}}],["julian",{"2":{"76":1,"78":1}}],["juliasavecube",{"2":{"84":1}}],["juliasavedataset",{"2":{"75":1,"77":1,"79":1}}],["juliasetchunks",{"2":{"84":1,"85":1}}],["juliaseasons",{"2":{"53":1}}],["julialon",{"2":{"102":1}}],["julialookup",{"2":{"68":1}}],["julialatitudes",{"2":{"40":1}}],["juliawith",{"2":{"56":1}}],["julia>",{"2":{"56":1,"88":1,"93":2,"96":1}}],["juliaurl",{"2":{"50":1}}],["juliausing",{"2":{"0":1,"2":1,"4":1,"5":1,"6":1,"8":1,"9":1,"10":1,"16":1,"17":1,"22":1,"23":2,"25":1,"26":1,"27":1,"29":2,"32":1,"33":1,"35":1,"37":1,"39":1,"40":1,"42":2,"46":1,"48":1,"56":1,"58":1,"59":1,"60":1,"63":1,"65":1,"67":1,"74":1,"75":1,"77":1,"81":1,"91":2,"94":4,"95":1,"102":1,"106":1}}],["juliakeylist",{"2":{"45":1}}],["juliaylonlat",{"2":{"37":1}}],["juliaytime3",{"2":{"37":1}}],["juliaytime2",{"2":{"37":1}}],["juliaytime",{"2":{"37":1}}],["juliay",{"2":{"37":1}}],["juliayaxcolumn",{"2":{"85":1}}],["juliayaxarray",{"2":{"84":1}}],["juliayax",{"2":{"0":1,"46":2}}],["juliatos",{"2":{"64":2,"65":2,"66":3,"67":1,"68":1}}],["juliatempo",{"2":{"54":1}}],["juliatest",{"2":{"47":2}}],["juliat",{"2":{"37":1,"42":1,"95":1}}],["juliatspan",{"2":{"16":1}}],["juliamutable",{"2":{"85":1}}],["juliamatch",{"2":{"85":1}}],["juliamapcube",{"2":{"84":2}}],["juliamapslices",{"2":{"14":1,"23":1}}],["juliamovingwindow",{"2":{"84":1}}],["juliamy",{"2":{"59":1}}],["juliamean",{"2":{"56":1}}],["juliam2",{"2":{"25":1}}],["julia",{"2":{"24":1,"59":1,"85":1,"88":1,"90":2,"92":2,"93":2}}],["juliavector",{"2":{"22":1}}],["juliadataset",{"2":{"84":1}}],["juliadata3",{"2":{"30":1}}],["juliadim",{"2":{"27":1}}],["juliadimarray",{"2":{"22":1}}],["juliads2",{"2":{"80":1}}],["juliads",{"2":{"18":2,"20":2,"21":1,"39":1,"40":1,"58":1,"59":1,"62":2,"78":1,"81":2,"82":3}}],["juliar",{"2":{"81":1}}],["juliareadcubedata",{"2":{"62":1,"84":1}}],["juliaregions",{"2":{"22":2}}],["juliaras2",{"2":{"26":1}}],["juliarandom",{"2":{"21":2}}],["juliaindims",{"2":{"18":1,"20":1,"84":1}}],["juliaimport",{"2":{"14":1,"90":1}}],["juliajulia>",{"2":{"16":5,"32":3,"33":2,"34":1,"35":1,"41":3,"42":3,"44":1,"45":1,"46":2,"51":2,"52":1,"54":2,"55":2,"56":3,"67":4,"80":1,"81":1,"93":1,"96":2,"102":3}}],["juliaall",{"2":{"81":1}}],["juliaaxs",{"2":{"50":1}}],["juliaaxes",{"2":{"37":1}}],["juliaa2",{"2":{"12":2,"29":2,"91":1}}],["juliaa",{"2":{"2":1,"11":3}}],["juliafig",{"2":{"95":1,"97":1,"104":1,"105":1}}],["juliafindaxis",{"2":{"85":1}}],["juliafiles",{"2":{"84":2}}],["juliafittable",{"2":{"84":2}}],["juliafunction",{"2":{"16":1,"18":1,"19":1,"21":1,"51":1,"84":1,"96":1}}],["juliaf",{"2":{"2":1,"4":1,"5":1,"6":1,"16":1}}],["jun",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["∘",{"2":{"23":1}}],["|>",{"2":{"22":2}}],["⋱",{"2":{"22":1}}],["⋮",{"2":{"22":2,"68":1,"96":1}}],["^2",{"2":{"21":1}}],["⬔",{"2":{"17":1,"18":1,"35":1,"91":1}}],["92491",{"2":{"91":1}}],["928614",{"2":{"91":1}}],["926096",{"2":{"26":1}}],["986",{"2":{"56":1}}],["984803",{"2":{"22":1}}],["976187",{"2":{"91":1}}],["97649",{"2":{"56":1}}],["97047",{"2":{"56":1}}],["973332",{"2":{"26":1}}],["94534",{"2":{"56":1}}],["9404",{"2":{"51":1,"52":1}}],["9432",{"2":{"51":1,"52":1}}],["949935",{"2":{"25":1}}],["959899",{"2":{"82":2}}],["959",{"2":{"56":1}}],["95",{"2":{"40":6,"56":1}}],["902991",{"2":{"91":1}}],["902979",{"2":{"91":1}}],["90712",{"2":{"56":1}}],["90365",{"2":{"56":1}}],["90",{"2":{"40":2,"60":1,"67":5}}],["9122",{"2":{"60":1}}],["9192",{"2":{"56":1}}],["91",{"2":{"32":1,"67":5}}],["917969",{"2":{"27":1}}],["916686",{"2":{"26":1}}],["918555",{"2":{"25":1}}],["935959",{"2":{"91":1}}],["935631",{"2":{"25":1}}],["937012",{"2":{"91":1}}],["9375",{"2":{"58":2,"102":1}}],["93743",{"2":{"56":1}}],["9362",{"2":{"56":1}}],["938094",{"2":{"26":1}}],["93986",{"2":{"22":1}}],["9",{"2":{"16":14,"22":2,"34":1,"37":1,"40":6,"54":4,"66":4,"76":2,"78":1,"85":1}}],["96x71x19",{"2":{"59":1,"63":1,"74":1,"80":1}}],["96f0",{"2":{"59":1,"63":1,"74":1}}],["9682",{"2":{"51":1,"52":1}}],["960",{"2":{"17":1,"18":1,"22":1}}],["96",{"2":{"8":1,"9":1,"65":2,"80":1}}],["898926",{"2":{"82":2}}],["8984",{"2":{"56":1}}],["8901",{"2":{"60":1}}],["89",{"2":{"58":4,"59":2,"60":1,"62":3,"63":1,"64":2,"65":1,"66":1,"67":5,"68":1,"74":1,"80":1,"102":2}}],["89237",{"2":{"56":1}}],["864937",{"2":{"91":1}}],["86457",{"2":{"56":1}}],["86",{"2":{"68":1}}],["862644",{"2":{"26":1}}],["884949",{"2":{"91":1}}],["882929",{"2":{"82":2}}],["88",{"2":{"35":1,"58":4,"68":1,"91":1,"102":2}}],["889583",{"2":{"22":1}}],["81705",{"2":{"91":1}}],["812577",{"2":{"91":1}}],["811959",{"2":{"91":1}}],["81",{"2":{"29":1,"68":1}}],["81362",{"2":{"26":1}}],["853962",{"2":{"91":1}}],["858795",{"2":{"82":2}}],["858065",{"2":{"27":1}}],["85",{"2":{"68":1,"104":1,"105":1}}],["850",{"2":{"56":1}}],["85ºn",{"2":{"40":1}}],["85714",{"2":{"22":1}}],["839919",{"2":{"82":2}}],["83",{"2":{"68":1}}],["830391",{"2":{"25":1}}],["83556",{"2":{"25":1}}],["874428",{"2":{"91":1}}],["875981",{"2":{"91":1}}],["875658",{"2":{"22":1}}],["87",{"2":{"68":1}}],["87705",{"2":{"56":1}}],["872575",{"2":{"26":1}}],["870888",{"2":{"26":1}}],["870826",{"2":{"25":1}}],["841123",{"2":{"82":2}}],["84",{"2":{"60":2,"68":1}}],["845983",{"2":{"25":1}}],["840389",{"2":{"22":1}}],["825766",{"2":{"91":1}}],["828299",{"2":{"91":1}}],["820737",{"2":{"82":2}}],["82",{"2":{"68":1}}],["82421875",{"2":{"60":2}}],["824354",{"2":{"22":1}}],["829062",{"2":{"22":1}}],["8",{"2":{"16":12,"22":2,"34":1,"37":1,"59":2,"62":3,"63":1,"64":2,"74":1,"80":1,"96":1}}],["807171",{"2":{"91":1}}],["80759",{"2":{"56":1}}],["800",{"2":{"33":3,"34":1,"37":1}}],["80",{"2":{"16":1,"40":2}}],["v",{"2":{"59":1,"63":1,"74":1,"80":1}}],["v1",{"2":{"59":2,"63":2,"74":2,"80":2,"90":1}}],["v20190710",{"2":{"58":1,"102":2}}],["vol",{"2":{"59":1,"63":1,"74":1,"80":1}}],["volume",{"2":{"46":4}}],["voilà",{"2":{"46":1}}],["video",{"2":{"98":1}}],["videos",{"2":{"98":1}}],["visualization",{"2":{"42":1}}],["vice",{"2":{"24":1}}],["view",{"2":{"22":1,"91":1}}],["version",{"2":{"58":1,"59":1,"63":1,"74":1,"80":1,"84":1,"92":2,"93":1,"102":1}}],["versa",{"2":{"24":1}}],["verify",{"2":{"55":1,"82":1}}],["very",{"2":{"13":1,"42":1,"70":1}}],["vector",{"0":{"22":1},"2":{"22":4,"34":1,"47":1,"51":1,"53":1,"54":2,"55":2,"56":1,"68":1,"70":1,"84":2,"85":3}}],["val",{"2":{"34":2,"68":1}}],["vals",{"2":{"22":1}}],["value",{"2":{"12":1,"14":3,"16":2,"41":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"84":4,"85":1}}],["values=ds1",{"2":{"42":1}}],["values",{"0":{"34":1,"82":1},"2":{"9":1,"20":1,"21":1,"22":2,"28":1,"29":2,"32":2,"33":1,"34":1,"40":3,"42":4,"45":1,"46":2,"66":1,"68":2,"70":1,"71":1,"81":1,"82":3,"84":9,"91":1,"102":1}}],["varoables",{"2":{"84":1}}],["variant",{"2":{"58":1,"102":1}}],["variable=at",{"2":{"91":1}}],["variable",{"0":{"5":1,"43":1,"44":1,"45":1},"1":{"44":1,"45":1},"2":{"5":1,"9":3,"40":3,"46":5,"58":1,"62":2,"81":2,"84":4,"85":7,"91":3,"95":1,"96":1,"97":1,"102":1}}],["variables=at",{"2":{"41":2}}],["variables",{"0":{"6":1,"39":1,"40":1},"2":{"4":5,"5":4,"6":2,"9":2,"17":2,"18":1,"19":1,"20":1,"21":1,"24":1,"30":1,"35":2,"38":1,"39":2,"40":11,"44":1,"45":4,"46":6,"58":4,"59":1,"60":1,"61":1,"62":1,"63":1,"71":1,"72":1,"74":1,"80":4,"81":1,"84":2,"102":4}}],["varlist",{"2":{"45":2}}],["var2=var2",{"2":{"39":1}}],["var2",{"2":{"35":2,"39":3,"41":1}}],["var1=var1",{"2":{"39":1}}],["var1",{"2":{"35":2,"39":3,"41":1}}],["var",{"2":{"9":2,"95":2,"96":2,"97":2}}],["uv",{"2":{"106":1}}],["u",{"2":{"96":1}}],["up",{"2":{"84":1}}],["updates",{"0":{"92":1}}],["updated",{"2":{"82":1}}],["update",{"0":{"82":1},"2":{"82":2,"84":1}}],["updating",{"2":{"48":1,"82":1}}],["ucar",{"2":{"59":1,"63":1,"71":1,"74":1}}],["urls",{"2":{"57":1}}],["url",{"2":{"50":1,"58":1}}],["unreleased",{"2":{"93":1}}],["unpermuted",{"2":{"85":2}}],["unpractical",{"2":{"50":1}}],["underlying",{"2":{"84":1,"85":1,"92":1}}],["unlike",{"2":{"72":1}}],["unique",{"2":{"96":1}}],["unidata",{"2":{"59":1,"63":1,"71":1,"74":1}}],["unit",{"2":{"60":1}}],["units",{"2":{"58":1,"59":2,"62":6,"64":4,"65":6,"66":6,"67":10}}],["unitrange",{"2":{"51":2,"52":2,"56":6}}],["unions",{"0":{"47":1}}],["union",{"2":{"14":2,"16":4,"18":2,"20":1,"21":1,"22":1,"41":1,"42":2,"47":2,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":2,"82":1}}],["unweighted",{"2":{"51":1,"56":1}}],["unordered",{"2":{"46":4,"51":2,"52":1,"53":1,"54":2,"55":2,"56":3}}],["unnecessary",{"2":{"22":1}}],["unchanged",{"2":{"13":1}}],["usually",{"2":{"58":1,"70":2,"71":2}}],["usual",{"2":{"51":1}}],["us",{"2":{"22":1}}],["useable",{"2":{"84":1}}],["used",{"2":{"22":1,"23":1,"37":1,"63":1,"68":1,"69":1,"70":1,"73":1,"84":6,"85":3}}],["uses",{"2":{"20":1,"42":1,"59":1}}],["userguide",{"2":{"87":2}}],["users",{"2":{"85":1}}],["user",{"2":{"10":2,"12":1,"13":1,"23":1,"29":3,"30":1,"85":1}}],["use",{"0":{"42":1},"2":{"0":1,"8":1,"9":1,"10":4,"13":1,"23":2,"32":2,"37":1,"39":1,"40":1,"41":1,"42":2,"46":2,"48":1,"50":1,"52":1,"61":1,"67":2,"72":1,"76":1,"81":1,"84":4,"85":1,"93":1,"98":1,"100":1,"102":2}}],["useful",{"2":{"0":1,"72":1}}],["using",{"2":{"0":1,"8":1,"9":1,"10":1,"16":2,"17":2,"22":2,"23":7,"27":1,"32":1,"33":2,"35":1,"37":2,"39":2,"40":2,"41":1,"42":1,"46":1,"48":5,"58":2,"59":3,"60":2,"61":1,"63":2,"65":3,"66":2,"74":2,"80":1,"81":3,"92":1,"93":1,"95":2,"96":1,"102":3}}],["+proj=moll",{"2":{"105":1}}],["+",{"2":{"12":2,"13":1,"16":2,"18":2,"21":1,"95":1,"104":1}}],["kwargs",{"2":{"84":5,"85":2}}],["know",{"2":{"62":1}}],["k",{"2":{"46":5,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["keyword",{"2":{"80":1,"84":6,"85":2}}],["key",{"2":{"48":1,"84":1}}],["keyset",{"2":{"46":1}}],["keys",{"2":{"46":7,"84":1}}],["keylist",{"2":{"45":1}}],["keeps",{"2":{"13":1}}],["keep",{"2":{"0":1,"85":1}}],["kb",{"2":{"10":1,"12":1,"13":1,"14":1,"16":2,"22":1,"26":1,"29":2,"32":1,"35":1,"37":4,"41":3,"42":1,"65":1,"66":3,"67":5,"91":1,"96":1}}],["↗",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"18":1,"19":1,"20":1,"21":3,"22":1,"26":2,"29":3,"30":1,"32":3,"35":1,"37":5,"39":2,"41":3,"51":1,"58":2,"59":2,"62":3,"63":1,"64":2,"66":3,"67":5,"74":1,"80":2,"81":2,"91":1,"102":1}}],["047283",{"2":{"91":1}}],["0474875",{"2":{"91":1}}],["0465",{"2":{"56":1}}],["0e8",{"2":{"84":1}}],["02627341416046051",{"2":{"96":1}}],["028497582895211832",{"2":{"96":1}}],["02",{"2":{"58":1}}],["0210077",{"2":{"25":1}}],["0214057",{"2":{"25":1}}],["0f20",{"2":{"58":1,"59":2,"62":6,"64":4,"65":6,"66":6,"67":10}}],["0f32",{"2":{"16":2}}],["06183225090497175",{"2":{"96":1}}],["060422",{"2":{"91":1}}],["0693719",{"2":{"91":1}}],["0625",{"2":{"58":2,"102":1}}],["0620649",{"2":{"26":1}}],["06755",{"2":{"56":1}}],["08964458904045909",{"2":{"96":1}}],["08383207080301504",{"2":{"96":1}}],["08",{"2":{"54":1}}],["0881736",{"2":{"27":1}}],["09470732715757708",{"2":{"96":1}}],["09317591352691727",{"2":{"96":1}}],["0916764",{"2":{"91":1}}],["0972941",{"2":{"91":1}}],["09",{"2":{"54":1}}],["096862",{"2":{"27":1}}],["0ºe",{"2":{"40":1}}],["07400365941169999",{"2":{"96":1}}],["0743642",{"2":{"91":1}}],["07111923498269067",{"2":{"96":1}}],["0776029",{"2":{"91":1}}],["07",{"2":{"58":2,"102":1}}],["0702532",{"2":{"26":1}}],["0723492",{"2":{"22":1}}],["03856393968274492",{"2":{"96":1}}],["0353507",{"2":{"91":1}}],["0358348",{"2":{"25":1}}],["0302534",{"2":{"91":1}}],["03361",{"2":{"56":1}}],["03",{"2":{"26":1}}],["00997173",{"2":{"91":1}}],["00990356",{"2":{"56":1}}],["00722034",{"2":{"56":1}}],["00709111",{"2":{"56":1}}],["0063020041736240135",{"2":{"96":1}}],["00684233",{"2":{"56":1}}],["00693713",{"2":{"56":1}}],["0057",{"2":{"56":1}}],["00388",{"2":{"56":1}}],["00",{"2":{"20":4,"46":16,"54":4,"58":9,"59":8,"62":12,"63":4,"64":8,"65":8,"66":12,"67":20,"74":4,"80":4,"102":5}}],["05116592548280876",{"2":{"96":1}}],["0512364",{"2":{"91":1}}],["05345455485976908",{"2":{"96":1}}],["05344184427965779",{"2":{"96":1}}],["0537",{"2":{"51":1,"52":1}}],["05846",{"2":{"56":1}}],["0593761",{"2":{"26":1}}],["0566881",{"2":{"26":1}}],["05t00",{"2":{"20":1}}],["05",{"2":{"17":2,"18":1,"21":3,"37":3}}],["013646215450068194",{"2":{"96":1}}],["0174532925199433",{"2":{"60":1}}],["0178074",{"2":{"56":1}}],["01t03",{"2":{"58":2,"102":1}}],["01t00",{"2":{"20":1,"46":4,"58":2,"102":1}}],["0117519",{"2":{"56":1}}],["0115514",{"2":{"56":1}}],["0127077",{"2":{"56":1}}],["0123091",{"2":{"56":1}}],["0121037",{"2":{"56":1}}],["019016",{"2":{"56":1}}],["0188721",{"2":{"82":2}}],["018571",{"2":{"56":1}}],["0182373",{"2":{"56":1}}],["0180572",{"2":{"56":1}}],["0183003",{"2":{"56":1}}],["018",{"2":{"51":1,"52":1}}],["01",{"2":{"10":6,"12":3,"13":3,"14":3,"16":12,"17":6,"18":3,"20":2,"21":9,"22":9,"23":3,"29":9,"30":3,"37":22,"39":8,"40":11,"46":8,"58":5,"59":4,"62":6,"63":2,"64":4,"65":6,"66":6,"67":10,"74":2,"80":2,"95":2,"96":4,"102":5}}],["0",{"2":{"8":1,"9":1,"10":6,"11":2,"12":6,"13":6,"14":7,"16":303,"17":7,"18":7,"19":7,"20":6,"21":10,"22":75,"25":36,"26":36,"27":45,"29":12,"30":6,"33":3,"34":1,"35":9,"37":1,"40":4,"41":27,"42":11,"47":2,"54":2,"55":40,"56":19,"58":7,"59":10,"60":6,"62":12,"63":6,"64":8,"65":6,"66":14,"67":20,"68":6,"74":6,"76":1,"78":1,"79":1,"80":6,"81":1,"82":40,"84":2,"85":1,"91":80,"92":1,"95":2,"96":19,"97":1,"102":4,"104":2,"105":2,"106":2}}],["┤",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":2,"18":2,"19":2,"21":6,"22":5,"25":2,"26":4,"27":3,"29":4,"32":2,"33":6,"34":2,"35":2,"37":10,"41":6,"42":6,"47":4,"51":4,"52":2,"54":6,"55":3,"56":6,"58":2,"59":2,"62":6,"64":4,"65":5,"66":6,"67":10,"81":2,"91":4,"96":2}}],["┐",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":4,"25":1,"26":2,"27":2,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"47":2,"51":1,"54":2,"55":1,"58":1,"59":1,"62":3,"64":2,"65":4,"66":3,"67":5,"81":1,"91":2,"96":1}}],["│",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":2,"18":2,"19":2,"21":6,"22":8,"25":2,"26":4,"27":4,"29":4,"32":2,"33":6,"34":2,"35":2,"37":10,"41":6,"42":6,"47":4,"51":4,"52":2,"54":6,"55":4,"56":6,"58":2,"59":2,"62":6,"64":4,"65":6,"66":6,"67":10,"81":2,"91":4,"96":2}}],["720352",{"2":{"91":1}}],["720635",{"2":{"82":2}}],["72",{"2":{"68":1}}],["725765",{"2":{"27":1}}],["768363",{"2":{"91":1}}],["761553",{"2":{"82":2}}],["76",{"2":{"68":1}}],["762559",{"2":{"26":1}}],["705063",{"2":{"91":1}}],["70",{"2":{"66":3,"68":1}}],["7030",{"2":{"60":1}}],["701332",{"2":{"22":1}}],["730",{"2":{"97":1}}],["732556",{"2":{"91":1}}],["7341",{"2":{"56":1}}],["73",{"2":{"56":1,"68":1}}],["731779",{"2":{"26":1}}],["755932",{"2":{"91":1}}],["75",{"2":{"68":1}}],["7593",{"2":{"56":1}}],["75891",{"2":{"56":1}}],["75269",{"2":{"25":1}}],["752417",{"2":{"22":1}}],["77",{"2":{"68":1}}],["77687",{"2":{"56":1}}],["77587",{"2":{"56":1}}],["770949",{"2":{"26":1}}],["79",{"2":{"59":2,"62":3,"63":1,"64":2,"65":2,"66":4,"67":5,"68":1,"74":1,"80":1}}],["79502",{"2":{"56":1}}],["793913",{"2":{"27":1}}],["791138",{"2":{"27":1}}],["796375",{"2":{"26":1}}],["746804",{"2":{"91":1}}],["74",{"2":{"68":1}}],["744521",{"2":{"26":1}}],["74732",{"2":{"25":1}}],["717",{"2":{"67":5}}],["71",{"2":{"66":1,"68":1}}],["7158",{"2":{"51":1,"52":1}}],["7119",{"2":{"51":1,"52":1}}],["71314",{"2":{"26":1}}],["718667",{"2":{"26":1}}],["71429",{"2":{"22":2}}],["78",{"2":{"66":1,"68":1}}],["780824",{"2":{"27":1}}],["78467",{"2":{"25":1}}],["789891",{"2":{"25":1}}],["781773",{"2":{"22":1}}],["7",{"2":{"8":1,"16":10,"21":3,"22":1,"26":1,"29":1,"34":1,"58":1,"78":1,"102":1}}],["→",{"2":{"4":1,"5":1,"6":1,"9":1,"10":1,"12":1,"13":1,"14":1,"16":2,"17":1,"18":1,"19":1,"20":1,"21":3,"22":6,"25":1,"26":3,"27":3,"29":3,"30":1,"32":3,"33":3,"34":1,"35":1,"37":6,"39":2,"40":2,"41":3,"42":2,"45":2,"46":4,"47":2,"51":1,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":1,"66":3,"67":5,"74":1,"80":2,"81":2,"91":2,"102":1}}],["↓",{"2":{"4":3,"5":3,"6":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"20":1,"21":3,"22":6,"25":1,"26":3,"27":3,"29":3,"30":1,"32":3,"33":3,"34":1,"35":1,"37":6,"39":2,"40":8,"41":3,"42":3,"44":1,"45":3,"46":4,"47":2,"51":3,"52":1,"54":4,"55":2,"56":3,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":2,"81":2,"91":2,"96":2,"102":1}}],["438885",{"2":{"91":1}}],["4326",{"2":{"60":1}}],["43254",{"2":{"56":1}}],["4325",{"2":{"51":1,"52":1}}],["432286",{"2":{"22":1}}],["457984",{"2":{"82":2}}],["459041",{"2":{"82":2}}],["45×170×24",{"2":{"67":5}}],["456765",{"2":{"25":1}}],["48",{"2":{"91":1}}],["48367",{"2":{"56":1}}],["480",{"2":{"21":2,"42":1}}],["414041",{"2":{"82":2}}],["4198",{"2":{"56":1}}],["41241",{"2":{"56":1}}],["41049",{"2":{"56":1}}],["41634",{"2":{"56":1}}],["417937",{"2":{"22":1}}],["404819",{"2":{"91":1}}],["40",{"2":{"40":2}}],["400",{"2":{"25":1,"81":1,"95":1,"97":1}}],["44",{"2":{"37":1,"41":3}}],["471857",{"2":{"82":2}}],["47951",{"2":{"27":1}}],["475725",{"2":{"26":1}}],["472308",{"2":{"22":1}}],["497881",{"2":{"82":2}}],["497189",{"2":{"22":1}}],["49909",{"2":{"56":1}}],["4947",{"2":{"56":1}}],["492817",{"2":{"26":1}}],["4×30",{"2":{"22":1}}],["4×3×7",{"2":{"21":1}}],["4×3×2",{"2":{"19":1}}],["461652",{"2":{"91":1}}],["46506",{"2":{"56":1}}],["465103",{"2":{"22":1}}],["46",{"2":{"35":1,"91":1}}],["463503",{"2":{"22":1}}],["425153",{"2":{"27":1}}],["426519",{"2":{"25":1}}],["42857",{"2":{"22":2}}],["42",{"2":{"11":3}}],["4",{"2":{"4":4,"5":4,"16":4,"17":4,"18":2,"19":2,"20":1,"21":8,"22":9,"27":1,"34":1,"35":1,"51":2,"52":1,"53":1,"54":2,"55":2,"56":4,"81":3,"82":2,"91":3,"95":1,"97":1}}],["3d",{"0":{"106":1}}],["3hr",{"2":{"58":2,"102":3}}],["339529",{"2":{"91":1}}],["33565",{"2":{"56":1}}],["337926",{"2":{"25":1}}],["325997",{"2":{"91":1}}],["32555",{"2":{"56":1}}],["3252",{"2":{"51":1,"52":1}}],["32149",{"2":{"56":1}}],["327439",{"2":{"27":1}}],["3×3",{"2":{"47":1}}],["3×20",{"2":{"42":1}}],["384×192×251288",{"2":{"58":1}}],["3866",{"2":{"56":1}}],["38364",{"2":{"56":1}}],["3835",{"2":{"51":1,"52":1}}],["38",{"2":{"37":1,"66":3}}],["312",{"2":{"56":1}}],["31753",{"2":{"56":1}}],["3169",{"2":{"56":1}}],["3188",{"2":{"56":1}}],["31",{"2":{"37":2,"39":1,"40":1,"95":1,"96":2}}],["366",{"2":{"97":1}}],["365×1",{"2":{"96":1}}],["365",{"2":{"96":1,"97":4}}],["365971",{"2":{"27":1}}],["367809",{"2":{"82":2}}],["36126",{"2":{"56":1}}],["36142",{"2":{"56":1}}],["36836",{"2":{"56":1}}],["369",{"2":{"40":1}}],["36",{"2":{"37":1,"39":2,"40":1,"54":1}}],["3600",{"2":{"37":1,"39":2}}],["364288",{"2":{"25":1}}],["34818",{"2":{"56":1}}],["34832",{"2":{"56":1}}],["348362",{"2":{"25":1}}],["34549",{"2":{"56":1}}],["34218",{"2":{"56":1}}],["340769",{"2":{"27":1}}],["3785",{"2":{"91":1}}],["37878",{"2":{"56":1}}],["37",{"2":{"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1}}],["372",{"2":{"56":1}}],["372761",{"2":{"22":1}}],["376409",{"2":{"26":1}}],["376135",{"2":{"22":1}}],["35700351866494",{"2":{"58":4,"102":2}}],["35432",{"2":{"56":1}}],["35483",{"2":{"56":1}}],["359",{"2":{"40":1,"58":2,"59":2,"62":3,"63":1,"64":2,"65":1,"68":2,"74":1,"80":1,"102":1}}],["35",{"2":{"10":1,"12":1,"13":1,"22":1,"29":1}}],["307f8f0e584a39a050c042849004e6a2bd674f99",{"2":{"60":1}}],["3069",{"2":{"56":1}}],["30018",{"2":{"56":1}}],["30142",{"2":{"56":1}}],["30113",{"2":{"56":1}}],["30×15×10",{"2":{"16":1}}],["30×10×15",{"2":{"10":1,"12":1,"13":1,"22":1,"29":1}}],["30",{"2":{"10":3,"12":1,"13":1,"14":2,"16":5,"22":5,"23":2,"26":10,"29":4,"30":2,"56":2,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"102":1}}],["393083",{"2":{"91":1}}],["395234",{"2":{"26":1}}],["39",{"2":{"10":1,"16":3,"18":1,"19":1,"33":1,"35":1,"37":1,"39":1,"40":1,"41":2,"56":1,"61":1,"62":1,"63":1,"73":1,"76":1,"84":2,"87":4,"96":3}}],["3",{"2":{"4":8,"5":8,"6":10,"10":1,"11":3,"12":3,"13":2,"16":4,"17":3,"18":1,"19":3,"20":1,"21":14,"22":6,"26":2,"27":1,"29":3,"32":5,"34":1,"37":4,"41":4,"42":5,"46":1,"47":2,"51":2,"56":31,"58":1,"59":1,"62":3,"64":2,"66":4,"67":5,"80":1,"81":3,"84":1,"91":3,"95":2}}],["zoom",{"2":{"106":1}}],["zopen",{"2":{"58":1,"82":1,"102":1}}],["zeros",{"2":{"81":3,"96":1}}],["z",{"2":{"4":2,"5":3,"6":2,"80":2}}],["zarray",{"2":{"82":1}}],["zarr",{"0":{"58":1,"75":1,"76":1,"101":1},"1":{"76":1},"2":{"0":1,"2":2,"4":2,"5":2,"6":2,"16":5,"17":1,"20":2,"23":1,"27":1,"47":1,"58":3,"75":5,"76":5,"79":3,"80":4,"81":6,"82":2,"84":2,"85":2,"94":2,"102":1}}],["xticklabelalign",{"2":{"95":1,"97":1}}],["xticklabelrotation",{"2":{"95":1,"97":1}}],["xlabel=",{"2":{"95":1,"97":1}}],["xx",{"2":{"59":1,"63":1,"74":1,"80":1}}],["xarray",{"2":{"49":1,"50":1}}],["x26",{"2":{"22":12,"40":12}}],["x3c",{"2":{"22":12,"40":4,"84":1}}],["xyz",{"2":{"21":2}}],["xy",{"2":{"19":2}}],["xyt",{"2":{"19":2,"21":2}}],["xin",{"2":{"18":8,"19":11,"21":8,"22":3,"41":3}}],["xout",{"2":{"16":2,"18":6,"19":6,"21":2,"22":3}}],["x",{"2":{"4":2,"5":3,"6":2,"13":2,"26":4,"27":3,"41":4,"47":2,"51":2,"52":1,"56":3,"60":1,"70":1,"82":2,"85":1,"91":5,"95":1,"96":6}}],["ndata",{"2":{"104":2,"105":1,"106":1}}],["ndays",{"2":{"96":4}}],["nlon",{"2":{"104":2,"105":1}}],["npy",{"2":{"95":2,"96":2}}],["nin",{"2":{"85":2}}],["ntr",{"2":{"85":1}}],["ntuple",{"2":{"85":4}}],["nthreads",{"2":{"84":2}}],["nvalid",{"2":{"84":1}}],["n",{"2":{"69":1,"84":3}}],["n256",{"2":{"56":1}}],["nan",{"2":{"50":1,"51":48,"52":48,"56":384}}],["name=cube",{"2":{"84":1}}],["named",{"2":{"63":1,"65":1,"66":1,"70":1,"84":2,"92":1}}],["namedtuple",{"2":{"18":1,"20":1,"84":1,"85":3}}],["names",{"0":{"21":1,"32":1,"43":1,"45":1},"1":{"33":1,"44":1,"45":1},"2":{"29":2,"46":1,"53":1,"70":2,"84":2,"85":1}}],["namely",{"2":{"16":1,"17":1}}],["name",{"0":{"44":1},"2":{"2":1,"18":4,"20":1,"45":1,"56":1,"58":3,"59":4,"62":12,"64":8,"65":12,"66":12,"67":20,"73":1,"81":2,"84":6,"85":5,"91":1}}],["nc",{"2":{"50":2,"59":2,"63":2,"74":2,"77":2,"78":3,"84":6}}],["number",{"2":{"49":1,"54":1,"76":1,"78":1,"84":2,"85":1,"96":1}}],["numbers",{"2":{"10":1,"91":1}}],["nout",{"2":{"85":2}}],["normal",{"2":{"84":1,"106":1}}],["north",{"2":{"60":1}}],["nometadata",{"2":{"51":3,"52":2,"54":1,"55":1,"56":10}}],["november",{"2":{"59":1,"63":1,"74":1,"80":1}}],["nov",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["nonmissingtype",{"2":{"85":1}}],["none",{"2":{"40":2,"45":1,"46":1,"58":1,"80":1,"102":1}}],["non",{"2":{"23":1,"84":1,"85":1,"95":1}}],["now",{"2":{"16":3,"18":1,"22":1,"33":1,"35":1,"37":1,"42":1,"46":1,"51":1,"52":1,"54":1,"56":1,"81":2,"82":1,"88":1}}],["no",{"2":{"14":1,"21":1,"27":1,"36":1,"76":1,"78":1,"81":1,"84":1,"85":1}}],["notice",{"2":{"76":1}}],["notation",{"2":{"37":1,"67":1}}],["nothing",{"2":{"18":1,"19":1,"21":1,"51":2,"54":2,"55":2,"56":5,"79":1,"84":1,"85":1}}],["note",{"2":{"9":1,"13":1,"16":4,"18":1,"21":1,"22":1,"33":1,"40":1,"47":1,"52":1,"59":1,"62":1,"81":1,"84":1,"85":1}}],["not",{"0":{"40":1},"2":{"0":1,"1":1,"13":1,"36":1,"40":3,"45":1,"46":2,"47":1,"50":1,"59":1,"81":2,"84":3,"85":3}}],["neighbour",{"2":{"84":1}}],["neighboring",{"2":{"13":1}}],["near",{"2":{"58":2,"67":1,"102":1}}],["needed",{"2":{"84":1}}],["need",{"2":{"45":1,"82":1,"84":1,"85":1,"87":1}}],["next",{"2":{"41":1,"42":1,"53":1,"88":2}}],["netcdf4",{"2":{"59":1}}],["netcdf",{"0":{"59":1,"77":1,"78":1},"1":{"78":1},"2":{"27":1,"47":1,"48":2,"59":4,"61":1,"63":2,"71":3,"74":2,"77":3,"78":2,"79":1,"84":2,"94":2}}],["necessary",{"2":{"16":1,"49":1,"50":1,"82":1,"85":4}}],["newdim",{"2":{"84":1}}],["new",{"0":{"9":1},"2":{"10":1,"12":1,"16":1,"29":1,"32":1,"33":3,"48":1,"50":1,"53":1,"72":1,"79":1,"80":1,"81":1,"84":5,"85":4,"87":6,"96":1}}],["bits",{"2":{"84":2}}],["big",{"2":{"70":1}}],["black",{"2":{"97":1}}],["blocks",{"2":{"84":1}}],["blosccompressor",{"2":{"76":1}}],["blue",{"2":{"60":1,"71":1}}],["bonito",{"2":{"106":1}}],["boundaries",{"2":{"85":1}}],["bounds",{"2":{"84":1}}],["bold",{"2":{"56":1}}],["bool=true",{"2":{"85":1}}],["bool=false",{"2":{"84":1,"85":1}}],["boolean",{"2":{"84":3}}],["bool",{"2":{"47":3,"85":6}}],["bwr",{"2":{"56":1}}],["b`",{"2":{"37":1}}],["broad",{"2":{"99":1}}],["broadcasts",{"2":{"85":1}}],["broadcast",{"2":{"51":1,"56":1}}],["broadcasted",{"2":{"16":2,"84":1,"85":1}}],["brown",{"2":{"97":1}}],["browser",{"2":{"88":1}}],["brightness",{"2":{"70":1,"71":1}}],["brings",{"2":{"85":1}}],["bring",{"2":{"34":1}}],["branch",{"2":{"58":1,"102":1}}],["bug",{"2":{"86":1}}],["bundle",{"2":{"71":1}}],["build",{"0":{"88":1},"2":{"32":1,"88":1}}],["but",{"0":{"40":1},"2":{"8":1,"16":2,"32":1,"33":2,"40":2,"45":1,"46":2,"59":1,"65":1,"66":1,"84":2}}],["b",{"2":{"17":2,"18":1,"19":1,"20":1,"22":13,"45":2,"67":2,"84":2}}],["backgroundcolor=",{"2":{"106":1}}],["back",{"2":{"84":1}}],["backend",{"2":{"79":2,"84":8}}],["backendlist",{"2":{"48":1,"84":1}}],["backend=",{"2":{"2":1,"16":2,"80":1}}],["based",{"0":{"101":1},"2":{"84":1,"85":1}}],["base",{"0":{"25":1},"2":{"4":4,"5":4,"6":2,"18":1,"20":1,"25":4,"29":3,"32":9,"33":6,"44":1,"45":5,"47":4,"81":6,"85":1,"91":2}}],["by=",{"2":{"42":2,"84":2}}],["bytes",{"2":{"8":1,"9":1,"14":1,"16":3,"17":1,"18":1,"19":1,"21":3,"22":1,"25":1,"27":1,"33":3,"34":1,"37":1,"42":2,"47":2,"54":1,"65":2,"78":4,"81":1,"91":1}}],["by",{"0":{"4":1,"5":1},"2":{"2":1,"10":2,"14":1,"16":1,"22":1,"28":1,"29":1,"33":1,"36":1,"37":6,"40":2,"42":1,"49":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"70":3,"72":1,"73":1,"79":1,"82":2,"84":12,"85":6,"87":1,"88":1,"90":1,"96":1}}],["beware",{"2":{"98":1}}],["best",{"2":{"85":1,"100":1}}],["become",{"2":{"84":1}}],["because",{"2":{"1":1,"13":1,"14":1,"16":1}}],["before",{"2":{"81":1,"84":1,"88":1}}],["belonging",{"2":{"71":1}}],["belongs",{"2":{"22":1}}],["being",{"2":{"46":1}}],["been",{"2":{"40":1,"82":1}}],["between",{"2":{"26":1,"27":1,"37":1,"39":1,"40":2,"67":1,"76":1,"78":1,"84":1}}],["begin",{"2":{"23":1}}],["be",{"2":{"0":5,"2":1,"3":1,"4":1,"13":1,"15":1,"16":2,"22":1,"24":1,"37":1,"40":1,"41":1,"42":2,"45":1,"46":1,"50":1,"58":2,"59":1,"60":1,"61":2,"62":1,"68":1,"70":1,"72":2,"79":1,"80":1,"81":1,"84":23,"85":9,"87":1,"92":1,"93":1,"98":1,"102":1}}],["628915",{"2":{"91":1}}],["626919",{"2":{"91":1}}],["624506",{"2":{"91":1}}],["625389",{"2":{"27":1}}],["696114",{"2":{"91":1}}],["69",{"2":{"58":1}}],["69085",{"2":{"56":1}}],["600",{"2":{"95":1,"97":1,"103":1,"104":1,"105":1}}],["607478",{"2":{"91":1}}],["606561",{"2":{"91":1}}],["60265",{"2":{"58":1,"102":1}}],["60918",{"2":{"56":1}}],["60175",{"2":{"56":1}}],["647957",{"2":{"82":2}}],["64976",{"2":{"56":1}}],["642",{"2":{"50":1}}],["645758",{"2":{"25":1}}],["665833",{"2":{"91":1}}],["665723",{"2":{"25":1}}],["662295",{"2":{"27":1}}],["634856",{"2":{"91":1}}],["6326",{"2":{"60":1}}],["6378137",{"2":{"60":1}}],["63006",{"2":{"56":1}}],["630469",{"2":{"27":1}}],["63593",{"2":{"27":1}}],["655204",{"2":{"91":1}}],["65105",{"2":{"56":1}}],["658321",{"2":{"27":1}}],["652339",{"2":{"25":1}}],["6122",{"2":{"56":1}}],["61197",{"2":{"56":1}}],["611084",{"2":{"25":1}}],["619",{"2":{"51":1,"52":1}}],["617023",{"2":{"26":1}}],["6×6×25",{"2":{"26":2}}],["6×2",{"2":{"9":1}}],["673373",{"2":{"25":1}}],["671662",{"2":{"22":1}}],["672",{"2":{"21":1}}],["686278",{"2":{"27":1}}],["687891",{"2":{"26":1}}],["684389",{"2":{"22":1}}],["685454",{"2":{"22":1}}],["6",{"2":{"2":6,"4":6,"5":6,"6":6,"8":4,"9":5,"16":8,"22":1,"34":1,"37":1,"58":1,"102":1}}],["1e8",{"2":{"85":1}}],["1f2",{"2":{"47":1}}],["1992",{"2":{"84":1}}],["1991",{"2":{"84":1}}],["1990",{"2":{"84":1}}],["1984",{"2":{"60":1}}],["1983",{"2":{"54":1}}],["1980",{"2":{"54":1}}],["193109",{"2":{"26":1}}],["197238",{"2":{"25":1}}],["1921",{"2":{"82":2}}],["19241",{"2":{"56":1}}],["192",{"2":{"19":1,"104":1}}],["19",{"2":{"16":16,"66":3,"67":5}}],["18554488323324722",{"2":{"96":1}}],["18583",{"2":{"56":1}}],["183083",{"2":{"91":1}}],["18892",{"2":{"56":1}}],["18434",{"2":{"56":1}}],["180×170",{"2":{"65":1}}],["180×170×24",{"2":{"59":1,"62":3,"64":2}}],["180",{"2":{"40":2,"60":1,"67":5,"104":1}}],["180ºe",{"2":{"40":1}}],["181798",{"2":{"27":1}}],["18",{"2":{"16":18}}],["142733",{"2":{"91":1}}],["14286",{"2":{"22":1}}],["1437",{"2":{"56":1}}],["145747",{"2":{"22":1}}],["14",{"2":{"16":20,"27":1}}],["13853500608021024",{"2":{"96":1}}],["136",{"2":{"59":1,"63":1,"74":1,"80":1}}],["1363",{"2":{"51":1,"52":1}}],["13z",{"2":{"58":2,"102":1}}],["1372",{"2":{"51":1,"52":1}}],["13",{"2":{"16":20,"27":1,"40":6,"59":1,"63":1,"74":1,"80":1}}],["170",{"2":{"68":1}}],["179",{"2":{"60":1,"67":5}}],["17578125",{"2":{"60":2}}],["17593",{"2":{"22":1}}],["17434",{"2":{"56":1}}],["174934",{"2":{"25":1}}],["17852",{"2":{"56":1}}],["17863",{"2":{"56":1}}],["178603",{"2":{"22":1}}],["17647",{"2":{"56":1}}],["1762",{"2":{"51":1,"52":1}}],["17t00",{"2":{"54":1}}],["172",{"2":{"47":1}}],["17",{"2":{"14":1,"16":22,"42":1,"66":1}}],["16t00",{"2":{"59":4,"62":6,"63":2,"64":4,"65":4,"66":6,"67":10,"74":2,"80":2}}],["16t12",{"2":{"54":1}}],["1644",{"2":{"56":1}}],["16824",{"2":{"56":1}}],["16581",{"2":{"56":1}}],["165853",{"2":{"27":1}}],["16631",{"2":{"56":1}}],["166212",{"2":{"25":1}}],["16713",{"2":{"56":1}}],["167676",{"2":{"22":1}}],["16258",{"2":{"56":1}}],["162134",{"2":{"27":1}}],["169284",{"2":{"25":1}}],["16",{"2":{"10":1,"12":1,"13":1,"16":20,"22":1,"29":1,"59":2,"62":3,"63":1,"64":2,"65":4,"66":3,"67":5,"74":1,"80":1}}],["157268",{"2":{"91":1}}],["159",{"2":{"66":1}}],["15644",{"2":{"56":1}}],["15532",{"2":{"56":1}}],["151146",{"2":{"25":1}}],["152534",{"2":{"25":1}}],["15394",{"2":{"22":1}}],["15×10×30",{"2":{"16":1}}],["15×10",{"2":{"16":2}}],["15",{"2":{"10":1,"16":25,"22":6,"23":1,"27":4,"29":1,"30":1,"35":2,"42":1,"91":1}}],["128",{"2":{"106":1}}],["128204",{"2":{"25":1}}],["1242",{"2":{"56":1}}],["12575",{"2":{"56":1}}],["12568",{"2":{"26":1}}],["121",{"2":{"47":1}}],["121947",{"2":{"22":1}}],["12320189493957617",{"2":{"96":1}}],["123",{"2":{"17":1,"21":2}}],["1200",{"2":{"103":1,"104":1,"105":1}}],["120997",{"2":{"22":1}}],["120",{"2":{"16":1}}],["12",{"2":{"8":4,"16":20,"27":1,"37":10,"39":3,"40":4,"59":2,"62":3,"63":1,"64":2,"65":2,"66":3,"67":5,"74":1,"80":1,"95":1,"96":2}}],["1=5",{"2":{"2":1}}],["1159916",{"2":{"78":1}}],["119",{"2":{"65":1}}],["1181",{"2":{"56":1}}],["113553",{"2":{"55":3}}],["112319",{"2":{"55":12}}],["114815",{"2":{"55":6}}],["11",{"2":{"2":6,"4":6,"5":6,"6":6,"8":1,"16":18,"27":1,"51":4,"52":4,"56":4,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":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":10,"18":9,"19":8,"20":5,"21":17,"22":34,"23":3,"25":1,"26":7,"27":6,"29":15,"30":4,"32":3,"33":3,"34":8,"35":8,"37":23,"39":10,"40":8,"41":15,"42":14,"44":1,"45":3,"46":1,"47":5,"51":4,"52":2,"54":6,"55":10,"56":54,"58":4,"59":12,"62":12,"63":4,"64":8,"65":13,"66":18,"67":15,"68":2,"74":4,"80":11,"81":2,"82":2,"85":1,"91":11,"95":2,"96":5,"97":5,"102":3,"104":4,"105":2,"106":5}}],["1095",{"2":{"96":1}}],["10989",{"2":{"55":6}}],["10mb",{"2":{"84":2}}],["1083",{"2":{"56":1}}],["108696",{"2":{"55":6}}],["103704",{"2":{"55":3}}],["100",{"2":{"40":13}}],["1000",{"2":{"0":1,"104":1,"105":1}}],["10×170×24",{"2":{"66":1}}],["10×10×24",{"2":{"66":2}}],["10×10×8",{"2":{"37":1}}],["10×10×12",{"2":{"37":1}}],["10×10×36",{"2":{"37":1}}],["10×10×5",{"2":{"32":1}}],["10×10",{"2":{"33":3,"34":1,"37":1}}],["10×15×20",{"2":{"41":1}}],["10×15",{"2":{"14":1,"22":2,"42":1,"91":1}}],["10×20×5",{"2":{"29":1}}],["10x15",{"2":{"22":1}}],["101524",{"2":{"22":1}}],["10",{"2":{"2":14,"4":16,"5":18,"6":17,"10":3,"12":1,"13":1,"14":1,"16":21,"22":15,"23":3,"25":2,"27":4,"29":6,"30":2,"32":8,"33":12,"34":5,"35":4,"37":16,"39":10,"41":3,"42":2,"44":2,"45":4,"58":1,"59":2,"62":3,"64":2,"65":3,"66":6,"67":5,"80":2,"90":1,"91":3}}],["garbage",{"2":{"85":1}}],["gc",{"2":{"85":2}}],["gt",{"2":{"84":1,"85":3,"88":1}}],["gdalworkshop",{"2":{"60":1}}],["gdal",{"0":{"60":1},"2":{"60":1}}],["gb",{"2":{"58":1}}],["gn",{"2":{"58":1,"102":2}}],["gs",{"2":{"58":1,"102":2}}],["ggplot2",{"2":{"56":1}}],["github",{"2":{"50":2,"60":1,"86":1}}],["gives",{"2":{"22":1}}],["given",{"2":{"2":1,"22":2,"70":1,"72":1,"79":1,"84":6,"85":3,"91":1}}],["glob",{"2":{"84":1}}],["globalproperties=dict",{"2":{"85":1}}],["global",{"2":{"84":1,"85":1}}],["glmakie",{"2":{"42":2,"94":1,"102":2}}],["glue",{"2":{"8":1}}],["gradient",{"2":{"103":1,"104":1,"105":1,"106":1}}],["gradually",{"2":{"81":1}}],["grey25",{"2":{"106":1}}],["grey15",{"2":{"42":1,"56":1}}],["greenwich",{"2":{"60":1}}],["green",{"2":{"60":1,"71":1}}],["grouped",{"2":{"84":1}}],["groups",{"2":{"55":1}}],["groupby",{"0":{"51":1,"54":1},"1":{"52":1,"53":1,"55":1,"56":1},"2":{"48":1,"50":1,"51":6,"52":1,"53":1,"54":3,"55":3,"56":3,"84":1,"96":1}}],["group",{"0":{"48":1},"1":{"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"51":1,"53":1,"54":2,"71":1,"84":3}}],["grouping",{"2":{"42":2,"53":2}}],["grid=false",{"2":{"56":1}}],["grid",{"2":{"23":1,"70":1,"84":1}}],["gridchunks",{"2":{"2":3,"4":1,"5":1,"6":1,"84":1,"85":1}}],["go",{"2":{"88":2}}],["going",{"2":{"85":1}}],["good",{"2":{"56":1}}],["goal",{"2":{"21":1,"33":1,"49":1}}],["goes",{"2":{"16":2,"84":1,"85":1}}],["guide",{"2":{"10":2,"12":1,"13":1,"23":1,"29":3,"30":1}}],["gen",{"2":{"16":6}}],["general",{"0":{"99":1},"2":{"84":1,"93":1}}],["generated",{"2":{"59":1,"63":1,"74":1,"80":1,"85":1}}],["generate",{"2":{"16":2,"37":1,"39":1,"40":1,"84":1,"88":1}}],["generic",{"2":{"16":2,"18":1,"19":1,"21":1,"29":1,"84":1}}],["getting",{"0":{"89":1},"1":{"90":1,"91":1,"92":1}}],["gettarrayaxes",{"2":{"46":1}}],["getarrayinfo",{"2":{"85":1}}],["getaxis",{"2":{"34":1,"42":2,"84":1}}],["getloopchunks",{"2":{"85":1}}],["getloopcachesize",{"2":{"85":1}}],["getouttype",{"2":{"85":1}}],["getoutaxis",{"2":{"85":1}}],["getfrontperm",{"2":{"85":1}}],["gets",{"2":{"84":1,"85":1}}],["get",{"0":{"68":1},"2":{"10":1,"18":1,"32":1,"50":1,"54":1,"64":1,"66":1,"68":1,"85":3,"91":1,"96":1,"102":1}}],["geoaxis",{"2":{"104":1,"105":1}}],["geometrybasics",{"2":{"102":1}}],["geomakie",{"2":{"94":1,"102":1,"104":2,"105":1}}],["geogcs",{"2":{"60":1}}],["geojson",{"0":{"60":1}}],["geotiff",{"0":{"60":1}}],["geo",{"2":{"1":1}}],["g",{"2":{"7":1,"10":1,"11":1,"13":1,"16":4,"23":1,"29":1,"51":26,"52":2,"53":2,"54":2,"55":1,"56":18,"68":1,"70":1,"73":1,"84":5,"102":2}}],["2π",{"2":{"95":1}}],["2×3",{"2":{"91":1}}],["2×2×3",{"2":{"4":1,"5":1,"6":1}}],["2×2",{"2":{"2":3,"47":1}}],["2x2l31",{"2":{"59":1,"63":1,"74":1,"80":1}}],["2f0",{"2":{"47":1}}],["2963860",{"2":{"78":1}}],["298",{"2":{"60":1}}],["29816",{"2":{"56":1}}],["29473",{"2":{"56":1}}],["29564",{"2":{"56":1}}],["299637",{"2":{"26":1}}],["29",{"2":{"26":2}}],["283788",{"2":{"91":1}}],["28422753251364",{"2":{"58":4,"102":2}}],["28008",{"2":{"56":1}}],["2894",{"2":{"56":1}}],["288",{"2":{"54":1}}],["2818",{"2":{"51":1,"52":1}}],["28",{"2":{"26":2,"37":1,"51":3,"52":3,"56":3}}],["28571",{"2":{"22":2}}],["2857142857142857",{"2":{"10":1,"12":1,"13":1,"14":1,"22":3,"29":2,"30":1,"35":1,"41":3,"42":1,"91":1}}],["2747",{"2":{"56":1}}],["273",{"2":{"54":1}}],["276",{"2":{"54":2}}],["270",{"2":{"54":1}}],["275×205×9",{"2":{"51":4}}],["271209",{"2":{"27":1}}],["27",{"2":{"26":2,"51":1,"52":1,"56":1}}],["2d",{"2":{"19":5,"20":3,"21":2}}],["265107",{"2":{"91":1}}],["265797",{"2":{"25":1}}],["26274",{"2":{"56":1}}],["268675",{"2":{"26":1}}],["26",{"2":{"16":2,"26":2,"58":2,"102":1}}],["25526503219661817",{"2":{"96":1}}],["258509",{"2":{"91":1}}],["257223563",{"2":{"60":1}}],["25153",{"2":{"56":1}}],["25",{"2":{"16":4,"26":10,"37":1,"95":1}}],["245867",{"2":{"91":1}}],["24375",{"2":{"56":1}}],["2434",{"2":{"56":1}}],["241882",{"2":{"25":1}}],["24",{"2":{"16":6,"42":1,"65":2}}],["240588",{"2":{"91":1}}],["240",{"2":{"14":1,"16":1,"27":1}}],["235899",{"2":{"91":1}}],["235707",{"2":{"91":1}}],["234116",{"2":{"91":1}}],["237824",{"2":{"27":1}}],["23",{"2":{"16":8,"41":3,"56":1,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1}}],["223574",{"2":{"82":2}}],["22211",{"2":{"56":1}}],["229281",{"2":{"27":1}}],["225542",{"2":{"26":1}}],["22",{"2":{"16":10}}],["21t06",{"2":{"58":2,"102":1}}],["21t19",{"2":{"46":4}}],["2101",{"2":{"58":2,"102":1}}],["21056",{"2":{"26":1}}],["21699",{"2":{"56":1}}],["21209",{"2":{"56":1}}],["215988",{"2":{"27":1}}],["215973",{"2":{"26":1}}],["21",{"2":{"16":12,"51":8,"52":8,"56":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":1,"18":2,"19":2,"20":1,"22":9,"23":1,"25":2,"27":3,"29":1,"32":3,"33":6,"34":3,"37":1,"42":6,"45":4,"46":1,"47":8,"51":1,"52":1,"56":40,"58":3,"59":3,"62":6,"63":1,"64":4,"65":2,"66":2,"67":5,"68":2,"74":1,"80":2,"81":2,"84":2,"91":5,"102":3,"104":2,"106":1}}],["2003",{"2":{"59":1,"63":1,"74":1,"80":1}}],["2004",{"2":{"59":1,"63":1,"74":1,"80":1}}],["2005",{"2":{"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1}}],["2002",{"2":{"59":3,"62":3,"63":2,"64":2,"65":2,"66":3,"67":5,"74":2,"80":1}}],["2001",{"2":{"59":3,"62":3,"63":2,"64":2,"65":3,"66":3,"67":5,"74":2,"80":1}}],["2000",{"2":{"26":4}}],["2019",{"2":{"58":2,"102":1}}],["2015",{"2":{"58":2,"59":1,"63":1,"74":1,"80":1,"102":2}}],["20×10×15",{"2":{"41":2}}],["20×10×15×2",{"2":{"35":1,"91":1}}],["20ºn",{"2":{"40":1}}],["203714",{"2":{"26":1}}],["2023",{"2":{"95":1,"96":2}}],["2021",{"2":{"37":9,"95":1,"96":2,"97":1}}],["2020",{"2":{"37":5,"39":3,"40":4,"46":8,"72":1}}],["2024",{"2":{"26":4}}],["2022",{"2":{"10":4,"12":2,"13":2,"14":2,"16":8,"17":4,"18":2,"20":2,"21":6,"22":6,"23":2,"29":6,"30":2,"37":5,"39":3,"40":4,"97":1}}],["20",{"2":{"2":7,"4":10,"5":10,"6":10,"16":14,"29":2,"35":4,"40":2,"41":3,"42":1,"56":1,"80":2,"91":3}}],["542309",{"2":{"91":1}}],["540514",{"2":{"26":1}}],["55",{"2":{"96":1}}],["552072",{"2":{"91":1}}],["551732",{"2":{"22":1}}],["515079",{"2":{"91":1}}],["5173",{"2":{"88":1}}],["514979",{"2":{"22":1}}],["5e8",{"2":{"79":1,"84":1}}],["5743",{"2":{"56":1}}],["57873",{"2":{"56":1}}],["57695",{"2":{"56":1}}],["57143",{"2":{"22":2}}],["52908",{"2":{"91":1}}],["520406",{"2":{"82":2}}],["520744",{"2":{"27":1}}],["52419",{"2":{"56":1}}],["521769",{"2":{"27":1}}],["521991",{"2":{"26":1}}],["522262",{"2":{"27":1}}],["56632",{"2":{"56":1}}],["5665467544778467",{"2":{"11":1}}],["561549",{"2":{"26":1}}],["59212",{"2":{"56":1}}],["59085",{"2":{"56":1}}],["594514",{"2":{"25":1}}],["595405",{"2":{"22":1}}],["5×4",{"2":{"82":2}}],["5×4×5",{"2":{"81":1}}],["5×4×3",{"2":{"21":2}}],["5×4×3×2",{"2":{"17":1,"18":1}}],["5×6×36",{"2":{"37":1}}],["5×6",{"2":{"27":2}}],["5×10",{"2":{"25":2}}],["507176",{"2":{"91":1}}],["508557",{"2":{"22":1}}],["50089",{"2":{"56":1}}],["500",{"2":{"0":1,"56":1,"106":2}}],["500mb",{"2":{"0":2}}],["531092",{"2":{"91":1}}],["53",{"2":{"65":1}}],["536273",{"2":{"27":1}}],["536399",{"2":{"22":1}}],["538981",{"2":{"22":1}}],["587477",{"2":{"91":1}}],["5843",{"2":{"51":1,"52":1}}],["581312",{"2":{"25":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":2,"21":4,"22":10,"23":1,"25":2,"27":4,"29":5,"30":1,"32":4,"34":1,"35":2,"37":3,"39":4,"41":3,"42":2,"45":4,"56":5,"59":4,"62":6,"63":2,"64":4,"65":3,"66":10,"67":10,"68":19,"74":2,"80":4,"81":6,"82":3,"91":2,"92":1,"97":2,"106":2}}],["rotate",{"2":{"106":1}}],["row",{"2":{"73":1,"84":1}}],["rowgap",{"2":{"56":1}}],["right",{"2":{"95":1,"97":1}}],["rights",{"2":{"82":1}}],["r",{"2":{"81":1}}],["r1i1p1f1",{"2":{"58":2,"102":3}}],["running",{"2":{"88":1}}],["run",{"2":{"23":1,"88":3,"93":2}}],["runs",{"2":{"13":1,"85":1}}],["ram",{"2":{"61":1}}],["race",{"2":{"59":1}}],["rafaqz",{"2":{"50":1}}],["raw",{"2":{"50":1,"60":1}}],["rasm",{"2":{"50":2}}],["ras",{"2":{"26":3}}],["rasters",{"2":{"26":2}}],["raster",{"0":{"26":1},"2":{"22":11,"26":5}}],["ranges",{"0":{"66":1},"2":{"34":1,"63":1}}],["range",{"2":{"10":2,"16":2,"17":2,"22":2,"23":2,"29":2,"35":3,"37":1,"85":1,"91":3,"95":1}}],["randn",{"2":{"95":1}}],["random",{"2":{"17":2,"40":2,"46":3,"91":1}}],["rand",{"2":{"2":1,"4":3,"5":3,"6":3,"8":2,"9":2,"10":1,"17":1,"19":1,"21":3,"22":1,"23":1,"25":1,"26":1,"27":1,"29":2,"30":1,"32":1,"33":2,"35":2,"40":3,"42":1,"44":1,"45":3,"80":1,"82":1,"91":2}}],["relational",{"2":{"70":1}}],["related",{"2":{"50":1}}],["recommend",{"2":{"92":1}}],["recommended",{"2":{"67":1}}],["rechunking",{"2":{"85":1}}],["recalculate",{"2":{"85":1}}],["recal",{"2":{"85":1}}],["recently",{"2":{"0":1}}],["reentrantlock",{"2":{"59":1}}],["rewrote",{"2":{"58":1,"59":1,"63":1,"74":1,"80":1,"102":1}}],["realization",{"2":{"59":1,"63":1,"74":1,"80":1}}],["realm",{"2":{"58":1,"102":1}}],["readcubedata",{"0":{"62":1},"2":{"40":2,"61":1,"62":1,"84":1}}],["read",{"0":{"57":1,"58":1,"59":1,"60":1},"1":{"58":1,"59":1,"60":1,"61":1,"62":1},"2":{"1":1,"40":1,"50":1,"57":1,"60":1,"66":1,"84":1}}],["red",{"2":{"56":1,"60":1,"71":1}}],["reduce",{"2":{"10":1,"14":1,"19":1}}],["reverse",{"2":{"56":1}}],["reverseordered",{"2":{"9":1,"60":1,"91":1}}],["rename",{"2":{"45":1}}],["resets",{"2":{"84":1,"85":1}}],["respectively",{"2":{"71":1}}],["reshape",{"2":{"37":1,"39":2}}],["result",{"2":{"34":1,"42":1}}],["resulting",{"2":{"8":1,"9":1,"14":1,"84":1,"85":1}}],["results",{"0":{"97":1},"2":{"2":1,"5":1,"56":2,"84":1,"85":1}}],["references",{"2":{"59":1,"63":1,"74":1,"80":1}}],["reference",{"0":{"83":1},"1":{"84":1,"85":1},"2":{"46":1}}],["ref",{"2":{"35":1,"84":1,"85":1}}],["rebuild",{"0":{"33":1},"2":{"32":1,"33":2,"46":2,"50":1}}],["repeat",{"2":{"95":1}}],["repl",{"2":{"90":1,"93":1}}],["replace",{"2":{"23":1,"50":1,"106":1}}],["repository",{"2":{"86":1,"98":1}}],["reports",{"2":{"86":1}}],["reproduces",{"2":{"49":1}}],["represented",{"2":{"84":1,"100":1}}],["represents",{"2":{"71":1}}],["representing",{"2":{"22":2,"85":1}}],["representation",{"2":{"1":1,"84":2,"85":3}}],["re",{"2":{"22":1}}],["registry",{"2":{"93":1}}],["registration",{"2":{"85":2}}],["registered",{"2":{"85":1,"93":1}}],["regions",{"2":{"22":8}}],["region",{"2":{"22":12}}],["regular",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":3,"18":3,"19":2,"20":2,"21":9,"22":8,"25":2,"26":6,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":3,"37":14,"39":6,"40":4,"41":9,"42":3,"44":1,"45":5,"47":4,"51":2,"52":2,"56":6,"58":2,"59":4,"60":2,"62":6,"63":2,"64":4,"65":2,"66":3,"67":10,"68":2,"74":2,"80":5,"81":6,"91":5,"96":1,"102":1}}],["regularchunks",{"2":{"2":6,"4":3,"5":3,"6":3}}],["returned",{"2":{"84":1}}],["returns",{"2":{"84":5,"85":2}}],["return",{"2":{"18":1,"19":1,"21":2,"22":4,"51":1,"84":1,"85":1,"96":1}}],["requests",{"2":{"86":1}}],["requested",{"2":{"13":1}}],["requirements",{"2":{"59":1,"63":1,"74":1,"80":1}}],["required",{"2":{"37":1}}],["requires",{"2":{"16":1}}],["removes",{"2":{"85":1}}],["remove",{"2":{"52":1}}],["removed",{"2":{"15":1,"85":1}}],["remote",{"2":{"0":1}}],["http",{"2":{"88":1}}],["https",{"2":{"50":2,"59":1,"60":1,"63":1,"71":1,"74":1}}],["html",{"2":{"71":1}}],["hdf5",{"2":{"59":1}}],["hr",{"2":{"58":1,"102":2}}],["history",{"2":{"58":2,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1,"102":1}}],["hidedecorations",{"2":{"56":1}}],["highclip",{"2":{"56":4}}],["high",{"2":{"46":4}}],["hm",{"2":{"56":8}}],["hold",{"2":{"84":1}}],["holds",{"2":{"84":1,"85":1}}],["ho",{"0":{"46":1}}],["however",{"2":{"24":1,"37":1}}],["how",{"0":{"35":1,"36":1,"41":1,"42":1,"43":1,"93":1},"1":{"37":1,"38":1,"39":1,"40":1,"44":1,"45":1},"2":{"6":1,"7":1,"10":1,"17":2,"18":1,"24":1,"28":1,"31":1,"42":1,"57":1,"62":3,"82":1,"84":1,"98":1,"100":1}}],["happens",{"2":{"85":1}}],["had",{"2":{"82":1,"84":1,"85":1}}],["hard",{"2":{"62":1}}],["hamman",{"2":{"49":1,"56":1}}],["handled",{"2":{"85":1}}],["handle",{"2":{"70":1,"85":1}}],["handling",{"2":{"9":1,"84":1}}],["handy",{"2":{"42":1}}],["has",{"2":{"8":1,"9":1,"22":1,"26":1,"27":1,"40":1,"49":1,"52":1,"85":1}}],["half",{"2":{"8":5}}],["have",{"2":{"6":1,"9":1,"22":1,"29":1,"38":1,"40":2,"72":1,"84":3}}],["having",{"2":{"1":1,"22":1}}],["help",{"2":{"84":1,"85":2}}],["height",{"2":{"58":2,"102":1}}],["heatmap",{"0":{"103":1},"2":{"42":1,"56":3,"103":1}}],["hereby",{"2":{"22":1}}],["here",{"2":{"8":1,"9":1,"13":1,"16":2,"17":1,"21":1,"22":1,"36":1,"42":1,"66":1,"81":1,"87":2}}],["hence",{"2":{"1":1}}],["yet",{"2":{"84":1}}],["yeesian",{"2":{"60":1}}],["years",{"2":{"37":1,"95":1,"96":1}}],["year",{"2":{"8":4,"97":1}}],["yyyy",{"2":{"59":2,"63":2,"74":2,"80":2}}],["ylabel=",{"2":{"95":1,"97":1}}],["ylabel",{"2":{"56":3}}],["yasxa",{"2":{"40":6}}],["yaxcolumn",{"2":{"85":1}}],["yaxconvert",{"2":{"27":2}}],["yaxdefaults",{"2":{"85":1}}],["yaxarraybase",{"2":{"27":1,"84":1,"85":1}}],["yaxarray",{"0":{"11":1,"17":1,"29":1,"36":1,"37":1,"47":1,"64":1,"70":1},"1":{"18":1,"19":1,"20":1,"37":1,"38":1,"39":1,"40":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":2,"18":1,"19":2,"20":1,"21":6,"22":3,"23":1,"25":4,"26":3,"27":5,"29":5,"30":2,"32":3,"33":5,"34":1,"35":3,"36":1,"37":15,"39":4,"40":6,"41":3,"42":4,"44":2,"45":4,"46":4,"47":4,"50":2,"51":7,"52":1,"54":9,"55":1,"56":3,"58":2,"59":2,"60":1,"62":3,"63":2,"64":2,"65":3,"66":3,"67":5,"70":1,"72":1,"74":1,"75":1,"77":1,"80":2,"81":4,"84":10,"85":3,"91":5,"96":2,"100":1,"102":1}}],["yaxarrays",{"0":{"0":1,"1":1,"2":1,"7":1,"10":1,"16":1,"24":1,"28":1,"43":1,"48":1,"57":1,"63":1,"74":1,"86":1,"93":1,"99":1,"100":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,"19":1,"20":1,"21":1,"22":1,"23":1,"25":1,"26":1,"27":1,"29":1,"30":1,"44":1,"45":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"64":1,"65":1,"66":1,"67":1,"68":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"87":1,"88":1},"2":{"0":3,"2":1,"4":1,"5":1,"6":1,"8":1,"9":1,"10":2,"16":4,"17":1,"22":1,"23":2,"24":2,"25":1,"29":1,"32":1,"33":1,"35":1,"36":1,"37":1,"38":1,"39":2,"40":4,"44":1,"45":1,"46":2,"48":3,"51":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":2,"63":1,"69":1,"71":1,"74":1,"79":1,"81":1,"84":28,"85":28,"86":1,"88":1,"90":3,"91":3,"92":2,"93":4,"96":1,"98":1,"99":1,"102":1}}],["yax",{"2":{"0":1,"17":1,"18":1,"19":1,"20":3,"21":4,"33":1,"46":3,"47":2,"48":1,"51":3,"54":1}}],["y",{"2":{"4":2,"5":3,"6":2,"26":4,"27":3,"37":4,"41":4,"51":2,"52":1,"56":3,"60":1,"70":1,"91":5}}],["you",{"2":{"1":1,"23":1,"36":1,"40":3,"45":2,"61":1,"62":1,"76":1,"84":1,"85":2,"87":1,"88":2,"90":2,"92":1,"93":3,"98":3,"100":2}}],["yourself",{"2":{"88":1}}],["your",{"2":{"1":2,"40":2,"59":1,"79":2,"81":1,"84":1,"87":4,"88":4}}],["circshift",{"2":{"104":1}}],["ct1",{"2":{"102":4,"103":1}}],["cycle",{"0":{"95":1,"97":1},"1":{"96":1,"97":1},"2":{"96":4}}],["cycle=12",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["cdata",{"2":{"85":1}}],["center",{"2":{"84":1,"95":1,"97":1}}],["certain",{"2":{"63":2,"85":1}}],["cell",{"2":{"58":2,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"84":1}}],["cf",{"2":{"58":2,"59":2,"63":2,"74":2,"80":2,"102":2}}],["cftime",{"2":{"51":2,"54":5,"55":2,"56":2,"59":6,"62":9,"63":3,"64":6,"65":7,"66":9,"67":15,"74":3,"80":3}}],["cmpcachmisses",{"2":{"85":1}}],["cm4",{"2":{"59":4,"63":4,"74":4,"80":4}}],["cmip",{"2":{"58":1,"102":1}}],["cmip6",{"2":{"58":3,"102":6}}],["cmor",{"2":{"58":2,"59":3,"62":3,"63":2,"64":2,"65":3,"66":3,"67":5,"74":2,"80":2,"102":1}}],["c54",{"2":{"56":1}}],["cb",{"2":{"56":1}}],["cbar",{"2":{"42":1}}],["cgrad",{"2":{"42":1}}],["cl",{"2":{"104":1,"105":1}}],["cl=lines",{"2":{"104":1,"105":1}}],["clean",{"2":{"85":1}}],["cleanme",{"2":{"85":4}}],["cleaner",{"2":{"84":2}}],["clevel=n",{"2":{"76":1}}],["climate",{"2":{"59":1,"63":1,"74":1,"80":1}}],["closedinterval",{"2":{"67":1}}],["closed",{"0":{"67":1},"2":{"67":3}}],["close",{"2":{"46":4}}],["cloud",{"2":{"11":1,"58":1}}],["classes=classes",{"2":{"42":1}}],["classes",{"2":{"42":8}}],["classification",{"2":{"42":2}}],["class",{"2":{"42":3}}],["clustermanagers",{"2":{"23":2}}],["cluster",{"2":{"23":1}}],["cpus",{"2":{"23":1}}],["cpu",{"2":{"23":1}}],["c",{"2":{"22":11,"32":5,"33":7,"34":3,"42":2,"45":2,"71":1,"76":1,"78":4,"84":5,"85":3,"96":4,"102":2}}],["custom",{"2":{"29":1,"84":1}}],["current",{"2":{"22":2,"71":1,"84":1,"97":1}}],["currently",{"2":{"16":1,"46":1,"50":1,"98":1}}],["cubeaxis",{"2":{"85":1}}],["cubeaxes",{"2":{"84":1}}],["cubedir",{"2":{"85":1}}],["cube2",{"2":{"84":1}}],["cube1",{"2":{"84":1}}],["cubelist",{"2":{"84":1}}],["cubefittable",{"2":{"42":2,"84":1}}],["cubetable",{"0":{"42":1},"2":{"42":3,"84":3}}],["cubes",{"0":{"35":1},"2":{"9":2,"17":1,"21":1,"35":2,"40":1,"41":2,"42":1,"64":1,"72":1,"84":18,"85":9}}],["cube",{"0":{"32":1,"34":1,"36":1,"72":1,"96":1},"1":{"33":1,"37":1,"38":1,"39":1,"40":1},"2":{"2":1,"4":1,"5":1,"6":1,"16":11,"17":2,"19":2,"21":2,"32":1,"34":1,"36":2,"40":1,"41":1,"42":2,"50":1,"72":3,"81":1,"84":34,"85":19,"100":1}}],["chose",{"2":{"71":1}}],["child",{"2":{"58":1,"102":1}}],["check",{"2":{"16":1,"81":1,"92":1}}],["changed",{"2":{"92":1,"98":1}}],["changes",{"2":{"62":1}}],["change",{"2":{"10":1,"84":1,"85":1}}],["chunkoffset",{"2":{"85":1}}],["chunksize`",{"2":{"85":1}}],["chunksizes",{"2":{"84":2}}],["chunksize",{"2":{"84":1,"85":3}}],["chunks",{"0":{"4":1},"2":{"2":5,"4":1,"5":1,"6":2,"84":4,"85":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,"84":4,"85":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,"84":4,"85":4}}],["criteria",{"2":{"42":1}}],["creation",{"2":{"47":1}}],["creating",{"0":{"22":1},"2":{"10":1,"33":1,"37":1,"81":1,"87":1}}],["createdataset",{"2":{"85":2}}],["created",{"2":{"85":2}}],["creates",{"2":{"42":1,"84":2,"85":1}}],["create",{"0":{"28":1,"29":1,"30":1,"47":1},"1":{"29":1,"30":1},"2":{"10":1,"16":1,"22":2,"28":1,"29":1,"33":1,"35":1,"37":2,"42":1,"46":1,"50":1,"54":1,"74":1,"79":1,"81":3,"84":1,"85":1,"91":1,"95":1}}],["crucial",{"2":{"1":1}}],["coastlines",{"2":{"104":3,"105":1}}],["cosd",{"2":{"84":1}}],["country",{"2":{"84":4}}],["country=cube2",{"2":{"84":1}}],["could",{"2":{"33":1,"46":1,"61":1}}],["copies",{"2":{"85":1}}],["copied",{"2":{"81":1}}],["copybuf",{"2":{"85":2}}],["copydata",{"2":{"85":1}}],["copy",{"2":{"32":1,"84":1,"88":1}}],["coordinates",{"2":{"58":1}}],["college",{"2":{"98":1}}],["collected",{"2":{"85":1}}],["collectfromhandle",{"2":{"85":1}}],["collection",{"2":{"31":1,"70":1}}],["collect",{"2":{"25":1,"34":3,"96":1}}],["colonperm",{"2":{"85":1}}],["color=",{"2":{"97":3}}],["color",{"2":{"95":1,"104":1,"105":1,"106":1}}],["colormap=",{"2":{"56":1}}],["colormap=makie",{"2":{"42":1}}],["colormap",{"2":{"56":3,"103":1,"104":1,"105":1,"106":1}}],["colorrange=",{"2":{"56":1}}],["colorrange",{"2":{"56":3}}],["colorbar",{"2":{"42":1,"56":2}}],["column",{"2":{"73":1,"85":1}}],["colgap",{"2":{"56":1}}],["colnames",{"2":{"46":1}}],["configuration",{"2":{"85":2}}],["concatenating",{"2":{"84":1}}],["concatenates",{"2":{"84":2}}],["concatenate",{"0":{"35":1},"2":{"35":2,"84":2}}],["concatenatecubes",{"0":{"9":1},"2":{"9":2,"35":2,"84":2}}],["concrete",{"2":{"84":2}}],["contributing",{"2":{"87":1}}],["contribute",{"0":{"86":1,"87":1},"1":{"87":1,"88":2}}],["contrast",{"2":{"84":1}}],["content",{"2":{"84":1}}],["contact",{"2":{"59":1,"63":1,"74":1,"80":1}}],["contains",{"2":{"67":1,"84":1,"85":1}}],["contain",{"2":{"58":1,"59":1,"85":1}}],["containing",{"0":{"47":1},"2":{"8":1,"42":1,"71":1,"72":1,"84":1}}],["continue",{"2":{"51":1}}],["consolidated=true",{"2":{"58":1,"102":1}}],["constructor",{"2":{"84":1}}],["constructs",{"2":{"84":1}}],["construct",{"0":{"46":1},"2":{"84":2}}],["consistent",{"2":{"58":1,"102":1}}],["consisting",{"2":{"8":1}}],["considering",{"2":{"49":1}}],["considered",{"2":{"42":1}}],["consider",{"2":{"17":1,"19":1,"21":1,"33":1}}],["convinient",{"2":{"31":1}}],["conventions",{"2":{"59":1,"63":1,"74":1,"80":1}}],["convenient",{"2":{"23":1}}],["conversion",{"2":{"24":1,"26":1,"27":1}}],["conversions",{"2":{"24":1}}],["converted",{"2":{"72":1}}],["convert",{"0":{"24":1,"25":1,"26":1,"27":1},"1":{"25":1,"26":1,"27":1},"2":{"24":1,"25":2,"27":2,"84":1,"85":1}}],["corresponding",{"2":{"7":1,"21":2,"22":2,"72":1,"84":1}}],["combining",{"0":{"101":1}}],["combined",{"2":{"9":2,"72":2}}],["combine",{"0":{"7":1},"1":{"8":1,"9":1},"2":{"7":1,"8":1,"9":1,"100":1}}],["command",{"2":{"93":2}}],["comment",{"2":{"58":1}}],["common",{"2":{"40":5,"84":1}}],["com",{"2":{"50":2,"60":1}}],["compiler",{"2":{"92":1}}],["compuation",{"2":{"84":1}}],["computing",{"2":{"42":1}}],["computations",{"2":{"13":1,"41":1}}],["computation",{"0":{"23":1},"2":{"13":1,"70":1,"84":3,"85":3}}],["computed",{"2":{"85":1}}],["compute",{"0":{"10":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1},"2":{"96":1}}],["compares",{"2":{"85":1}}],["comparing",{"2":{"78":1}}],["compatible",{"2":{"60":1}}],["compress",{"2":{"78":2}}],["compress=n",{"2":{"78":1}}],["compressors",{"2":{"76":1}}],["compressor=compression",{"2":{"76":1}}],["compression",{"0":{"76":1,"78":1},"2":{"76":5,"78":4}}],["completely",{"2":{"61":1}}],["complexity",{"2":{"41":1}}],["complex",{"2":{"10":2,"91":1}}],["comply",{"2":{"59":1,"63":1,"74":1,"80":1}}],["comes",{"2":{"1":1}}],["code",{"2":{"6":1,"13":1,"23":2,"31":1,"46":1,"59":2}}],["captialisation",{"2":{"85":1}}],["cameracontrols",{"2":{"106":1}}],["came",{"2":{"72":1}}],["cairomakie",{"2":{"56":1,"95":2}}],["caxes",{"2":{"32":2,"84":2}}],["car",{"2":{"22":1}}],["cartesianindex",{"2":{"22":11}}],["caluclate",{"2":{"84":1}}],["calculations",{"2":{"56":1,"85":1}}],["calculating",{"2":{"14":1,"84":1}}],["calculates",{"2":{"84":1}}],["calculated",{"2":{"42":2,"51":1}}],["calculate",{"2":{"14":1,"22":1,"42":2,"48":1,"49":2,"51":1,"56":1,"85":2,"96":1}}],["calling",{"2":{"56":1}}],["called",{"2":{"16":1,"70":3,"85":1}}],["call",{"2":{"1":1,"23":1}}],["case",{"2":{"13":1,"19":1,"40":1,"53":1,"58":1,"62":1}}],["cases",{"2":{"0":1,"61":1,"67":1,"98":1}}],["cataxis",{"2":{"84":2}}],["categoricalaxis",{"2":{"84":1}}],["categorical",{"2":{"9":1,"17":1,"18":1,"19":1,"22":1,"35":1,"42":1,"46":4,"51":2,"52":1,"53":1,"54":2,"55":2,"56":3,"84":1,"85":1,"91":1}}],["cat",{"0":{"8":1},"2":{"8":2}}],["cache=1gb```",{"2":{"84":1}}],["cache=1e9",{"2":{"16":2}}],["cache=",{"2":{"84":1}}],["cache=5",{"2":{"84":1}}],["cache=yaxdefaults",{"2":{"84":1}}],["caches",{"2":{"0":1}}],["cachesize",{"2":{"0":2,"85":1}}],["cache",{"2":{"0":6,"79":1,"84":4,"85":7}}],["caching",{"0":{"0":1}}],["can",{"2":{"0":5,"2":1,"3":1,"13":2,"14":1,"16":3,"20":1,"22":1,"23":3,"29":2,"35":1,"36":1,"38":1,"40":1,"41":1,"42":2,"46":1,"52":1,"56":1,"58":2,"59":1,"60":1,"61":1,"68":1,"70":3,"71":2,"72":1,"80":1,"81":1,"82":1,"84":13,"85":6,"87":1,"90":2,"93":2,"98":2}}],["msc",{"2":{"96":3,"97":2}}],["mscarray",{"2":{"96":2}}],["md",{"2":{"87":2}}],["mfdataset",{"2":{"84":5}}],["mpi",{"2":{"58":1,"102":2}}],["m",{"2":{"25":2}}],["miss",{"2":{"85":1}}],["missing",{"2":{"14":2,"16":6,"18":1,"21":1,"22":2,"41":1,"42":2,"59":12,"62":6,"64":4,"65":6,"66":6,"67":10,"81":3,"82":1,"84":2,"85":2,"106":1}}],["minimized",{"2":{"85":1}}],["minutes",{"2":{"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["might",{"2":{"24":1,"61":1,"98":1}}],["mix",{"2":{"21":2}}],["mm",{"2":{"20":3,"59":2,"63":2,"74":2,"80":2}}],["mymean",{"2":{"23":4}}],["my",{"2":{"16":2,"59":1}}],["mahecha",{"2":{"72":1}}],["manager",{"2":{"90":1}}],["manual",{"2":{"59":1}}],["many",{"0":{"18":1,"19":2},"2":{"18":2,"19":2,"20":4,"62":1,"70":1,"85":1}}],["mar",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["marketdata",{"2":{"46":2}}],["master",{"2":{"50":1,"93":1}}],["mask",{"2":{"42":2}}],["makie",{"2":{"56":1,"106":1}}],["making",{"2":{"11":1,"59":1,"63":1}}],["make",{"2":{"39":1,"40":2,"81":1,"84":1,"85":2,"88":1,"106":1}}],["main",{"2":{"36":1,"85":1}}],["machine",{"2":{"23":1,"70":1}}],["matching",{"2":{"91":1}}],["match",{"2":{"85":2}}],["matched",{"2":{"84":1}}],["matches",{"2":{"20":1}}],["mat",{"2":{"22":4}}],["matrix",{"2":{"16":2,"22":1,"25":1,"46":1,"52":1,"56":2,"70":1,"82":2,"96":1}}],["maximal",{"2":{"85":1}}],["maximum",{"2":{"41":1,"84":1,"85":1}}],["maxbuf",{"2":{"85":1}}],["max",{"2":{"16":2,"76":1,"78":1,"79":1,"84":7,"85":2}}],["maxsize",{"2":{"0":2}}],["may",{"2":{"10":1,"15":1,"51":4,"52":2,"53":1,"54":4,"55":4,"56":6,"58":1,"59":1,"92":1}}],["maps",{"0":{"102":1},"1":{"103":1}}],["mapslice",{"2":{"23":1}}],["mapslices",{"0":{"14":1},"2":{"10":1,"13":1,"14":1,"23":1,"41":1,"96":1}}],["mapped",{"2":{"84":1}}],["mapping",{"2":{"84":1,"85":3}}],["mapcube",{"0":{"15":1},"1":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"10":1,"13":1,"15":1,"16":4,"18":1,"20":1,"21":2,"22":2,"23":3,"84":5,"85":2}}],["map",{"0":{"13":1,"41":1},"2":{"10":1,"13":2,"21":1,"22":3,"23":3,"41":4,"42":1,"51":2,"55":1,"56":1,"84":2,"91":1,"96":2}}],["moll",{"0":{"105":1}}],["mowingwindow",{"2":{"84":1}}],["module",{"2":{"84":1}}],["model",{"2":{"59":1,"63":1,"71":2,"74":1,"80":1}}],["modification",{"2":{"11":1,"23":1}}],["modify",{"0":{"11":1}}],["monthday",{"2":{"96":4}}],["monthly",{"0":{"49":1}}],["month",{"2":{"37":7,"39":3,"40":4,"49":1,"51":4,"52":1,"53":1,"54":5,"55":2,"56":3,"84":1,"96":2}}],["moment",{"2":{"27":1}}],["movingwindow",{"2":{"21":1,"84":4}}],["more",{"2":{"9":1,"10":1,"36":1,"41":1,"42":1,"66":1,"67":1,"72":1,"76":1,"79":1,"84":3,"85":1,"91":1}}],["most",{"2":{"1":1,"15":1,"24":1}}],["mesh",{"2":{"106":2}}],["merely",{"2":{"81":1}}],["measured",{"2":{"71":1,"72":1}}],["measure",{"2":{"70":1}}],["measures",{"2":{"58":1}}],["means",{"0":{"49":1},"2":{"14":1,"84":1}}],["mean",{"0":{"95":1,"97":1},"1":{"96":1,"97":1},"2":{"10":1,"14":3,"23":4,"42":4,"51":10,"52":2,"53":1,"56":2,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"84":1,"96":5}}],["meter",{"2":{"58":1}}],["method",{"2":{"16":2,"18":1,"19":1,"21":1,"84":1}}],["methods",{"2":{"7":1,"23":1,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["metadata",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":3,"24":1,"25":1,"26":2,"27":3,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"47":2,"51":2,"52":1,"54":3,"55":2,"56":3,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":2,"84":1,"91":3,"96":1}}],["members",{"2":{"85":1}}],["member",{"2":{"6":1}}],["memory",{"0":{"61":1},"1":{"62":1},"2":{"1":1,"8":1,"10":1,"12":1,"13":1,"14":2,"16":3,"17":1,"18":1,"19":1,"21":3,"22":3,"24":3,"25":1,"26":1,"27":1,"29":2,"32":1,"33":3,"34":1,"37":5,"40":4,"41":3,"42":3,"47":2,"50":1,"54":1,"61":1,"62":4,"70":1,"81":2,"84":2,"85":1,"91":2,"96":1}}],["multi",{"2":{"17":2,"21":2}}],["multiplying",{"2":{"41":1}}],["multiply",{"2":{"10":1,"41":1}}],["multiple",{"0":{"45":1,"101":1},"2":{"7":1,"21":1,"23":1,"58":1,"59":1,"70":1,"84":1}}],["must",{"2":{"0":1,"72":1,"84":1,"85":1}}],["mb",{"2":{"0":1,"59":1,"62":3,"64":2}}],["pkg",{"2":{"90":2,"93":2,"94":8}}],["pkg>",{"2":{"88":1,"93":1}}],["purple",{"2":{"95":1}}],["purpose",{"2":{"31":1,"41":1}}],["pull",{"2":{"86":1}}],["public",{"0":{"84":1}}],["published",{"2":{"56":1}}],["pydata",{"2":{"50":1}}],["p",{"2":{"40":10,"59":1,"63":1,"74":1,"80":1}}],["picture",{"2":{"70":1,"71":1}}],["pieces",{"2":{"31":1}}],["pixel",{"0":{"95":1},"1":{"96":1,"97":1},"2":{"21":1,"23":2}}],["post=getpostfunction",{"2":{"84":1}}],["positions",{"2":{"85":2}}],["position",{"2":{"70":1}}],["positional",{"2":{"65":1,"66":1}}],["possible",{"2":{"23":2,"24":1,"35":1,"47":1,"81":1,"84":3,"85":1}}],["pos",{"2":{"22":2}}],["point3f",{"2":{"106":1}}],["point",{"2":{"22":3,"58":1,"91":1}}],["points",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"16":9,"17":3,"18":3,"19":2,"20":3,"21":9,"22":16,"23":1,"25":2,"26":6,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":3,"37":14,"39":6,"40":21,"41":9,"42":5,"44":1,"45":5,"46":4,"47":4,"51":3,"52":2,"54":2,"55":1,"56":7,"58":6,"59":6,"60":2,"62":9,"63":3,"64":6,"65":4,"66":9,"67":16,"68":2,"70":2,"71":1,"74":3,"80":6,"81":6,"91":5,"96":1,"102":3}}],["plt",{"2":{"103":1}}],["place",{"2":{"85":1}}],["please",{"2":{"59":1,"76":1}}],["plots",{"2":{"106":1}}],["plot",{"0":{"97":1,"103":1,"106":1},"2":{"56":2}}],["plotting",{"0":{"102":1},"1":{"103":1},"2":{"0":1,"94":1}}],["plus",{"2":{"18":3,"50":1,"84":1}}],["page",{"2":{"106":1}}],["paste",{"2":{"88":1}}],["pass",{"2":{"84":1}}],["passed",{"2":{"84":4}}],["passing",{"2":{"21":1,"84":3}}],["pair",{"2":{"85":1}}],["pairs",{"2":{"18":1,"20":1}}],["partitioned",{"2":{"85":1}}],["participate",{"2":{"84":1}}],["particular",{"2":{"73":1}}],["parts",{"2":{"84":1}}],["parent",{"2":{"58":1,"102":1}}],["parallelized",{"2":{"85":1}}],["parallelisation",{"2":{"84":1}}],["parallel",{"2":{"23":1,"70":1}}],["package",{"2":{"23":1,"66":1,"68":1,"83":1,"90":1,"94":1}}],["packages",{"2":{"16":1,"24":1}}],["paths",{"2":{"84":1,"85":2}}],["path=",{"2":{"16":2,"58":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"85":1}}],["path=f",{"2":{"4":1,"5":1,"6":1}}],["path",{"0":{"20":1},"2":{"0":1,"20":1,"50":2,"58":3,"59":2,"60":2,"63":2,"74":2,"79":3,"84":4,"88":1}}],["pr",{"2":{"88":1}}],["println",{"2":{"78":1}}],["printed",{"2":{"46":2}}],["primem",{"2":{"60":1}}],["prior",{"2":{"1":1}}],["props",{"2":{"91":2}}],["properly",{"2":{"49":1}}],["properties=dict",{"2":{"85":1}}],["properties=properties",{"2":{"18":2}}],["properties",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"10":2,"17":2,"18":2,"19":1,"20":2,"21":2,"23":2,"29":3,"30":3,"50":1,"56":1,"58":1,"59":1,"60":1,"63":1,"74":1,"80":1,"84":5,"85":1,"102":1}}],["probably",{"2":{"85":1}}],["provide",{"2":{"84":1}}],["provides",{"2":{"70":1,"99":1}}],["provided",{"2":{"36":1,"81":1,"84":2}}],["process",{"2":{"70":1,"85":2}}],["processed",{"2":{"13":1}}],["projection",{"0":{"104":1,"105":1},"1":{"105":1,"106":1},"2":{"60":1}}],["progressmeter",{"2":{"84":1}}],["progress",{"2":{"50":1,"98":1,"100":1}}],["product",{"2":{"22":1}}],["pressed",{"2":{"93":1}}],["pressing",{"2":{"90":1}}],["pre",{"2":{"84":2}}],["previous",{"2":{"56":1,"79":1,"81":1,"84":1}}],["previously",{"2":{"42":1}}],["prepared",{"2":{"59":1,"63":1,"74":1,"80":1}}],["prep",{"2":{"9":2}}],["precipitation",{"2":{"9":2,"71":1,"72":1,"91":2}}],["permute",{"2":{"85":1}}],["permuteloopaxes",{"2":{"85":1}}],["permutation",{"2":{"85":1}}],["persistend",{"2":{"85":1}}],["persistency",{"2":{"85":1}}],["persistent",{"2":{"84":1,"85":2}}],["persist",{"2":{"79":1,"84":1,"85":1}}],["perform",{"2":{"85":1}}],["performed",{"2":{"13":2}}],["performing",{"2":{"10":1}}],["per",{"2":{"7":1,"14":1,"51":1,"54":1,"55":1}}],["=interval",{"2":{"67":2}}],["===",{"2":{"46":1}}],["==",{"2":{"12":1,"46":1,"96":1}}],["=>nan",{"2":{"106":1}}],["=>",{"2":{"10":2,"12":1,"13":1,"16":2,"17":2,"18":3,"19":2,"20":1,"21":2,"22":5,"23":1,"29":3,"30":3,"44":1,"45":1,"46":5,"50":1,"51":5,"52":1,"54":3,"55":2,"56":3,"58":20,"59":20,"60":1,"62":30,"63":10,"64":20,"65":30,"66":30,"67":50,"74":10,"80":10,"91":6,"102":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":4,"18":14,"19":7,"20":11,"21":12,"22":16,"23":5,"25":3,"26":8,"27":4,"29":5,"30":4,"32":1,"33":3,"35":6,"37":7,"39":6,"40":17,"42":7,"44":1,"45":3,"46":7,"47":4,"50":8,"51":16,"52":1,"53":1,"54":4,"55":1,"56":22,"58":2,"59":3,"60":2,"62":1,"63":2,"64":2,"65":6,"66":6,"67":3,"74":2,"76":2,"78":3,"79":8,"80":2,"81":4,"82":5,"84":13,"85":7,"91":5,"95":10,"96":11,"97":5,"102":8,"103":5,"104":7,"105":5,"106":6}}],["dc",{"2":{"85":2}}],["dkrz",{"2":{"58":1,"102":2}}],["dufresne",{"2":{"59":1,"63":1,"74":1,"80":1}}],["due",{"2":{"53":1}}],["dummy",{"2":{"35":1,"37":1,"95":1,"96":1}}],["during",{"2":{"22":1,"23":1,"24":1}}],["dd",{"2":{"32":1,"84":5,"96":1}}],["d",{"2":{"22":5,"46":5,"56":3,"96":1}}],["drop",{"2":{"56":1}}],["dropdims",{"0":{"52":1},"2":{"51":2,"52":2,"56":1}}],["drivers",{"2":{"84":1}}],["driver",{"2":{"48":1,"79":2,"84":6}}],["driver=",{"2":{"4":1,"5":1,"6":1,"75":2,"76":1,"77":2,"78":1,"79":3,"80":1,"81":2,"84":3}}],["drei",{"2":{"19":2}}],["dash",{"2":{"97":1}}],["danger",{"2":{"79":1}}],["daysinmonth",{"2":{"51":1,"54":1}}],["days",{"2":{"49":1,"51":2,"53":1,"54":2,"55":2}}],["dayofyear",{"2":{"16":1}}],["day",{"2":{"10":2,"12":1,"13":1,"14":1,"16":4,"17":2,"18":1,"21":3,"22":3,"23":1,"29":3,"30":1,"95":1,"96":4,"97":1}}],["datconfig",{"2":{"85":2}}],["datset",{"2":{"84":1}}],["dat",{"2":{"84":8,"85":16}}],["datum",{"2":{"60":1}}],["datetime360day",{"2":{"59":6,"62":9,"63":3,"64":6,"65":7,"66":9,"67":15,"74":3,"80":3}}],["datetimenoleap",{"2":{"51":2,"54":5,"55":2,"56":2}}],["datetime",{"2":{"20":1,"46":5,"58":2,"102":1}}],["date",{"2":{"10":5,"12":3,"13":3,"14":3,"16":12,"17":5,"18":3,"21":8,"22":11,"23":3,"29":8,"30":3,"37":24,"39":8,"40":11,"70":1,"95":2,"96":5,"102":1}}],["datesid",{"2":{"96":2}}],["dates",{"2":{"10":2,"12":1,"13":1,"14":1,"16":5,"17":2,"18":1,"21":2,"22":3,"23":1,"29":3,"30":1,"37":8,"39":4,"40":5,"48":1,"72":1,"95":1,"96":2,"102":1}}],["data=cube1",{"2":{"84":1}}],["databases",{"2":{"70":1}}],["dataframe",{"2":{"42":1,"84":1}}],["dataframes",{"2":{"42":1}}],["datacubes",{"2":{"84":1}}],["datacube",{"0":{"101":1},"2":{"42":2,"81":1,"84":1}}],["datatypes",{"2":{"36":1}}],["data1",{"2":{"35":2}}],["data3",{"2":{"30":1}}],["data2",{"2":{"29":2,"35":2}}],["datasetaxis",{"2":{"84":2,"85":1}}],["datasetaxis=",{"2":{"84":1,"85":1}}],["dataset",{"0":{"30":1,"36":1,"38":1,"39":1,"40":1,"43":1,"46":1,"71":1,"79":1,"80":1,"82":1},"1":{"37":1,"38":1,"39":2,"40":2,"44":1,"45":1},"2":{"0":3,"3":1,"4":4,"5":2,"6":3,"9":1,"10":1,"18":1,"20":2,"24":1,"30":2,"38":1,"39":3,"40":5,"44":2,"45":3,"46":5,"58":3,"59":3,"60":3,"63":3,"64":1,"71":3,"72":2,"74":3,"75":1,"76":1,"77":1,"78":1,"79":3,"80":4,"81":2,"82":2,"84":19,"85":9,"102":2}}],["datasets",{"0":{"3":1,"28":1,"48":1,"57":1,"63":1,"74":1},"1":{"4":1,"5":1,"6":1,"29":1,"30":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"64":1,"65":1,"66":1,"67":1,"68":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1},"2":{"0":2,"24":1,"28":1,"40":1,"57":1,"61":1,"79":1,"84":9,"85":4,"100":1}}],["data",{"0":{"34":1,"50":1,"61":1,"72":1},"1":{"62":1},"2":{"0":3,"1":2,"7":1,"8":2,"9":1,"10":3,"11":1,"12":1,"13":1,"14":2,"16":9,"17":3,"18":1,"19":1,"21":6,"22":4,"23":2,"25":2,"26":2,"27":1,"29":2,"32":1,"33":3,"34":2,"35":1,"37":6,"39":1,"40":2,"41":3,"42":5,"50":8,"54":1,"58":3,"59":7,"62":6,"63":3,"64":4,"65":6,"66":6,"67":10,"69":1,"70":3,"71":2,"72":3,"74":3,"79":2,"80":3,"81":4,"82":1,"84":20,"85":12,"91":6,"92":1,"95":2,"96":2,"100":4,"102":5,"104":1}}],["dev",{"2":{"88":1}}],["dependencies",{"2":{"88":1}}],["depth",{"2":{"21":8}}],["detect",{"2":{"84":1,"85":1}}],["determined",{"2":{"85":1}}],["determines",{"2":{"84":1}}],["determine",{"2":{"1":1,"62":1,"84":1}}],["deletes",{"2":{"79":1,"84":1}}],["delete",{"2":{"79":2,"81":1}}],["denoting",{"2":{"84":1}}],["dense",{"2":{"70":1}}],["denvil",{"2":{"59":2,"63":2,"74":2,"80":2}}],["degree",{"2":{"60":1}}],["degc",{"2":{"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["dec",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["defaultfillval",{"2":{"85":1}}],["defaults",{"2":{"84":7}}],["default",{"2":{"18":1,"78":3,"81":1,"84":1,"85":4}}],["definition",{"2":{"72":1}}],["definitions",{"2":{"17":1,"19":1}}],["defining",{"2":{"23":1}}],["defines",{"2":{"84":1}}],["defined",{"2":{"18":1,"26":1,"27":1,"42":1,"56":1,"68":1,"70":1,"73":1,"81":1,"91":1}}],["define",{"0":{"96":1},"2":{"16":2,"18":1,"37":1,"42":1,"56":1,"84":2,"95":1}}],["deal",{"2":{"17":1}}],["dest",{"2":{"105":1}}],["desc",{"2":{"84":3,"85":3}}],["descriptor",{"2":{"85":4}}],["descriptors",{"2":{"84":2}}],["descriptions",{"2":{"84":1}}],["description",{"2":{"17":2,"19":2,"21":2,"36":1,"84":4,"85":11}}],["described",{"2":{"100":1}}],["describe",{"2":{"84":2}}],["describes",{"2":{"7":1,"10":1,"24":1,"28":1,"57":1,"67":1,"69":1,"83":1,"85":1}}],["describing",{"2":{"84":1}}],["designed",{"2":{"24":2,"70":1}}],["desired",{"2":{"16":1,"85":4}}],["demand",{"2":{"13":1}}],["diverging",{"2":{"56":1}}],["divided",{"2":{"41":1}}],["differing",{"2":{"84":1}}],["difference",{"2":{"56":1}}],["differences",{"2":{"46":1,"51":1,"56":1,"85":1}}],["different",{"0":{"21":1},"2":{"9":2,"16":1,"17":2,"23":1,"32":1,"33":1,"45":1,"49":1,"71":1,"84":3,"85":2,"98":1}}],["diff",{"2":{"51":2,"56":3}}],["directory",{"2":{"58":1,"75":2,"77":2}}],["directories",{"2":{"57":1,"85":1}}],["direct",{"2":{"46":1}}],["directly",{"2":{"16":1,"20":1,"27":1,"28":1,"29":1,"82":2}}],["dictionary",{"2":{"71":1,"84":3}}],["dict",{"2":{"4":1,"5":1,"8":1,"9":1,"10":2,"12":1,"13":1,"14":2,"16":5,"17":2,"18":3,"19":2,"20":1,"21":4,"22":4,"23":1,"25":1,"26":2,"27":3,"29":4,"30":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"46":2,"47":2,"51":3,"52":2,"54":4,"55":3,"56":3,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1,"81":1,"84":3,"91":3,"96":1,"102":1}}],["dimvector",{"2":{"84":1}}],["dime",{"2":{"58":1}}],["dimensionaldata",{"2":{"22":1,"27":2,"32":1,"33":1,"37":1,"39":1,"40":1,"46":1,"48":1,"50":1,"51":15,"52":10,"54":5,"55":5,"56":38,"66":1,"67":2,"68":3,"70":1,"73":1,"91":1,"92":3,"94":1,"96":1,"102":1}}],["dimensional",{"2":{"17":2,"19":2,"21":2,"69":1,"70":2,"84":1}}],["dimensions",{"0":{"39":1,"40":1},"2":{"9":1,"10":1,"13":1,"15":1,"16":2,"20":1,"21":1,"22":2,"23":1,"29":2,"33":1,"35":1,"38":1,"40":3,"41":2,"45":1,"50":1,"51":15,"52":10,"54":5,"55":5,"56":38,"62":1,"63":1,"68":2,"70":3,"71":1,"84":8,"85":3,"91":3,"92":1}}],["dimension",{"0":{"8":1,"9":1,"68":1,"73":1},"2":{"2":1,"8":2,"9":1,"10":1,"14":2,"16":3,"18":1,"19":1,"22":3,"37":1,"40":1,"52":1,"53":1,"56":1,"66":1,"68":1,"70":1,"72":1,"73":1,"84":7,"85":3,"91":1}}],["dimgroupbyarray",{"2":{"51":1,"54":1}}],["dimarray",{"0":{"27":1},"2":{"22":3,"27":6,"51":1,"52":1,"54":1,"55":2,"56":3,"70":1,"84":2}}],["dims=2",{"2":{"96":1}}],["dims=",{"2":{"14":2,"23":1,"41":1,"51":5,"52":1,"54":1,"56":1}}],["dims",{"2":{"8":3,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":4,"25":1,"26":3,"27":2,"29":2,"32":3,"33":4,"34":1,"35":1,"37":5,"41":3,"42":3,"46":1,"47":2,"50":1,"51":6,"52":1,"54":5,"55":2,"56":5,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":1,"91":2,"96":1}}],["dim",{"2":{"2":2,"4":7,"5":8,"6":2,"8":2,"9":3,"10":3,"16":3,"17":4,"21":6,"22":4,"23":3,"25":2,"27":2,"29":7,"32":9,"33":6,"34":3,"35":4,"37":3,"39":3,"40":2,"44":1,"45":5,"46":2,"47":4,"51":2,"52":2,"56":6,"80":3,"81":6,"84":1,"91":4,"96":1}}],["disregard",{"2":{"85":1}}],["dispatch",{"2":{"85":1}}],["displayed",{"2":{"62":1}}],["discribe",{"2":{"84":2}}],["discussion",{"2":{"76":1}}],["distribute",{"2":{"23":1}}],["distributed",{"0":{"23":1},"2":{"0":1,"23":2}}],["diskarray",{"2":{"84":1}}],["diskarrays",{"2":{"2":9,"4":4,"5":4,"6":4,"84":2,"85":1}}],["disk",{"2":{"1":1,"16":1,"20":1,"27":1,"70":1,"81":3,"82":2,"84":1,"85":2}}],["dodgerblue",{"2":{"97":1}}],["documenter",{"2":{"106":1}}],["documentation",{"0":{"87":1},"1":{"88":1}}],["doc",{"2":{"79":1}}],["docstring",{"2":{"84":1}}],["docs",{"0":{"88":1},"2":{"71":1,"87":2,"88":6,"92":1}}],["don",{"2":{"76":1}}],["done",{"2":{"33":1,"41":1,"56":1,"61":1,"87":2}}],["download",{"0":{"50":1},"2":{"50":1,"59":2,"60":2,"63":2,"74":2}}],["downloads",{"2":{"48":1,"50":1,"59":1,"60":1,"63":1,"74":1}}],["doing",{"2":{"23":1,"32":1,"34":1,"88":1}}],["does",{"2":{"23":1,"81":1,"84":2,"85":1}}],["dot",{"2":{"21":1,"97":1}}],["do",{"0":{"35":1,"36":1,"41":1,"42":1,"43":1,"46":1},"1":{"37":1,"38":1,"39":1,"40":1,"44":1,"45":1},"2":{"1":1,"13":1,"16":1,"22":3,"23":1,"31":2,"41":1,"49":1,"56":1,"81":1,"82":1,"85":1,"88":1,"90":1}}],["dsw",{"2":{"51":2,"56":2}}],["dsfinal",{"2":{"35":1,"41":2,"42":2}}],["ds2",{"2":{"35":3,"41":1,"80":1}}],["ds1",{"2":{"35":3,"41":3,"42":1}}],["dschunked",{"2":{"4":3,"5":3,"6":3}}],["ds",{"2":{"0":3,"4":2,"5":2,"6":2,"30":1,"39":2,"40":12,"44":1,"45":1,"46":2,"50":5,"51":10,"54":1,"56":3,"58":1,"59":2,"60":1,"62":3,"63":1,"64":2,"74":1,"75":3,"76":2,"77":3,"78":7,"79":3,"80":2,"81":1,"82":5,"84":3,"85":1,"106":2}}],["wglmakie",{"2":{"106":2}}],["wgs",{"2":{"60":3}}],["would",{"2":{"84":2}}],["world",{"2":{"60":2}}],["workdir",{"2":{"85":1}}],["worker",{"2":{"84":1}}],["workers",{"2":{"84":1}}],["workflow",{"2":{"61":1}}],["workflows",{"2":{"1":1}}],["work",{"2":{"24":2,"50":1,"69":1,"84":1,"98":2,"100":1}}],["workload",{"2":{"23":1}}],["working",{"2":{"16":1,"82":1}}],["works",{"2":{"6":1,"34":1,"39":1,"40":1,"81":1}}],["written",{"2":{"84":1,"85":1}}],["writing",{"2":{"82":1}}],["writefac",{"2":{"85":1}}],["writefac=4",{"2":{"79":1,"84":1}}],["writes",{"2":{"84":1}}],["write",{"0":{"74":1,"75":1,"77":1},"1":{"75":1,"76":2,"77":1,"78":2,"79":1,"80":1,"81":1,"82":1},"2":{"81":1,"84":2}}],["wrapping",{"2":{"53":1,"68":2}}],["wrapped",{"2":{"16":1}}],["wrap",{"2":{"0":1,"84":1}}],["www",{"2":{"59":1,"63":1,"74":1}}],["w",{"2":{"56":2,"82":2}}],["was",{"2":{"20":1,"22":1,"23":1,"85":1}}],["way",{"2":{"15":1,"24":1,"32":1}}],["warning",{"2":{"11":1,"24":1,"32":1,"40":1,"45":1,"47":1,"50":1,"79":1,"81":1,"84":1}}],["wanted",{"2":{"85":1}}],["wants",{"2":{"81":1}}],["want",{"0":{"94":1},"2":{"0":1,"1":1,"61":1,"72":1,"85":1,"88":1,"93":1,"100":1}}],["white",{"2":{"104":1,"105":1}}],["while",{"2":{"81":1}}],["which",{"2":{"9":1,"16":1,"22":2,"33":1,"40":2,"56":1,"59":1,"62":1,"64":1,"67":1,"68":1,"72":3,"84":5,"85":4,"100":1}}],["whose",{"0":{"39":1,"40":1}}],["whole",{"2":{"8":3}}],["whether",{"2":{"85":2}}],["when",{"2":{"1":1,"6":1,"13":1,"62":1,"72":1,"84":3,"85":1}}],["whereas",{"2":{"70":1}}],["where",{"2":{"0":1,"23":1,"40":4,"49":1,"67":1,"82":1,"84":1,"85":4}}],["wintri",{"0":{"104":1},"1":{"105":1,"106":1}}],["windowloopinds",{"2":{"85":1}}],["window",{"2":{"84":1,"85":1}}],["without",{"2":{"85":1}}],["within",{"2":{"66":1}}],["with",{"0":{"47":1},"2":{"4":1,"5":1,"8":1,"10":1,"12":1,"13":1,"16":7,"17":3,"18":2,"19":2,"21":3,"22":4,"23":2,"24":1,"29":3,"32":1,"33":1,"40":6,"41":2,"42":3,"45":2,"46":3,"47":1,"51":3,"52":1,"54":2,"55":2,"56":5,"58":3,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"69":1,"71":1,"74":1,"76":1,"78":1,"79":1,"80":2,"81":2,"82":1,"84":11,"85":1,"87":1,"91":4,"92":3,"98":1,"100":1,"102":2,"104":1}}],["will",{"2":{"0":1,"1":1,"4":1,"5":1,"13":1,"16":3,"17":2,"18":1,"19":1,"22":1,"36":1,"40":1,"41":2,"42":2,"45":2,"46":1,"48":1,"53":2,"59":1,"79":3,"81":3,"82":1,"84":12,"85":3,"100":1}}],["wether",{"2":{"84":1}}],["weight=",{"2":{"84":1}}],["weight=nothing",{"2":{"84":1}}],["weight",{"0":{"54":1},"1":{"55":1,"56":1},"2":{"53":1,"55":1,"56":1}}],["weights",{"0":{"55":1},"2":{"51":3,"55":2,"56":1}}],["weightedmean",{"2":{"84":1}}],["weighted",{"0":{"56":1},"2":{"42":1,"49":1,"51":8,"56":8,"84":3}}],["well",{"2":{"42":1,"46":1,"81":1,"84":1}}],["welcome",{"2":{"6":1,"86":1}}],["were",{"2":{"13":2,"67":1,"85":1,"95":1}}],["we",{"2":{"0":1,"8":2,"9":1,"13":2,"14":1,"16":5,"17":3,"18":1,"19":1,"20":1,"22":5,"23":2,"29":2,"33":1,"35":1,"36":1,"37":1,"38":1,"40":2,"41":2,"42":5,"46":4,"51":1,"52":1,"53":2,"56":1,"58":1,"66":1,"72":1,"81":3,"82":4,"92":2,"95":1,"102":1}}],["oob",{"2":{"84":1}}],["o1",{"2":{"59":2,"63":2,"74":2,"80":1}}],["ocean",{"2":{"59":1,"63":1,"74":1,"80":1}}],["oct",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["occuring",{"2":{"4":1}}],["o",{"2":{"50":4,"56":4,"84":5}}],["ohlcv",{"2":{"46":3}}],["ouput",{"2":{"88":1}}],["our",{"2":{"41":1,"42":1,"96":1}}],["outcube",{"2":{"85":1}}],["outcubes",{"2":{"85":1}}],["outcs",{"2":{"85":1}}],["outsize",{"2":{"85":1}}],["outar",{"2":{"85":2}}],["out",{"2":{"50":1,"84":2,"85":1}}],["outtype",{"2":{"16":2,"84":1,"85":2}}],["outdims=outdims",{"2":{"22":1,"23":1}}],["outdims",{"0":{"17":1,"18":1,"19":1,"20":1},"1":{"18":1,"19":1,"20":1},"2":{"16":4,"18":12,"19":2,"20":11,"21":3,"84":6}}],["outputcube",{"2":{"85":3}}],["outputs",{"2":{"16":1,"18":2,"21":1}}],["output",{"2":{"6":1,"16":3,"17":1,"18":1,"22":1,"23":3,"59":1,"63":1,"74":1,"80":1,"84":11,"85":9,"106":1}}],["optimal",{"2":{"85":1}}],["optifunc",{"2":{"85":1}}],["optionally",{"2":{"84":1}}],["option",{"2":{"37":1,"39":1,"76":1}}],["options",{"2":{"34":1}}],["operates",{"2":{"84":1}}],["operate",{"2":{"21":1}}],["operation",{"2":{"21":1,"85":1}}],["operations",{"0":{"16":1},"2":{"10":1,"51":1,"84":2,"85":3}}],["operating",{"2":{"19":1}}],["opens",{"2":{"84":1}}],["openinterval",{"2":{"67":1}}],["open",{"0":{"67":1},"2":{"0":2,"18":1,"20":2,"46":4,"58":2,"59":2,"60":1,"63":2,"67":2,"74":1,"76":1,"80":1,"82":6,"84":7,"102":1}}],["obj",{"2":{"42":2,"95":1,"97":1}}],["objects",{"2":{"84":2}}],["object",{"2":{"11":1,"58":1,"84":5,"85":3}}],["obtain",{"0":{"34":1},"2":{"46":1,"53":1}}],["omit",{"2":{"23":1}}],["otherwise",{"2":{"84":1}}],["others",{"2":{"21":1,"46":1}}],["other",{"0":{"98":1},"1":{"99":1,"100":1,"101":1},"2":{"20":1,"24":1,"61":1,"98":1,"100":1}}],["overview",{"0":{"99":1},"2":{"98":1,"99":1}}],["overwrite",{"0":{"79":1},"2":{"79":3,"84":4,"85":2}}],["overwrite=true",{"2":{"16":2,"79":2,"81":3}}],["over",{"0":{"16":1,"100":1},"2":{"10":1,"15":1,"21":1,"23":1,"56":1,"84":8,"85":1,"100":1}}],["ormax",{"2":{"84":1}}],["orca2",{"2":{"59":1,"63":1,"74":1,"80":1}}],["orangered",{"2":{"42":1}}],["ordered",{"2":{"70":1,"71":1}}],["ordereddict",{"2":{"22":1}}],["orderedcollections",{"2":{"22":1}}],["order",{"2":{"16":1,"49":1,"82":1}}],["original",{"2":{"59":2,"62":6,"64":4,"65":6,"66":6,"67":10}}],["originates",{"2":{"9":1}}],["origin",{"2":{"10":2,"12":1,"13":1,"23":1,"29":3,"30":1,"91":2}}],["or",{"0":{"36":1},"1":{"37":1,"38":1,"39":1,"40":1},"2":{"1":2,"6":1,"10":1,"13":2,"15":1,"27":1,"33":1,"38":1,"47":2,"58":1,"61":1,"63":2,"70":3,"73":2,"76":1,"79":1,"84":22,"85":7,"90":1,"91":2,"93":1}}],["once",{"2":{"56":1,"72":1,"85":1,"87":1}}],["onlinestat",{"2":{"84":2}}],["onlinestats",{"2":{"42":2}}],["only",{"2":{"6":1,"13":1,"14":1,"16":1,"20":1,"22":1,"24":1,"29":2,"41":1,"59":1,"81":1,"84":2}}],["on",{"2":{"1":2,"6":1,"7":1,"10":2,"13":2,"16":1,"23":2,"31":1,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"70":1,"74":1,"76":1,"80":1,"81":1,"84":5,"85":4}}],["ones",{"2":{"17":1,"33":1}}],["oneto",{"2":{"4":4,"5":4,"6":2,"25":2,"29":3,"32":9,"33":6,"44":1,"45":5,"47":4,"81":6,"91":2}}],["one",{"0":{"18":1,"44":1},"2":{"0":1,"7":1,"8":2,"14":2,"18":15,"19":5,"20":6,"21":2,"22":2,"42":1,"46":1,"52":1,"59":1,"70":2,"71":1,"81":2,"84":9,"85":3,"98":1}}],["own",{"2":{"0":1,"59":1}}],["offline=true",{"2":{"106":1}}],["offsets",{"2":{"85":1}}],["offset",{"2":{"13":1}}],["often",{"2":{"7":1}}],["of",{"0":{"11":1,"40":1,"49":1,"82":1,"99":2},"2":{"0":2,"1":1,"6":1,"8":3,"9":1,"10":2,"11":1,"12":1,"13":2,"14":1,"15":1,"22":7,"23":3,"24":1,"26":1,"27":1,"31":3,"32":3,"36":1,"37":2,"38":1,"39":1,"40":2,"41":1,"42":1,"49":1,"50":1,"54":1,"59":1,"62":1,"63":3,"64":1,"66":1,"68":1,"70":7,"71":1,"72":2,"73":2,"74":1,"80":1,"81":1,"82":1,"83":1,"84":53,"85":42,"91":1,"92":2,"96":2,"97":1,"98":1,"99":1}}],["eo",{"2":{"98":1}}],["esdltutorials",{"2":{"98":1}}],["esm1",{"2":{"58":1,"102":2}}],["eltype",{"2":{"91":1}}],["elementtype",{"2":{"85":1}}],["element",{"2":{"8":1,"9":1,"10":2,"13":2,"14":1,"16":3,"22":2,"34":1,"42":1,"51":2,"52":1,"53":1,"54":7,"55":2,"56":3,"65":2,"68":1,"71":1,"72":2,"84":1,"85":1,"96":1}}],["elements",{"0":{"11":1,"65":1},"2":{"8":1,"12":1,"13":2,"23":1,"63":1,"70":1,"84":1,"85":1}}],["empty",{"2":{"85":1}}],["embeds",{"2":{"84":1}}],["either",{"2":{"84":2}}],["error",{"2":{"79":1}}],["epsg",{"2":{"60":5}}],["et",{"2":{"59":1,"63":1,"72":1,"74":1,"80":1}}],["edu",{"2":{"59":1,"63":1,"71":1,"74":1}}],["equivalent",{"2":{"56":1,"68":1}}],["equally",{"2":{"0":1}}],["effectively",{"2":{"41":1}}],["env",{"2":{"88":1}}],["ensure",{"2":{"59":1}}],["enabling",{"2":{"29":1}}],["enter",{"2":{"90":1}}],["entire",{"2":{"22":1,"24":1,"75":1,"77":1}}],["entries",{"2":{"22":1,"46":1,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"82":1,"84":1,"91":1}}],["entry",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"18":1,"19":1,"21":1,"29":2,"51":2,"52":1,"54":2,"55":2,"56":3,"84":1,"87":3}}],["enumerate",{"2":{"22":2,"56":2}}],["end",{"2":{"13":1,"16":1,"18":1,"19":2,"21":2,"22":4,"23":2,"41":1,"51":2,"56":2,"59":1,"96":2,"106":1}}],["exist",{"2":{"84":1}}],["exists",{"2":{"79":1,"84":1,"85":1}}],["existing",{"0":{"8":1},"2":{"79":1,"80":1}}],["exportable=true",{"2":{"106":1}}],["expression",{"2":{"84":1}}],["experiment",{"2":{"59":3,"63":3,"74":3,"80":3}}],["explicitly",{"2":{"13":1,"33":1,"36":1,"85":1}}],["executes",{"2":{"84":1}}],["execute",{"2":{"23":1}}],["external",{"2":{"58":1,"102":1}}],["extension",{"2":{"84":2}}],["extent",{"2":{"26":2}}],["extended",{"2":{"16":1,"84":1,"85":2}}],["extracts",{"2":{"85":1}}],["extract",{"0":{"32":1},"1":{"33":1},"2":{"85":1}}],["extracted",{"2":{"21":1}}],["extra",{"2":{"23":1}}],["exactly",{"2":{"5":1,"34":1,"46":1}}],["examples",{"2":{"6":1,"34":2,"48":1,"59":1,"63":1,"74":1,"87":1}}],["example",{"2":{"0":1,"1":1,"5":1,"10":1,"17":1,"21":1,"23":2,"33":1,"39":1,"40":1,"41":1,"42":1,"49":1,"59":1,"61":1,"63":2,"70":2,"71":1,"72":1,"74":2,"84":4,"85":1,"87":2,"91":2}}],["e",{"2":{"7":1,"8":1,"10":1,"11":1,"13":1,"22":2,"23":1,"26":1,"27":1,"29":1,"37":1,"59":1,"68":1,"70":1,"73":1,"79":1,"84":6,"85":1,"88":1,"91":1}}],["east",{"2":{"60":1}}],["easier",{"2":{"29":1,"63":1}}],["easily",{"2":{"0":1,"23":1}}],["easy",{"2":{"26":1,"27":1}}],["each",{"2":{"4":1,"5":1,"10":1,"13":1,"20":1,"22":5,"23":2,"41":2,"42":2,"49":1,"53":1,"62":1,"71":1,"73":1,"84":3,"85":3,"91":1}}],["everywhere",{"2":{"23":2}}],["every",{"2":{"0":1,"10":1,"13":1,"84":1}}],["features",{"2":{"99":1}}],["feel",{"2":{"76":1}}],["feb",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["frame",{"2":{"100":1}}],["frames",{"2":{"70":1}}],["front",{"2":{"85":1}}],["from",{"0":{"32":1,"34":2,"46":1,"49":1},"1":{"33":1},"2":{"0":1,"8":1,"9":1,"24":1,"32":1,"33":1,"34":4,"40":3,"46":2,"62":1,"67":1,"72":2,"82":1,"84":6,"85":6,"91":1,"96":1}}],["free",{"2":{"76":1}}],["frequently",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["fr",{"2":{"59":1,"63":1,"74":1,"80":1}}],["fallback",{"2":{"85":1}}],["falls",{"2":{"84":1}}],["false",{"2":{"18":1,"20":1,"47":1,"79":2,"84":3,"85":1}}],["fails",{"2":{"84":1}}],["faq",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["faster",{"2":{"85":1}}],["fastest",{"2":{"1":1}}],["fast",{"2":{"1":1,"13":1}}],["f2mix",{"2":{"19":3}}],["f2",{"2":{"18":3}}],["f1",{"2":{"18":2,"19":1}}],["fu",{"2":{"85":1}}],["funtion",{"2":{"96":1}}],["fun",{"2":{"84":4}}],["functionality",{"0":{"99":1}}],["functions",{"2":{"10":2,"21":1,"70":2,"83":1,"84":1,"85":1}}],["function",{"0":{"42":1},"2":{"0":1,"1":1,"13":2,"15":1,"16":6,"17":1,"18":2,"19":2,"21":5,"23":6,"32":2,"35":1,"41":1,"42":1,"46":1,"48":1,"51":1,"53":1,"56":1,"61":1,"67":1,"81":1,"84":22,"85":13}}],["future",{"2":{"50":1}}],["further",{"2":{"13":1,"98":1}}],["flag",{"2":{"85":3}}],["flat",{"2":{"18":4,"19":2,"20":2}}],["float32",{"2":{"16":6,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":2,"82":4,"85":1}}],["float64",{"2":{"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"17":2,"18":2,"19":2,"20":2,"21":3,"22":9,"25":2,"26":2,"27":4,"29":6,"30":2,"32":1,"33":3,"35":4,"41":12,"42":5,"46":2,"51":3,"52":2,"55":3,"56":6,"58":4,"59":4,"60":2,"62":6,"63":2,"64":4,"65":2,"66":6,"67":10,"68":3,"74":2,"80":2,"84":1,"85":1,"91":7,"96":2,"102":2}}],["flexible",{"2":{"9":1,"15":1}}],["folder",{"2":{"88":1}}],["follow",{"2":{"88":1,"98":1}}],["follows",{"2":{"16":2,"19":1,"21":1,"51":1,"56":1,"82":1}}],["following",{"2":{"2":1,"5":1,"6":1,"16":1,"17":1,"18":1,"21":1,"23":1,"33":1,"48":1,"49":1,"50":1,"84":2,"85":4,"93":2,"94":1,"98":1}}],["found",{"2":{"84":1,"85":1}}],["fourth",{"2":{"59":2,"63":2,"74":2,"80":2}}],["fontsize=24",{"2":{"103":1}}],["fontsize=18",{"2":{"56":1}}],["font=",{"2":{"56":1}}],["forwarded",{"2":{"84":1}}],["forwardordered",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":4,"18":4,"19":3,"20":3,"21":9,"22":9,"25":2,"26":6,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":4,"37":14,"39":6,"40":10,"41":9,"42":5,"44":1,"45":5,"46":4,"47":4,"51":3,"52":2,"54":2,"55":1,"56":7,"58":6,"59":6,"60":1,"62":9,"63":3,"64":6,"65":4,"66":9,"67":15,"68":2,"74":3,"80":6,"81":6,"91":5,"96":1,"102":3}}],["force",{"2":{"84":1}}],["forcing",{"2":{"58":1,"102":1}}],["forms",{"2":{"84":1,"85":2}}],["format",{"2":{"76":1,"78":1,"79":1,"84":1,"96":1}}],["formal",{"2":{"72":1}}],["former",{"2":{"32":1}}],["for",{"0":{"6":1,"95":1},"1":{"96":1,"97":1},"2":{"0":2,"1":3,"4":1,"5":1,"6":1,"20":1,"22":4,"23":1,"37":1,"39":2,"40":2,"41":4,"42":6,"46":5,"50":1,"54":1,"56":3,"59":2,"61":2,"62":1,"63":1,"67":1,"68":1,"70":4,"71":3,"72":1,"74":1,"79":1,"80":1,"81":2,"84":20,"85":16,"94":1,"95":1,"96":2,"98":1}}],["f",{"2":{"2":2,"16":3}}],["field",{"2":{"84":1}}],["fields",{"2":{"42":1,"84":1,"85":4}}],["figure=",{"2":{"97":1}}],["figure",{"2":{"56":2,"95":1,"97":1,"103":1,"104":1,"105":1,"106":1}}],["fig",{"2":{"42":3,"56":8,"95":1,"97":1,"103":2,"104":2,"105":2,"106":3}}],["filterig",{"2":{"96":1}}],["filter",{"2":{"84":2}}],["fillarrays",{"2":{"81":3}}],["fill",{"2":{"81":1,"84":1,"85":1}}],["fillvalue=",{"2":{"85":1}}],["fillvalue",{"2":{"50":3,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["filling",{"2":{"28":1,"29":1}}],["filename",{"2":{"50":2,"84":1}}],["files",{"0":{"101":1},"2":{"7":1,"57":1,"60":1,"84":5,"85":2,"88":1}}],["file",{"2":{"2":1,"7":1,"27":1,"40":1,"59":2,"78":3,"79":2,"81":1,"84":2,"87":4}}],["findaxis",{"2":{"85":1}}],["findall",{"2":{"22":1,"96":1}}],["find",{"2":{"36":1,"85":1,"98":1}}],["finalizer",{"2":{"85":1}}],["finalize",{"2":{"85":1}}],["finally",{"2":{"22":1,"84":1}}],["final",{"2":{"21":1,"22":1}}],["firstly",{"2":{"37":1}}],["first",{"2":{"8":4,"16":3,"18":1,"22":1,"42":1,"45":1,"56":1,"82":1,"84":4,"85":1,"87":1,"91":1,"102":1}}],["fitting",{"2":{"84":1}}],["fittable",{"2":{"84":2}}],["fitcube",{"2":{"42":2}}],["fitsym",{"2":{"84":4}}],["fits",{"2":{"24":1}}],["fit",{"2":{"1":1,"61":1,"70":1}}],["t=union",{"2":{"85":1}}],["typing",{"2":{"90":1}}],["typically",{"2":{"84":1}}],["type",{"2":{"33":1,"47":1,"70":1,"72":1,"84":8,"85":3,"91":1,"92":1}}],["types",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1},"2":{"24":2,"26":1,"27":1,"47":1,"65":1,"71":1,"84":2,"92":1}}],["tutorial",{"2":{"98":2,"99":1,"100":1}}],["tutorials",{"0":{"98":1},"1":{"99":1,"100":1,"101":1},"2":{"67":1,"98":3}}],["turn",{"2":{"84":1}}],["tuple",{"2":{"2":3,"4":1,"5":1,"6":1,"18":1,"20":1,"51":2,"52":1,"54":2,"55":2,"56":4,"84":5,"85":1}}],["tbl",{"2":{"42":2}}],["target",{"2":{"85":1}}],["tab",{"2":{"84":4}}],["tables",{"2":{"100":1}}],["tableaggregator",{"2":{"84":1}}],["table",{"0":{"100":1},"2":{"42":2,"58":1,"59":2,"63":2,"74":2,"80":2,"84":4,"85":1,"102":1}}],["tas",{"2":{"58":5,"102":5}}],["tair",{"2":{"56":1,"84":1}}],["ta",{"2":{"46":3}}],["takes",{"2":{"84":4}}],["taken",{"2":{"40":2}}],["take",{"2":{"16":1,"84":1,"85":2,"88":1}}],["tip",{"2":{"92":1}}],["tidy",{"2":{"84":1}}],["ticks",{"2":{"70":1}}],["ticks=false",{"2":{"56":1}}],["tick",{"2":{"68":1,"73":1,"91":1}}],["tiff",{"0":{"101":1}}],["tif",{"2":{"60":2,"94":1}}],["title",{"2":{"56":1,"59":1,"63":1,"74":1,"80":1,"87":1}}],["ti",{"2":{"26":4,"84":2,"102":1}}],["time1",{"2":{"65":2}}],["timearray",{"0":{"46":1},"2":{"46":3}}],["time=1",{"2":{"91":1}}],["time=>cyclicbins",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["time=date",{"2":{"37":1}}],["time=at",{"2":{"37":1,"56":3}}],["time=between",{"2":{"37":1}}],["time",{"0":{"49":1},"2":{"1":1,"7":1,"8":4,"9":3,"10":3,"12":1,"13":1,"14":7,"16":14,"17":2,"18":4,"19":1,"20":5,"21":10,"22":8,"23":5,"26":2,"29":3,"30":1,"35":2,"37":8,"39":4,"40":7,"41":4,"42":3,"46":5,"51":15,"52":3,"53":2,"54":8,"55":3,"56":7,"58":4,"59":4,"62":6,"63":1,"64":4,"65":6,"66":6,"67":10,"70":2,"71":1,"74":1,"80":1,"84":4,"91":4,"95":1,"96":4,"102":3}}],["timestamp",{"2":{"46":1}}],["timestep",{"2":{"42":1}}],["timeseries",{"2":{"46":3}}],["times",{"2":{"0":1}}],["treat",{"2":{"84":1}}],["treatment",{"2":{"84":1,"85":1}}],["treated",{"2":{"58":1}}],["tries",{"2":{"84":1}}],["translate",{"2":{"104":1,"105":1}}],["transformed",{"2":{"59":1,"63":1,"74":1,"80":1}}],["transformations",{"2":{"104":1}}],["transformation",{"2":{"22":1}}],["transform",{"2":{"22":2}}],["track",{"2":{"84":1}}],["true",{"2":{"12":1,"47":1,"61":1,"79":1,"81":1,"84":4,"85":1,"106":1}}],["tesselation",{"2":{"106":1}}],["testrange",{"2":{"85":1}}],["test1",{"2":{"47":1}}],["test2",{"2":{"47":2}}],["test",{"2":{"17":4,"18":1,"19":3,"20":4,"21":4,"47":3,"85":1,"102":1}}],["terminal",{"2":{"88":1}}],["text",{"2":{"87":1}}],["tensors",{"2":{"70":1}}],["tell",{"2":{"36":1}}],["temporary",{"2":{"85":1}}],["temporal",{"2":{"41":1,"48":1,"70":1}}],["tempo",{"2":{"51":6,"54":4,"55":1}}],["temp",{"2":{"9":2}}],["temperature=temperature",{"2":{"40":1}}],["temperature",{"2":{"9":2,"40":4,"56":2,"58":3,"59":2,"62":6,"64":5,"65":6,"66":6,"67":10,"70":1,"71":1,"72":1,"91":4}}],["tempname",{"2":{"2":1,"4":1,"5":1,"6":1}}],["tspan",{"2":{"16":1}}],["t",{"2":{"16":4,"37":1,"39":2,"40":2,"42":3,"59":1,"62":4,"64":2,"65":3,"66":3,"67":5,"76":1,"84":1,"85":2,"95":1,"96":1}}],["two",{"2":{"8":1,"9":1,"18":8,"19":4,"20":3,"21":2,"34":2,"35":1,"70":1,"85":1}}],["toghether",{"2":{"85":1}}],["together",{"2":{"46":1,"72":1}}],["touches",{"2":{"67":1}}],["tolerances",{"2":{"66":1}}],["tos",{"2":{"59":5,"62":6,"63":2,"64":4,"65":4,"66":3,"67":9,"68":2,"74":2,"75":2,"77":2,"80":1}}],["top",{"2":{"56":1}}],["too",{"2":{"40":1,"70":1,"84":1}}],["todo",{"2":{"21":1,"96":1}}],["toy",{"2":{"21":1,"81":1}}],["to",{"0":{"9":1,"18":1,"19":1,"43":1,"80":1,"86":1,"87":1,"93":1},"1":{"44":1,"45":1,"87":1,"88":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":1,"18":2,"19":1,"20":4,"21":3,"22":2,"23":6,"24":3,"25":2,"27":3,"28":1,"31":2,"32":2,"34":3,"35":1,"37":2,"39":2,"40":6,"41":1,"42":1,"45":2,"46":2,"47":1,"48":1,"49":3,"50":2,"52":1,"53":1,"56":1,"57":1,"58":3,"59":2,"61":1,"62":2,"63":3,"67":1,"68":1,"69":1,"70":5,"71":3,"72":2,"73":2,"74":1,"75":2,"76":2,"77":2,"78":2,"79":1,"80":2,"81":4,"82":3,"84":49,"85":19,"87":2,"88":3,"92":2,"93":1,"98":1,"100":3,"102":2,"106":1}}],["though",{"2":{"81":1}}],["those",{"2":{"11":1,"24":1,"26":1,"27":1,"45":1,"71":1,"82":1}}],["through",{"2":{"84":5,"85":5,"90":1}}],["thrown",{"2":{"79":1}}],["three",{"2":{"36":1,"71":1,"95":1}}],["threaded",{"2":{"59":1}}],["threads",{"2":{"59":2,"84":2}}],["thread",{"2":{"23":1,"59":3}}],["than",{"2":{"24":1,"36":1,"41":1,"42":1}}],["that",{"2":{"0":1,"9":2,"10":1,"13":1,"16":5,"20":1,"21":1,"22":2,"23":1,"24":1,"33":1,"35":1,"38":1,"40":2,"42":1,"46":1,"47":1,"49":1,"52":1,"55":1,"59":2,"61":1,"68":1,"70":1,"71":2,"73":1,"81":2,"84":13,"85":13,"98":1,"100":1}}],["things",{"2":{"31":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":1,"19":2,"22":3,"23":1,"24":1,"28":1,"31":1,"34":1,"39":1,"40":2,"41":2,"42":2,"45":1,"46":1,"49":1,"53":2,"57":1,"58":1,"59":1,"61":1,"62":2,"67":1,"69":1,"72":1,"76":1,"82":2,"83":2,"84":7,"85":10,"87":1,"88":2,"99":1,"100":1}}],["they",{"2":{"46":4,"62":1}}],["their",{"0":{"39":1,"40":1},"2":{"38":1,"40":1,"47":1,"70":1,"84":3,"85":2}}],["then",{"2":{"21":2,"22":2,"33":1,"41":1,"46":1,"81":1,"82":1,"88":2,"90":1}}],["thereby",{"2":{"84":1}}],["therefore",{"2":{"42":1,"92":1}}],["there",{"2":{"14":2,"21":1,"27":1,"34":1,"46":2,"62":1,"84":1}}],["theme",{"2":{"56":2}}],["them",{"2":{"7":1,"10":1,"36":1,"61":1,"82":1,"84":1}}],["these",{"2":{"0":1,"6":1,"34":1,"36":1,"47":1,"68":1,"70":1}}],["the",{"0":{"32":1,"34":1,"42":1,"50":1,"96":1,"99":1},"1":{"33":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":3,"18":5,"19":2,"20":3,"21":10,"22":14,"23":7,"24":2,"27":1,"29":3,"31":1,"32":3,"33":5,"34":3,"35":2,"36":2,"37":9,"39":3,"40":10,"41":3,"42":10,"45":1,"46":7,"48":2,"49":5,"50":4,"51":2,"52":1,"53":2,"54":2,"55":2,"56":9,"59":2,"61":3,"62":6,"63":1,"64":5,"65":3,"66":5,"67":6,"68":1,"69":1,"70":5,"71":4,"72":4,"78":1,"79":3,"80":1,"81":10,"82":2,"84":122,"85":83,"86":1,"87":1,"88":6,"90":2,"91":6,"92":8,"93":5,"94":1,"95":1,"96":4,"98":6,"99":1,"100":5,"102":1}}],["switched",{"2":{"92":1}}],["syntax",{"2":{"92":1,"98":1}}],["system",{"2":{"88":1}}],["symbol",{"2":{"10":1,"12":1,"13":1,"18":1,"20":1,"29":2,"46":5,"51":4,"52":2,"53":2,"54":4,"55":4,"56":6,"84":3,"85":1}}],["src",{"2":{"87":1}}],["sres",{"2":{"59":2,"63":2,"74":2,"80":2}}],["skipped",{"2":{"84":1}}],["skip",{"2":{"84":1}}],["skipmissing",{"2":{"23":1,"41":1}}],["skeleton=a",{"2":{"81":1}}],["skeleton=true",{"2":{"81":2}}],["skeleton=false",{"2":{"79":1,"84":1}}],["skeleton",{"0":{"81":1},"2":{"81":8,"82":4}}],["ssp585",{"2":{"58":1,"102":2}}],["snow3",{"2":{"42":1}}],["snippet",{"2":{"6":1}}],["small",{"2":{"31":1,"46":1}}],["slightly",{"2":{"98":1}}],["slicing",{"2":{"16":1}}],["slices",{"2":{"84":3}}],["slice",{"2":{"16":1,"102":4,"103":1}}],["slow",{"2":{"40":1,"84":1}}],["slurmmanager",{"2":{"23":1}}],["shinclude",{"2":{"88":1}}],["shdocs>",{"2":{"88":1}}],["shnpm",{"2":{"88":2}}],["shouldn",{"2":{"62":1}}],["should",{"2":{"37":1,"46":1,"50":1,"61":1,"62":1,"84":3,"85":1,"87":1,"88":1,"93":1}}],["showprog",{"2":{"84":1}}],["shown",{"2":{"62":1,"84":1}}],["shows",{"2":{"56":1}}],["showing",{"2":{"46":1}}],["show",{"2":{"23":1,"82":1,"106":1}}],["shading=false",{"2":{"104":1,"105":1,"106":1}}],["shall",{"2":{"84":5,"85":1}}],["shares",{"2":{"40":1}}],["share",{"0":{"39":1,"40":1},"2":{"38":1,"40":1,"71":1,"84":1}}],["shared",{"2":{"4":1,"5":1,"6":1,"20":1,"30":1,"35":1,"39":2,"40":3,"44":1,"45":1,"46":2,"58":1,"59":1,"60":1,"63":1,"74":1,"80":1,"81":1,"102":1}}],["shape",{"2":{"6":1}}],["scene",{"2":{"106":3}}],["scenariomip",{"2":{"58":1,"102":2}}],["scenarios",{"2":{"17":1,"102":1}}],["scripts",{"2":{"88":1}}],["scope",{"2":{"84":1,"85":1}}],["scalar",{"2":{"58":1}}],["scattered",{"2":{"7":1}}],["sure",{"2":{"106":1}}],["surface",{"2":{"56":2,"58":2,"59":2,"62":6,"64":5,"65":6,"66":6,"67":10,"104":1,"105":1}}],["such",{"2":{"62":1,"67":1,"84":1,"92":1}}],["subcubes",{"2":{"84":1}}],["subtype",{"2":{"70":1,"85":1,"92":1}}],["subtables",{"2":{"42":1}}],["subsetextensions",{"2":{"85":1}}],["subsetcube",{"2":{"84":1}}],["subseting",{"2":{"68":1}}],["subsetting",{"0":{"37":1,"38":1,"39":1,"40":1},"1":{"39":1,"40":1},"2":{"58":1,"59":1,"85":1,"96":1}}],["subset",{"0":{"36":1},"1":{"37":1,"38":1,"39":1,"40":1},"2":{"37":5,"40":4,"63":1,"66":1,"84":1,"85":1,"102":1}}],["subsets",{"2":{"15":1,"73":1}}],["subsequent",{"2":{"17":1}}],["supposed",{"2":{"84":1}}],["support",{"2":{"27":1,"46":1}}],["supertype",{"2":{"26":1,"27":1}}],["summarysize",{"2":{"47":2}}],["sum",{"2":{"18":1,"19":1,"21":1,"22":2,"41":1,"51":4,"54":2,"55":4,"56":2}}],["suggestions",{"2":{"6":1}}],["s",{"2":{"10":1,"16":3,"18":1,"19":1,"21":2,"33":1,"35":1,"37":1,"39":1,"40":2,"56":7,"61":1,"63":1,"73":1,"81":1,"84":2,"85":1,"94":1,"96":1}}],["style",{"0":{"100":1}}],["st",{"2":{"92":1}}],["stdzero",{"2":{"84":1}}],["stock3",{"2":{"46":4}}],["stock2",{"2":{"46":4}}],["stock1",{"2":{"46":4}}],["stocks",{"2":{"46":7}}],["storing",{"2":{"71":1}}],["storage",{"2":{"11":1,"58":1}}],["stored",{"2":{"70":3,"85":2}}],["stores",{"2":{"70":1,"84":1}}],["store",{"2":{"0":1,"58":4,"70":1,"71":1,"102":2}}],["struct",{"2":{"84":1,"85":4}}],["structures",{"2":{"69":1}}],["structure",{"2":{"33":2,"46":1,"72":1}}],["strings",{"0":{"47":1}}],["string",{"2":{"8":1,"9":2,"10":1,"12":1,"13":1,"14":2,"16":5,"17":3,"18":4,"19":3,"20":1,"21":4,"22":6,"25":1,"26":2,"27":3,"29":3,"32":1,"33":3,"34":1,"35":2,"37":5,"41":3,"42":3,"47":5,"51":1,"52":1,"54":2,"55":1,"56":1,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"79":1,"80":1,"81":1,"84":6,"85":4,"91":4,"96":1,"102":1}}],["stable",{"2":{"92":1}}],["stat",{"2":{"78":2}}],["status",{"2":{"62":2}}],["statistics",{"2":{"14":1,"23":1,"42":3,"48":1,"95":1}}],["standard",{"2":{"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["standards",{"2":{"58":1,"59":1,"63":1,"74":1,"80":1,"102":1}}],["stack",{"2":{"47":1}}],["started",{"0":{"89":1},"1":{"90":1,"91":1,"92":1}}],["start=12",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["start=december",{"2":{"51":3,"54":1}}],["start",{"2":{"10":1,"37":1,"76":1,"82":1}}],["still",{"2":{"8":1,"22":1,"71":1,"98":1}}],["step=3",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["steps",{"2":{"10":1,"14":1,"56":1,"84":1,"88":1}}],["step",{"2":{"7":1,"14":1,"20":1,"41":2,"84":1,"85":2,"102":1}}],["sphere",{"0":{"106":1},"2":{"106":3}}],["spheroid",{"2":{"60":1}}],["split",{"2":{"84":1}}],["splitted",{"2":{"2":1}}],["special",{"2":{"65":1,"84":1,"85":1}}],["specifiers",{"2":{"85":1}}],["specifier",{"2":{"84":1}}],["specifies",{"2":{"84":3}}],["specified",{"2":{"84":8,"85":1}}],["specific",{"2":{"37":1,"84":2}}],["specifying",{"2":{"84":2,"85":1}}],["specify",{"0":{"20":1},"2":{"17":1,"29":1,"84":1}}],["specs",{"2":{"58":1,"102":1}}],["spectral",{"2":{"56":1}}],["sparse",{"2":{"70":1}}],["spatio",{"2":{"41":1}}],["spatial",{"2":{"1":1,"14":1,"22":5,"23":1,"48":1,"70":1}}],["span",{"2":{"37":1,"95":1}}],["space",{"2":{"1":1,"16":1}}],["safe",{"2":{"59":2}}],["sampled",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":3,"18":3,"19":2,"20":3,"21":9,"22":8,"25":2,"26":6,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":3,"37":14,"39":6,"40":10,"41":9,"42":5,"44":1,"45":5,"46":4,"47":4,"51":3,"52":2,"54":2,"55":1,"56":7,"58":6,"59":6,"60":2,"62":9,"63":3,"64":6,"65":4,"66":9,"67":15,"68":2,"74":3,"80":6,"81":6,"91":5,"96":1,"102":3}}],["same",{"2":{"0":1,"2":1,"5":1,"6":1,"9":1,"16":1,"20":1,"21":1,"22":2,"26":1,"27":1,"33":2,"34":2,"35":1,"40":1,"45":1,"46":2,"61":1,"64":1,"65":1,"66":1,"70":1,"71":3,"72":2,"84":1,"85":1,"88":1}}],["saves",{"2":{"79":1,"84":1}}],["save",{"0":{"81":1},"2":{"12":1,"27":1,"45":1,"47":1,"75":2,"76":1,"77":2,"78":1,"81":1,"84":2}}],["savecube",{"2":{"2":1,"75":1,"77":1,"81":1,"84":2}}],["savedataset",{"2":{"4":1,"5":1,"6":1,"76":1,"78":1,"79":2,"80":1,"81":2,"84":2,"85":1}}],["saved",{"2":{"2":1,"11":1,"20":1,"78":1,"79":1}}],["saving",{"2":{"1":1,"4":1,"5":1,"6":1,"16":1}}],["serve",{"2":{"85":1}}],["series",{"0":{"49":1},"2":{"23":1}}],["sequence",{"2":{"70":1}}],["seaborn",{"2":{"103":1,"104":1,"105":1,"106":1}}],["searching",{"2":{"84":1}}],["search",{"2":{"84":1}}],["sea",{"2":{"59":3,"62":6,"63":1,"64":5,"65":6,"66":6,"67":10,"74":1,"80":1}}],["season",{"2":{"51":1,"54":2,"55":1}}],["seasons",{"0":{"51":1,"53":1,"56":1},"1":{"52":1,"53":1},"2":{"51":9,"54":1,"56":5}}],["seasonal",{"0":{"49":1,"95":1,"97":1},"1":{"96":1,"97":1},"2":{"49":1,"55":1,"56":1,"95":1,"96":4}}],["sebastien",{"2":{"59":2,"63":2,"74":2,"80":2}}],["separate",{"2":{"84":1,"85":1}}],["separated",{"2":{"71":1}}],["separately",{"2":{"5":1,"22":1,"23":1}}],["sep",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["selected",{"2":{"85":1,"95":1}}],["select",{"0":{"63":1,"64":1,"65":1,"66":1},"1":{"64":1,"65":1,"66":1,"67":1,"68":1},"2":{"40":1,"63":1}}],["selectors",{"2":{"67":1}}],["selector",{"2":{"40":1,"66":1}}],["selection",{"2":{"40":2}}],["selecting",{"2":{"37":1,"39":1,"40":1}}],["seed",{"2":{"17":1,"21":2}}],["see",{"2":{"16":1,"18":1,"67":1,"84":1,"92":1}}],["second",{"2":{"8":3,"18":1,"19":1,"84":1}}],["section",{"2":{"7":1,"10":1,"24":1,"28":1,"31":1,"46":1,"57":1,"69":1,"83":1}}],["setting",{"2":{"79":1,"84":1,"85":1}}],["sets",{"2":{"6":1,"50":1}}],["set",{"0":{"4":1,"5":1,"6":1},"2":{"4":1,"5":1,"19":2,"22":1,"58":1,"79":1,"84":1,"85":2,"88":1}}],["setchunks",{"2":{"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"84":1,"85":1}}],["several",{"0":{"16":1},"2":{"0":1,"16":1,"35":1,"38":1}}],["significant",{"2":{"76":1}}],["sin",{"2":{"95":1}}],["sink",{"2":{"85":1}}],["since",{"2":{"62":1,"93":1}}],["single",{"0":{"95":1},"1":{"96":1,"97":1},"2":{"0":1,"7":1,"8":1,"59":1,"72":1,"75":1,"77":1,"84":6,"85":1}}],["simulate",{"2":{"46":1}}],["simplicity",{"2":{"95":1}}],["simply",{"2":{"23":1,"47":1,"82":1,"88":1,"93":1}}],["simple",{"2":{"16":1,"31":1,"91":1}}],["situations",{"2":{"1":1}}],["size=",{"2":{"104":1,"105":1,"106":1}}],["sizes",{"2":{"2":1,"84":2,"85":2}}],["size",{"2":{"0":1,"1":1,"4":1,"5":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":2,"25":1,"26":1,"27":1,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"54":1,"56":1,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"78":4,"81":1,"82":1,"84":3,"85":4,"91":3,"95":1,"96":2,"97":1,"103":1}}],["sosstsst",{"2":{"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["software",{"2":{"59":1,"63":1,"74":1}}],["sort",{"2":{"22":1}}],["so",{"2":{"2":1,"23":1,"36":1,"40":1,"84":1,"85":1}}],["source",{"2":{"0":2,"59":1,"63":1,"74":1,"79":1,"80":1,"84":25,"85":24}}],["sometimes",{"2":{"81":1,"100":1}}],["some",{"0":{"40":1},"2":{"0":1,"11":1,"38":1,"40":1,"41":1,"46":2,"56":1,"84":1,"95":1,"104":1}}],["advance",{"2":{"62":1}}],["addargs",{"2":{"84":3,"85":1}}],["adds",{"2":{"70":2,"73":1}}],["addprocs",{"2":{"23":2}}],["addition",{"2":{"22":1,"24":1,"70":1}}],["additional",{"2":{"4":3,"5":3,"9":1,"16":1,"21":1,"40":10,"45":4,"46":4,"58":2,"80":3,"84":4,"85":3,"102":2}}],["added",{"2":{"15":1,"80":1,"84":1,"85":1}}],["add",{"2":{"6":1,"10":1,"12":1,"41":1,"59":1,"87":2,"90":2,"93":3,"94":4,"104":1}}],["again",{"2":{"79":1,"82":1}}],["agreement",{"2":{"56":1}}],["aggregation",{"2":{"23":1}}],["aggregate",{"2":{"22":1}}],["air",{"2":{"56":2,"58":3}}],["authority",{"2":{"60":5}}],["auto",{"2":{"18":1,"20":1,"84":1}}],["aug",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["api",{"0":{"83":1,"84":1,"85":1},"1":{"84":1,"85":1}}],["apr",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["appropriate",{"2":{"87":1}}],["approximated",{"2":{"85":1}}],["approx",{"2":{"84":1,"85":1}}],["approach",{"2":{"9":1}}],["append=true",{"2":{"80":2}}],["append",{"0":{"80":1},"2":{"79":1,"84":1}}],["apply",{"0":{"41":1},"2":{"10":2,"13":1,"15":1,"21":1,"23":1,"56":1,"96":1}}],["application",{"2":{"21":1}}],["applications",{"2":{"0":1}}],["applies",{"2":{"13":1}}],["applied",{"2":{"0":1,"3":1,"4":1,"22":1,"84":2,"85":1}}],["a3",{"2":{"30":4}}],["a2",{"2":{"29":1,"30":3,"59":2,"63":2,"74":2,"80":2,"91":1}}],["a1",{"2":{"29":1}}],["able",{"2":{"45":1}}],["abstractstring",{"2":{"84":1}}],["abstractdict",{"2":{"84":1,"85":3}}],["abstractdimarray",{"2":{"26":1,"27":1,"70":1}}],["abs",{"2":{"21":1}}],["about",{"2":{"1":2,"36":1,"66":1,"91":1,"99":1}}],["above",{"2":{"0":1,"5":1,"16":1,"81":1,"90":1}}],["atol",{"2":{"66":1}}],["atmosphere",{"2":{"59":1,"63":1,"74":1,"80":1}}],["atmos",{"2":{"58":1,"102":1}}],["attributes",{"2":{"56":1,"84":1,"85":1}}],["at",{"2":{"21":1,"22":4,"27":1,"40":1,"46":3,"56":1,"59":3,"62":3,"63":1,"64":2,"65":6,"66":7,"67":5,"71":1,"72":2,"74":1,"79":2,"80":1,"84":3,"85":2,"86":1,"87":2,"88":2,"91":1,"98":2}}],["after",{"2":{"14":1,"16":1,"60":1,"84":3}}],["asaxisarray",{"2":{"84":1}}],["assemble",{"2":{"91":1}}],["assessment",{"2":{"59":2,"63":2,"74":2,"80":2}}],["associated",{"2":{"84":1}}],["assign",{"0":{"43":1},"1":{"44":1,"45":1}}],["aspect=dataaspect",{"2":{"56":1,"103":1}}],["asked",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["as",{"2":{"5":1,"12":1,"16":5,"18":1,"19":1,"21":1,"22":1,"23":1,"26":1,"27":2,"33":2,"34":1,"40":1,"42":1,"46":2,"48":1,"51":2,"56":1,"58":1,"59":1,"60":1,"61":1,"64":1,"67":1,"68":1,"70":1,"73":1,"81":1,"82":1,"84":11,"85":3,"92":1,"100":1,"102":1}}],["axs",{"2":{"50":1,"56":9}}],["ax",{"2":{"42":1,"95":3,"97":3,"103":1,"104":3,"105":3,"106":5}}],["axlist",{"2":{"10":2,"17":2,"19":1,"21":4,"22":2,"23":2,"29":2,"30":1,"35":3,"85":5,"91":3}}],["axessmall",{"2":{"85":2}}],["axes",{"0":{"32":1,"34":1},"1":{"33":1},"2":{"4":4,"5":4,"6":1,"20":1,"29":1,"30":1,"32":2,"33":1,"34":2,"37":2,"39":5,"40":13,"44":1,"45":5,"46":8,"58":3,"59":1,"60":1,"63":2,"70":2,"74":1,"80":4,"81":1,"84":15,"85":11,"91":1,"96":2,"102":3}}],["axislegend",{"2":{"97":1}}],["axis=false",{"2":{"106":1}}],["axis=",{"2":{"95":1}}],["axisdescriptor",{"2":{"85":1}}],["axisdesc",{"2":{"84":3}}],["axis",{"0":{"4":1},"2":{"4":1,"9":2,"16":3,"34":1,"37":1,"39":1,"40":7,"46":1,"56":1,"60":2,"68":1,"73":1,"81":1,"84":16,"85":14,"91":1,"97":1,"102":1,"103":1}}],["always",{"2":{"84":2,"85":1,"86":1,"92":1}}],["already",{"2":{"62":1,"79":1,"84":1,"85":1}}],["al",{"2":{"59":1,"63":1,"72":1,"74":1,"80":1}}],["alternatives",{"2":{"84":1}}],["alternatively",{"2":{"0":1,"2":1,"84":2,"90":1}}],["altered",{"2":{"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["although",{"2":{"46":1,"47":1,"67":1}}],["algebraofgraphics",{"2":{"94":1}}],["algebra",{"0":{"41":1},"2":{"41":1}}],["along",{"0":{"8":1},"2":{"8":1,"16":1,"84":6,"85":2,"98":1}}],["allaxes",{"2":{"85":1}}],["allinaxes",{"2":{"85":1}}],["allmissing",{"2":{"84":1}}],["allocate",{"2":{"81":1}}],["allocation",{"2":{"22":1}}],["allow",{"2":{"85":1}}],["allowed",{"2":{"47":1}}],["allowing",{"2":{"26":1,"27":1,"71":1}}],["allows",{"2":{"23":1}}],["all",{"0":{"6":1,"39":1,"40":1},"2":{"4":1,"6":2,"10":1,"12":1,"13":1,"14":2,"22":1,"23":4,"38":1,"40":2,"46":3,"56":2,"60":1,"67":1,"70":1,"72":2,"79":3,"81":1,"83":1,"84":6,"85":7,"88":1}}],["also",{"2":{"2":1,"3":1,"14":1,"21":1,"23":1,"29":1,"32":1,"40":1,"42":1,"70":2,"71":1,"76":1,"81":2,"84":1,"90":1}}],["annual",{"2":{"84":1}}],["analog",{"2":{"71":1}}],["analyzing",{"2":{"1":1}}],["anchor",{"2":{"21":1}}],["another",{"2":{"16":1,"40":1}}],["anynymous",{"2":{"84":1}}],["anyocean",{"2":{"84":1}}],["anymissing",{"2":{"84":1}}],["anymore",{"2":{"21":1}}],["any",{"2":{"8":1,"9":1,"10":1,"11":1,"14":2,"16":5,"18":3,"20":1,"21":2,"22":4,"25":1,"26":2,"27":3,"29":1,"32":1,"33":3,"34":1,"35":1,"37":6,"41":3,"42":3,"47":4,"51":3,"52":2,"54":4,"55":3,"56":3,"58":2,"59":3,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1,"81":1,"84":4,"85":9,"91":1,"96":1,"102":1}}],["an",{"0":{"8":1},"2":{"9":1,"10":4,"12":1,"13":1,"15":1,"23":2,"33":1,"34":1,"39":1,"40":1,"42":1,"47":1,"61":1,"63":3,"66":1,"70":1,"71":1,"73":1,"74":1,"75":1,"76":1,"77":1,"79":1,"80":1,"84":19,"85":8}}],["and",{"0":{"17":1,"28":1,"34":1,"48":1,"57":1,"63":1,"67":1,"74":1},"1":{"18":1,"19":1,"20":1,"29":1,"30":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"64":1,"65":1,"66":1,"67":1,"68":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1},"2":{"0":1,"2":1,"5":1,"6":1,"7":1,"8":1,"12":1,"16":4,"17":2,"18":2,"20":2,"21":4,"22":2,"24":1,"28":1,"29":1,"32":1,"35":1,"37":1,"40":6,"41":1,"42":6,"46":5,"48":1,"49":1,"51":1,"56":1,"57":2,"58":1,"59":1,"62":1,"63":1,"67":1,"70":5,"71":3,"72":2,"74":1,"76":2,"78":1,"79":1,"80":1,"81":3,"82":1,"84":19,"85":6,"86":1,"88":4,"90":1,"91":2,"95":1,"102":1,"104":1}}],["available",{"2":{"67":2,"81":1,"83":1,"84":2,"90":1}}],["avariable",{"2":{"0":1}}],["avoid",{"2":{"59":1}}],["avoids",{"2":{"22":1}}],["avoided",{"2":{"0":1}}],["averaging",{"2":{"14":1}}],["averages",{"0":{"49":1},"2":{"48":1}}],["average",{"2":{"14":1,"49":2}}],["arg",{"2":{"84":1}}],["argument",{"2":{"23":1,"81":1,"84":4,"85":2}}],["arguments",{"2":{"21":1,"56":1,"84":11,"85":3}}],["artype",{"2":{"84":2}}],["archgdaldatasets",{"2":{"60":1}}],["archgdal",{"2":{"60":2,"94":1}}],["arr2",{"2":{"27":1}}],["arr",{"2":{"22":7,"27":2}}],["arrayinfo",{"2":{"85":1}}],["arrays",{"2":{"6":1,"7":1,"8":2,"9":1,"11":1,"28":1,"30":2,"58":2,"59":2,"69":1,"70":4,"71":3,"72":3,"84":2,"85":1}}],["array",{"0":{"22":1,"25":1},"2":{"0":1,"1":1,"8":2,"9":2,"10":3,"12":2,"13":2,"15":1,"18":1,"20":1,"22":8,"25":2,"34":1,"51":1,"56":1,"63":1,"70":4,"71":1,"72":1,"73":2,"81":5,"82":5,"84":10,"85":4,"91":3}}],["arbitrary",{"2":{"16":1}}],["arithmetics",{"0":{"12":1},"2":{"10":1}}],["areas",{"2":{"84":1}}],["area",{"2":{"58":2,"84":1}}],["areacella",{"2":{"58":2,"102":1}}],["are",{"2":{"0":1,"11":1,"18":1,"19":1,"24":3,"34":1,"36":1,"40":1,"46":3,"56":2,"62":2,"63":1,"67":1,"68":1,"70":3,"71":2,"72":3,"81":1,"84":11,"85":6,"86":1,"88":1,"98":2,"100":1}}],["according",{"2":{"84":1}}],["access",{"2":{"1":2,"13":1,"29":1,"70":1,"73":1}}],["accessed",{"2":{"0":2,"58":1,"59":2}}],["activate",{"2":{"42":1,"88":2,"95":1,"103":1,"106":1}}],["actually",{"2":{"85":1}}],["actual",{"2":{"13":1,"59":1,"81":1,"85":1,"91":1}}],["achieves",{"2":{"33":1}}],["achieved",{"2":{"0":1}}],["across",{"2":{"0":1,"7":1,"16":1,"70":3}}],["a",{"0":{"9":1,"11":1,"22":1,"29":1,"30":1,"32":1,"36":1,"37":1,"38":1,"39":1,"40":1,"43":1,"46":2,"47":1,"64":1,"68":1,"79":1,"80":1,"95":1,"101":1},"1":{"33":1,"37":1,"38":1,"39":2,"40":2,"44":1,"45":1,"96":1,"97":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":2,"18":1,"19":2,"20":1,"22":75,"23":11,"25":2,"26":5,"27":8,"29":1,"31":1,"32":2,"33":2,"34":1,"36":4,"37":3,"38":1,"40":2,"42":3,"44":2,"45":2,"46":4,"49":1,"54":1,"56":2,"58":6,"59":4,"60":1,"66":2,"67":4,"68":1,"70":12,"71":4,"72":8,"73":1,"75":3,"76":3,"77":3,"78":1,"79":4,"81":5,"84":64,"85":31,"87":2,"88":2,"91":4,"92":1,"99":1,"100":1}}],["iall",{"2":{"85":1}}],["iwindow",{"2":{"85":1}}],["icolon",{"2":{"85":1}}],["icefire",{"2":{"103":1,"104":1,"105":1,"106":1}}],["ice",{"2":{"59":1,"63":1,"74":1,"80":1}}],["ipcc",{"2":{"59":3,"63":3,"74":3,"80":3}}],["ipsl",{"2":{"59":6,"63":6,"74":6,"80":6}}],["idx",{"2":{"96":3}}],["identical",{"2":{"84":1}}],["id",{"2":{"58":2,"59":2,"63":2,"74":2,"80":2,"102":2}}],["irregular",{"2":{"20":1,"40":6,"42":2,"46":4,"51":1,"54":2,"55":1,"56":1,"58":4,"59":2,"62":3,"63":1,"64":2,"65":2,"66":6,"67":5,"74":1,"80":1,"85":1,"102":2}}],["illustrate",{"2":{"17":1}}],["immutable",{"2":{"11":1}}],["improving",{"2":{"92":1}}],["improvement",{"2":{"76":1}}],["improve",{"2":{"6":1}}],["implementing",{"2":{"84":1}}],["importance",{"2":{"85":1}}],["important",{"2":{"1":1}}],["impossible",{"2":{"11":1}}],["i",{"0":{"35":1,"36":1,"41":1,"42":1,"43":1,"46":1},"1":{"37":1,"38":1,"39":1,"40":1,"44":1,"45":1},"2":{"8":1,"22":3,"26":1,"27":1,"37":1,"56":2,"59":2,"79":1,"84":7,"85":4,"88":2,"91":1,"96":3}}],["ispar",{"2":{"84":1,"85":1}}],["ismissing",{"2":{"81":1}}],["issue",{"2":{"76":1}}],["issues",{"2":{"50":1}}],["isequal",{"2":{"22":1}}],["is",{"2":{"1":2,"2":1,"6":1,"7":1,"9":1,"13":1,"14":2,"15":1,"16":4,"21":2,"22":2,"23":3,"24":1,"27":1,"31":1,"33":2,"35":1,"36":1,"40":2,"41":1,"42":4,"46":2,"47":2,"49":2,"50":2,"51":1,"55":1,"59":2,"62":2,"64":1,"67":2,"68":1,"70":4,"71":1,"72":2,"73":1,"81":4,"82":1,"84":12,"85":10,"87":1,"90":1,"92":1,"93":1,"98":1,"100":1}}],["if",{"2":{"0":1,"18":1,"19":1,"24":1,"40":3,"76":1,"79":1,"81":2,"84":12,"85":6,"88":1,"93":1,"98":1}}],["inline",{"2":{"106":2}}],["incubes",{"2":{"85":1}}],["incs",{"2":{"85":1}}],["include",{"2":{"84":2,"85":1}}],["included",{"2":{"67":1}}],["inarbc",{"2":{"85":1}}],["inar",{"2":{"85":2}}],["inplace",{"2":{"84":3,"85":1}}],["inputcube",{"2":{"85":2}}],["inputs",{"2":{"18":1}}],["input",{"2":{"16":1,"17":1,"18":1,"20":1,"23":2,"42":1,"84":13,"85":8}}],["innerchunks",{"2":{"85":1}}],["inner",{"2":{"84":9,"85":3}}],["installed",{"2":{"92":1}}],["installation",{"0":{"90":1}}],["install",{"0":{"93":1},"2":{"88":1,"90":1,"94":1}}],["instead",{"2":{"8":1,"9":1,"13":1,"32":1,"37":1,"67":1,"70":1}}],["insize",{"2":{"85":1}}],["inside",{"2":{"84":3}}],["initialization",{"2":{"58":1,"102":1}}],["initially",{"2":{"22":1}}],["inds",{"2":{"85":1}}],["indeed",{"2":{"82":1}}],["indexing",{"2":{"65":2,"66":2,"82":1,"92":1}}],["index",{"2":{"58":2,"85":2,"102":2}}],["independently",{"2":{"46":1}}],["indices",{"2":{"85":1,"96":1}}],["indicate",{"2":{"84":1}}],["indicating",{"2":{"9":1,"22":1,"84":1}}],["indims=indims",{"2":{"22":1,"23":1}}],["indims",{"0":{"18":1,"19":1,"21":1},"2":{"16":8,"18":4,"20":7,"21":3,"84":7}}],["individually",{"2":{"13":2}}],["individual",{"2":{"0":1,"58":1,"59":1}}],["information",{"2":{"62":1,"79":1,"85":2}}],["info",{"2":{"16":2,"27":1,"32":1,"48":1,"59":11,"78":4,"81":1,"92":1}}],["introducing",{"2":{"72":1}}],["int",{"2":{"33":1,"47":1,"96":3}}],["interoperability",{"0":{"94":1}}],["internal",{"0":{"85":1},"2":{"85":9}}],["internally",{"2":{"71":1}}],["interface",{"2":{"84":2,"100":1}}],["interested",{"2":{"98":1}}],["interest",{"2":{"62":1}}],["interval",{"2":{"59":1,"62":3,"64":2,"65":3,"66":4,"67":6}}],["intervalsets",{"2":{"67":1}}],["intervals",{"0":{"67":1},"2":{"37":1}}],["interactive",{"2":{"0":1}}],["integer",{"2":{"29":1,"65":1,"66":1,"70":1}}],["int64",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"16":8,"17":1,"18":1,"19":1,"21":7,"25":2,"26":6,"27":2,"29":3,"32":9,"33":7,"34":4,"37":15,"39":4,"40":7,"42":3,"44":1,"45":5,"47":5,"51":6,"52":6,"54":4,"56":18,"80":3,"81":6,"85":1,"91":2}}],["into",{"0":{"61":1,"101":1},"1":{"62":1},"2":{"0":1,"1":1,"2":1,"7":1,"8":1,"16":1,"22":1,"24":2,"27":1,"40":4,"47":1,"57":1,"61":1,"72":2,"79":1,"82":1,"84":6,"85":3,"88":1,"106":1}}],["in",{"0":{"20":1,"43":1},"1":{"44":1,"45":1},"2":{"0":5,"1":1,"2":1,"4":2,"5":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":2,"14":4,"16":5,"17":1,"18":2,"19":2,"21":5,"22":8,"23":3,"24":2,"25":1,"26":2,"27":2,"29":2,"32":1,"33":3,"34":2,"37":5,"38":1,"40":1,"41":3,"42":5,"46":4,"47":2,"49":2,"50":2,"53":3,"54":1,"56":4,"58":2,"59":4,"61":1,"62":9,"64":2,"65":3,"66":4,"67":7,"68":1,"69":1,"70":5,"71":1,"72":2,"81":2,"82":1,"84":15,"85":9,"88":2,"90":1,"91":4,"93":2,"96":2,"98":3,"100":4,"102":1}}],["iter",{"2":{"84":1}}],["iterate",{"2":{"100":1}}],["iteration",{"0":{"100":1}}],["iterator",{"2":{"42":1}}],["iterators",{"2":{"22":1}}],["iterable",{"2":{"42":2,"84":2}}],["itself",{"2":{"84":1,"85":1}}],["its",{"2":{"0":1}}],["it",{"2":{"0":2,"1":3,"12":1,"16":1,"18":1,"20":1,"23":2,"32":1,"34":1,"35":1,"40":2,"42":2,"46":2,"47":1,"52":1,"54":1,"56":1,"59":1,"63":1,"70":2,"71":1,"73":1,"78":1,"79":1,"81":2,"82":1,"84":10,"85":5,"88":1,"90":1}}],["lscene",{"2":{"106":1}}],["lmdz",{"2":{"59":1,"63":1,"74":1,"80":1}}],["link",{"2":{"87":1}}],["linewidth=0",{"2":{"104":1,"105":1}}],["linewidth=2",{"2":{"97":2}}],["linewidth=1",{"2":{"95":1,"97":1}}],["linestyle=",{"2":{"97":2}}],["lines",{"2":{"95":1,"97":3}}],["line",{"2":{"42":1}}],["lim",{"2":{"59":1,"63":1,"74":1,"80":1}}],["libraries",{"2":{"37":1,"70":1}}],["libray",{"2":{"36":1}}],["little",{"2":{"23":1}}],["list",{"2":{"22":1,"46":5,"84":7,"85":6}}],["like",{"2":{"0":1,"42":1,"46":1,"84":2,"85":1,"87":1}}],["learn",{"2":{"100":1}}],["learning",{"2":{"70":1,"98":1}}],["leap",{"2":{"95":1}}],["least",{"2":{"40":1,"46":1,"84":1}}],["length",{"2":{"51":2,"52":1,"54":3,"84":1,"85":3}}],["length=20",{"2":{"35":1,"91":1}}],["length=365",{"2":{"95":1}}],["length=3",{"2":{"17":1}}],["length=4",{"2":{"17":1}}],["length=15",{"2":{"10":1,"22":1,"23":1,"29":1,"35":1,"91":1}}],["length=10",{"2":{"10":1,"22":1,"23":1,"29":1,"35":1,"91":1}}],["level",{"2":{"21":1,"46":1,"76":1,"78":1,"87":1,"88":1}}],["left",{"2":{"14":2}}],["let",{"2":{"10":1,"16":2,"18":1,"19":1,"33":1,"35":1,"37":1,"39":1,"40":1,"56":1,"61":1,"63":1,"96":1}}],["loopinds",{"2":{"85":2}}],["looping",{"2":{"84":1,"85":1}}],["loopcachesize",{"2":{"85":1}}],["loopchunksize",{"2":{"84":1}}],["loopaxes",{"2":{"85":1}}],["loopvars",{"2":{"84":1,"85":1}}],["loops",{"2":{"84":1}}],["loop",{"2":{"84":1,"85":2}}],["looped",{"2":{"84":3,"85":3}}],["look",{"2":{"79":1,"84":1,"85":1,"87":1,"88":1}}],["lookups",{"2":{"51":15,"52":10,"54":5,"55":5,"56":38,"68":3}}],["lookup",{"2":{"51":1,"53":1,"102":3}}],["looks",{"2":{"42":1,"46":1}}],["located",{"2":{"98":1}}],["locate",{"2":{"88":1}}],["location",{"2":{"85":3}}],["locations",{"2":{"71":1,"72":1}}],["localhost",{"2":{"88":1}}],["locally",{"0":{"88":1},"2":{"88":1}}],["local",{"2":{"23":1,"58":1}}],["lock",{"2":{"59":3}}],["locks",{"2":{"59":1}}],["lowclip",{"2":{"56":4}}],["low",{"2":{"46":4}}],["lost",{"2":{"24":1}}],["lo",{"2":{"16":4}}],["loadorgenerate",{"2":{"85":1}}],["loading",{"2":{"60":1,"62":1,"82":1}}],["load",{"0":{"61":1},"1":{"62":1},"2":{"16":1,"37":1,"40":2,"61":1,"62":1,"70":1}}],["loaded",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":2,"25":1,"26":1,"27":1,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"40":2,"41":3,"42":3,"47":2,"54":1,"58":1,"59":1,"62":8,"64":2,"65":3,"66":3,"67":5,"81":1,"91":2,"96":1}}],["long",{"2":{"56":1,"58":1,"59":1,"62":4,"64":2,"65":3,"66":3,"67":5}}],["longitudes=longitudes",{"2":{"40":1}}],["longitudes",{"2":{"40":12}}],["longitude",{"2":{"21":1,"37":1,"60":1,"91":2}}],["lonlat",{"2":{"39":1}}],["lon=1",{"2":{"37":1,"39":1}}],["lon",{"2":{"10":2,"12":1,"13":1,"14":2,"16":10,"17":2,"18":1,"19":1,"20":1,"21":5,"22":12,"23":1,"26":2,"29":3,"30":1,"35":2,"37":7,"39":3,"41":4,"42":3,"58":2,"59":2,"62":3,"63":1,"64":2,"65":3,"66":6,"67":10,"68":2,"74":1,"80":1,"102":2,"104":3}}],["lazy",{"2":{"84":1}}],["lazily",{"2":{"9":1,"13":1,"16":2,"35":1,"58":1,"59":1,"62":1,"64":2,"65":3,"66":3,"67":5}}],["layername",{"2":{"84":2}}],["layername=",{"2":{"81":2,"85":1}}],["layer",{"2":{"81":1,"84":1,"85":1}}],["layout",{"2":{"56":2}}],["labelled",{"2":{"84":1}}],["labels",{"2":{"56":1,"68":1,"72":1,"73":1}}],["label=false",{"2":{"56":1}}],["label=",{"2":{"56":1,"97":3}}],["label=cb",{"2":{"56":1}}],["label",{"2":{"56":3,"58":1,"102":1}}],["last",{"2":{"16":1,"23":1}}],["la",{"2":{"16":4}}],["latest",{"2":{"92":1,"93":1}}],["later",{"2":{"18":1}}],["lat=5",{"2":{"37":1,"39":1}}],["latitudes=latitudes",{"2":{"40":1}}],["latitudes",{"2":{"40":11}}],["latitude",{"2":{"21":1,"37":1,"60":1,"91":2}}],["lat",{"2":{"10":2,"12":1,"13":1,"14":2,"16":7,"17":2,"18":1,"19":1,"20":1,"21":5,"22":12,"23":1,"26":2,"29":3,"30":1,"35":2,"37":7,"39":3,"41":4,"42":3,"58":2,"59":2,"62":3,"63":1,"64":2,"65":3,"66":5,"67":5,"68":1,"74":1,"80":1,"84":1,"102":3,"104":1,"105":1}}],["larger",{"2":{"24":1}}],["large",{"2":{"0":2,"24":1,"50":1,"70":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR479/assets/chunks/@localSearchIndexroot.DBpPZp1N.js b/previews/PR479/assets/chunks/@localSearchIndexroot.DBpPZp1N.js new file mode 100644 index 00000000..74f1a899 --- /dev/null +++ b/previews/PR479/assets/chunks/@localSearchIndexroot.DBpPZp1N.js @@ -0,0 +1 @@ +const e='{"documentCount":107,"nextId":107,"documentIds":{"0":"/YAXArrays.jl/previews/PR479/UserGuide/cache.html#Caching-YAXArrays","1":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Chunk-YAXArrays","2":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Chunking-YAXArrays","3":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Chunking-Datasets","4":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Set-Chunks-by-Axis","5":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Set-chunking-by-Variable","6":"/YAXArrays.jl/previews/PR479/UserGuide/chunk.html#Set-chunking-for-all-variables","7":"/YAXArrays.jl/previews/PR479/UserGuide/combine.html#Combine-YAXArrays","8":"/YAXArrays.jl/previews/PR479/UserGuide/combine.html#cat-along-an-existing-dimension","9":"/YAXArrays.jl/previews/PR479/UserGuide/combine.html#concatenatecubes-to-a-new-dimension","10":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Compute-YAXArrays","11":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Modify-elements-of-a-YAXArray","12":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#arithmetics","13":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#map","14":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#mapslices","15":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#mapCube","16":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Operations-over-several-YAXArrays","17":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#OutDims-and-YAXArray-Properties","18":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#One-InDims-to-many-OutDims","19":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Many-InDims-to-many-OutDims","20":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Specify-path-in-OutDims","21":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Different-InDims-names","22":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Creating-a-vector-array","23":"/YAXArrays.jl/previews/PR479/UserGuide/compute.html#Distributed-Computation","24":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-YAXArrays","25":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-Base.Array","26":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-Raster","27":"/YAXArrays.jl/previews/PR479/UserGuide/convert.html#Convert-DimArray","28":"/YAXArrays.jl/previews/PR479/UserGuide/create.html#Create-YAXArrays-and-Datasets","29":"/YAXArrays.jl/previews/PR479/UserGuide/create.html#Create-a-YAXArray","30":"/YAXArrays.jl/previews/PR479/UserGuide/create.html#Create-a-Dataset","31":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Frequently-Asked-Questions-(FAQ)","32":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Extract-the-axes-names-from-a-Cube","33":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#rebuild","34":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Obtain-values-from-axes-and-data-from-the-cube","35":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-concatenate-cubes","36":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-subset-a-YAXArray-(-Cube-)-or-Dataset?","37":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-YAXArray","38":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-Dataset","39":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-all-their-dimensions","40":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-some-but-not-all-of-their-dimensions","41":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-apply-map-algebra?","42":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-use-the-CubeTable-function?","43":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#How-do-I-assign-variable-names-to-YAXArrays-in-a-Dataset","44":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#One-variable-name","45":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Multiple-variable-names","46":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Ho-do-I-construct-a-Dataset-from-a-TimeArray","47":"/YAXArrays.jl/previews/PR479/UserGuide/faq.html#Create-a-YAXArray-with-unions-containing-Strings","48":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#Group-YAXArrays-and-Datasets","49":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#Seasonal-Averages-from-Time-Series-of-Monthly-Means","50":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#Download-the-data","51":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#GroupBy:-seasons","52":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#dropdims","53":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#seasons","54":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#GroupBy:-weight","55":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#weights","56":"/YAXArrays.jl/previews/PR479/UserGuide/group.html#weighted-seasons","57":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-YAXArrays-and-Datasets","58":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-Zarr","59":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-NetCDF","60":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Read-GDAL-(GeoTIFF,-GeoJSON)","61":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#Load-data-into-memory","62":"/YAXArrays.jl/previews/PR479/UserGuide/read.html#readcubedata","63":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-YAXArrays-and-Datasets","64":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-a-YAXArray","65":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-elements","66":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Select-ranges","67":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Closed-and-open-intervals","68":"/YAXArrays.jl/previews/PR479/UserGuide/select.html#Get-a-dimension","69":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#types","70":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#yaxarray","71":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#dataset","72":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#(Data)-Cube","73":"/YAXArrays.jl/previews/PR479/UserGuide/types.html#dimension","74":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Write-YAXArrays-and-Datasets","75":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Write-Zarr","76":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#zarr-compression","77":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Write-NetCDF","78":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#netcdf-compression","79":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Overwrite-a-Dataset","80":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Append-to-a-Dataset","81":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Save-Skeleton","82":"/YAXArrays.jl/previews/PR479/UserGuide/write.html#Update-values-of-dataset","83":"/YAXArrays.jl/previews/PR479/api.html#API-Reference","84":"/YAXArrays.jl/previews/PR479/api.html#Public-API","85":"/YAXArrays.jl/previews/PR479/api.html#Internal-API","86":"/YAXArrays.jl/previews/PR479/development/contribute.html#Contribute-to-YAXArrays.jl","87":"/YAXArrays.jl/previews/PR479/development/contribute.html#Contribute-to-Documentation","88":"/YAXArrays.jl/previews/PR479/development/contribute.html#Build-docs-locally","89":"/YAXArrays.jl/previews/PR479/get_started.html#Getting-Started","90":"/YAXArrays.jl/previews/PR479/get_started.html#installation","91":"/YAXArrays.jl/previews/PR479/get_started.html#quickstart","92":"/YAXArrays.jl/previews/PR479/get_started.html#updates","93":"/YAXArrays.jl/previews/PR479/#How-to-Install-YAXArrays.jl?","94":"/YAXArrays.jl/previews/PR479/#Want-interoperability?","95":"/YAXArrays.jl/previews/PR479/tutorials/mean_seasonal_cycle.html#Mean-Seasonal-Cycle-for-a-single-pixel","96":"/YAXArrays.jl/previews/PR479/tutorials/mean_seasonal_cycle.html#Define-the-cube","97":"/YAXArrays.jl/previews/PR479/tutorials/mean_seasonal_cycle.html#Plot-results:-mean-seasonal-cycle","98":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#Other-tutorials","99":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#General-overview-of-the-functionality-of-YAXArrays","100":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#Table-style-iteration-over-YAXArrays","101":"/YAXArrays.jl/previews/PR479/tutorials/other_tutorials.html#Combining-multiple-tiff-files-into-a-zarr-based-datacube","102":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Plotting-maps","103":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Heatmap-plot","104":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Wintri-Projection","105":"/YAXArrays.jl/previews/PR479/tutorials/plottingmaps.html#Moll-projection","106":"/YAXArrays.jl/previews/PR479/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,83],"9":[5,2,93],"10":[2,1,120],"11":[5,2,30],"12":[1,2,73],"13":[1,2,121],"14":[1,2,90],"15":[1,2,22],"16":[4,3,214],"17":[4,3,101],"18":[5,7,129],"19":[5,7,99],"20":[4,7,90],"21":[3,3,152],"22":[4,3,249],"23":[2,2,138],"24":[2,1,52],"25":[3,2,86],"26":[2,2,41],"27":[2,2,123],"28":[4,1,14],"29":[3,4,111],"30":[3,4,45],"31":[5,1,19],"32":[7,5,78],"33":[1,11,92],"34":[8,5,77],"35":[5,5,91],"36":[10,5,33],"37":[3,14,146],"38":[3,14,18],"39":[9,14,69],"40":[13,14,158],"41":[7,5,115],"42":[8,5,171],"43":[11,5,1],"44":[3,15,24],"45":[3,15,59],"46":[8,5,139],"47":[7,5,81],"48":[4,1,32],"49":[8,4,35],"50":[3,4,67],"51":[2,4,139],"52":[1,6,101],"53":[1,6,48],"54":[2,4,113],"55":[1,6,86],"56":[2,6,348],"57":[4,1,14],"58":[2,4,188],"59":[2,4,252],"60":[5,4,90],"61":[4,4,42],"62":[1,8,143],"63":[4,1,165],"64":[3,4,106],"65":[2,4,117],"66":[2,4,131],"67":[4,4,144],"68":[3,4,73],"69":[1,1,16],"70":[1,1,113],"71":[1,1,78],"72":[3,1,70],"73":[1,1,32],"74":[4,1,146],"75":[2,4,19],"76":[2,5,52],"77":[2,4,20],"78":[2,5,44],"79":[3,4,77],"80":[4,4,157],"81":[2,4,155],"82":[4,4,93],"83":[2,1,10],"84":[2,2,589],"85":[2,2,462],"86":[4,1,15],"87":[3,4,40],"88":[3,5,75],"89":[2,1,1],"90":[1,2,34],"91":[1,2,201],"92":[1,2,49],"93":[6,1,37],"94":[3,1,21],"95":[7,1,73],"96":[3,7,134],"97":[5,7,48],"98":[2,1,49],"99":[6,2,12],"100":[5,2,38],"101":[9,2,1],"102":[2,1,135],"103":[2,2,21],"104":[2,1,46],"105":[2,2,33],"106":[3,2,57]},"averageFieldLength":[3.504672897196263,3.822429906542055,91.66355140186914],"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":"OutDims and YAXArray Properties","titles":["Compute YAXArrays","mapCube"]},"18":{"title":"One InDims to many OutDims","titles":["Compute YAXArrays","mapCube","OutDims and YAXArray Properties"]},"19":{"title":"Many InDims to many OutDims","titles":["Compute YAXArrays","mapCube","OutDims and YAXArray Properties"]},"20":{"title":"Specify path in OutDims","titles":["Compute YAXArrays","mapCube","OutDims and YAXArray Properties"]},"21":{"title":"Different InDims names","titles":["Compute YAXArrays","mapCube"]},"22":{"title":"Creating a vector array","titles":["Compute YAXArrays","mapCube"]},"23":{"title":"Distributed Computation","titles":["Compute YAXArrays"]},"24":{"title":"Convert YAXArrays","titles":[]},"25":{"title":"Convert Base.Array","titles":["Convert YAXArrays"]},"26":{"title":"Convert Raster","titles":["Convert YAXArrays"]},"27":{"title":"Convert DimArray","titles":["Convert YAXArrays"]},"28":{"title":"Create YAXArrays and Datasets","titles":[]},"29":{"title":"Create a YAXArray","titles":["Create YAXArrays and Datasets"]},"30":{"title":"Create a Dataset","titles":["Create YAXArrays and Datasets"]},"31":{"title":"Frequently Asked Questions (FAQ)","titles":[]},"32":{"title":"Extract the axes names from a Cube","titles":["Frequently Asked Questions (FAQ)"]},"33":{"title":"rebuild","titles":["Frequently Asked Questions (FAQ)","Extract the axes names from a Cube"]},"34":{"title":"Obtain values from axes and data from the cube","titles":["Frequently Asked Questions (FAQ)"]},"35":{"title":"How do I concatenate cubes","titles":["Frequently Asked Questions (FAQ)"]},"36":{"title":"How do I subset a YAXArray ( Cube ) or Dataset?","titles":["Frequently Asked Questions (FAQ)"]},"37":{"title":"Subsetting a YAXArray","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"38":{"title":"Subsetting a Dataset","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"39":{"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"]},"40":{"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"]},"41":{"title":"How do I apply map algebra?","titles":["Frequently Asked Questions (FAQ)"]},"42":{"title":"How do I use the CubeTable function?","titles":["Frequently Asked Questions (FAQ)"]},"43":{"title":"How do I assign variable names to YAXArrays in a Dataset","titles":["Frequently Asked Questions (FAQ)"]},"44":{"title":"One variable name","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"45":{"title":"Multiple variable names","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"46":{"title":"Ho do I construct a Dataset from a TimeArray","titles":["Frequently Asked Questions (FAQ)"]},"47":{"title":"Create a YAXArray with unions containing Strings","titles":["Frequently Asked Questions (FAQ)"]},"48":{"title":"Group YAXArrays and Datasets","titles":[]},"49":{"title":"Seasonal Averages from Time Series of Monthly Means","titles":["Group YAXArrays and Datasets"]},"50":{"title":"Download the data","titles":["Group YAXArrays and Datasets"]},"51":{"title":"GroupBy: seasons","titles":["Group YAXArrays and Datasets"]},"52":{"title":"dropdims","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"53":{"title":"seasons","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"54":{"title":"GroupBy: weight","titles":["Group YAXArrays and Datasets"]},"55":{"title":"weights","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"56":{"title":"weighted seasons","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"57":{"title":"Read YAXArrays and Datasets","titles":[]},"58":{"title":"Read Zarr","titles":["Read YAXArrays and Datasets"]},"59":{"title":"Read NetCDF","titles":["Read YAXArrays and Datasets"]},"60":{"title":"Read GDAL (GeoTIFF, GeoJSON)","titles":["Read YAXArrays and Datasets"]},"61":{"title":"Load data into memory","titles":["Read YAXArrays and Datasets"]},"62":{"title":"readcubedata","titles":["Read YAXArrays and Datasets","Load data into memory"]},"63":{"title":"Select YAXArrays and Datasets","titles":[]},"64":{"title":"Select a YAXArray","titles":["Select YAXArrays and Datasets"]},"65":{"title":"Select elements","titles":["Select YAXArrays and Datasets"]},"66":{"title":"Select ranges","titles":["Select YAXArrays and Datasets"]},"67":{"title":"Closed and open intervals","titles":["Select YAXArrays and Datasets"]},"68":{"title":"Get a dimension","titles":["Select YAXArrays and Datasets"]},"69":{"title":"Types","titles":[]},"70":{"title":"YAXArray","titles":["Types"]},"71":{"title":"Dataset","titles":["Types"]},"72":{"title":"(Data) Cube","titles":["Types"]},"73":{"title":"Dimension","titles":["Types"]},"74":{"title":"Write YAXArrays and Datasets","titles":[]},"75":{"title":"Write Zarr","titles":["Write YAXArrays and Datasets"]},"76":{"title":"zarr compression","titles":["Write YAXArrays and Datasets","Write Zarr"]},"77":{"title":"Write NetCDF","titles":["Write YAXArrays and Datasets"]},"78":{"title":"netcdf compression","titles":["Write YAXArrays and Datasets","Write NetCDF"]},"79":{"title":"Overwrite a Dataset","titles":["Write YAXArrays and Datasets"]},"80":{"title":"Append to a Dataset","titles":["Write YAXArrays and Datasets"]},"81":{"title":"Save Skeleton","titles":["Write YAXArrays and Datasets"]},"82":{"title":"Update values of dataset","titles":["Write YAXArrays and Datasets"]},"83":{"title":"API Reference","titles":[]},"84":{"title":"Public API","titles":["API Reference"]},"85":{"title":"Internal API","titles":["API Reference"]},"86":{"title":"Contribute to YAXArrays.jl","titles":[]},"87":{"title":"Contribute to Documentation","titles":["Contribute to YAXArrays.jl"]},"88":{"title":"Build docs locally","titles":["Contribute to YAXArrays.jl","Contribute to Documentation"]},"89":{"title":"Getting Started","titles":[]},"90":{"title":"Installation","titles":["Getting Started"]},"91":{"title":"Quickstart","titles":["Getting Started"]},"92":{"title":"Updates","titles":["Getting Started"]},"93":{"title":"How to Install YAXArrays.jl?","titles":[]},"94":{"title":"Want interoperability?","titles":[]},"95":{"title":"Mean Seasonal Cycle for a single pixel","titles":[]},"96":{"title":"Define the cube","titles":["Mean Seasonal Cycle for a single pixel"]},"97":{"title":"Plot results: mean seasonal cycle","titles":["Mean Seasonal Cycle for a single pixel"]},"98":{"title":"Other tutorials","titles":[]},"99":{"title":"General overview of the functionality of YAXArrays","titles":["Other tutorials"]},"100":{"title":"Table-style iteration over YAXArrays","titles":["Other tutorials"]},"101":{"title":"Combining multiple tiff files into a zarr based datacube","titles":["Other tutorials"]},"102":{"title":"Plotting maps","titles":[]},"103":{"title":"Heatmap plot","titles":["Plotting maps"]},"104":{"title":"Wintri Projection","titles":[]},"105":{"title":"Moll projection","titles":["Wintri Projection"]},"106":{"title":"3D sphere plot","titles":["Wintri Projection"]}},"dirtCount":0,"index":[["δlon",{"2":{"104":1}}],["├─────────────────────┴─────────────────────────────────────────",{"2":{"47":1}}],["├─────────────────────────┴──────────────────────────",{"2":{"37":1}}],["├─────────────────────────┴─────────────────────────────────────",{"2":{"91":1}}],["├─────────────────────────┴──────────────────────────────────────",{"2":{"33":1}}],["├─────────────────────────┴──────────────────────────────────────────────",{"2":{"34":1,"42":1}}],["├─────────────────────────┴─────────────────────────────────────────",{"2":{"19":1}}],["├─────────────────────────┴──────────────────────────────────",{"2":{"27":2}}],["├─────────────────────────┴─────────────────────────────────",{"2":{"9":1}}],["├──────────────────────────┴────────────────────────────────────",{"2":{"25":1}}],["├──────────────────────────┴─────────────────────────────────────────────",{"2":{"22":1,"37":1}}],["├────────────────────────────┴───────────────────────────────────────────",{"2":{"37":2}}],["├─────────────────────────────┴──────────────────────────────────",{"2":{"29":1}}],["├─────────────────────────────┴──────────────────────────────────────────",{"2":{"16":1,"32":1}}],["├───────────────────────────────┴────────────────────────────────────────",{"2":{"55":1}}],["├──────────────────────────────────┴─────────────────────────────────────",{"2":{"96":1}}],["├────────────────────────────────────┴───────────────────────────────────",{"2":{"58":1}}],["├──────────────────────────────────────┴────────────────────────",{"2":{"47":1}}],["├────────────────────────────────────────",{"2":{"37":1}}],["├──────────────────────────────────────────┴─────────────────────────────",{"2":{"22":1,"42":1}}],["├─────────────────────────────────────────────┴─────────────────",{"2":{"65":1}}],["├───────────────────────────────────────────────┴────────────────────────",{"2":{"42":1,"66":1,"67":5}}],["├────────────────────────────────────────────────",{"2":{"27":1,"37":1}}],["├─────────────────────────────────────────────────",{"2":{"21":1}}],["├──────────────────────────────────────────────────┴─────────────────────",{"2":{"51":1}}],["├────────────────────────────────────────────────────",{"2":{"29":1,"33":1}}],["├────────────────────────────────────────────────────────",{"2":{"27":2}}],["├───────────────────────────────────────────────────────────",{"2":{"25":1,"47":2,"91":1}}],["├────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":3,"17":1,"18":1,"21":2,"22":2,"29":2,"32":1,"33":3,"34":1,"37":4,"41":3,"42":3,"54":1,"62":3,"81":1,"91":1,"96":1}}],["├─────────────────────────────────────────────────────────────────",{"2":{"65":1}}],["├──────────────────────────────────────────────────────────────────",{"2":{"51":1,"54":1}}],["├─────────────────────────────────────────────────────────────────────┴",{"2":{"65":1}}],["├────────────────────────────────────────────────────────────────────────",{"2":{"51":1,"52":1,"54":1,"55":1,"56":3}}],["├────────────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"21":2,"22":3,"29":1,"32":1,"33":2,"34":1,"35":1,"37":4,"41":3,"42":3,"51":2,"52":1,"54":3,"55":2,"56":3,"58":1,"59":1,"62":3,"64":2,"65":2,"66":3,"67":5,"81":1,"91":1,"96":1}}],["├───────────────────────────────────────────────────────────────",{"2":{"16":2,"19":1,"35":1,"58":1,"59":1,"64":2,"65":2,"66":3,"67":5}}],["├─────────────────────────────────────────────────────────────",{"2":{"8":1}}],["├───────────────────────────────────────────────────────",{"2":{"9":1,"19":1}}],["├─────────────────────────────────────────────────────",{"2":{"8":1}}],["├───────────────────────────────────────────────────",{"2":{"25":1,"47":2,"91":1}}],["├──────────────────────────────────────────────────",{"2":{"9":1}}],["├────────────────────────────────────────────────┴───────────────────────",{"2":{"14":1,"54":1,"59":1,"62":3,"64":2,"65":2}}],["├──────────────────────────────────────────────┴─────────────────────────",{"2":{"16":2,"41":1,"66":2}}],["├───────────────────────────────────────────┴────────────────────────────",{"2":{"14":1,"18":1,"21":1,"81":1}}],["├─────────────────────────────────────────",{"2":{"21":1}}],["├────────────────────────────────┴───────────────────────────────────────",{"2":{"35":1,"91":1}}],["├────────────────────────────────┴────────────────────────────────",{"2":{"8":1}}],["├──────────────────────────────┴─────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"16":2,"22":1,"29":1,"41":2,"54":1}}],["├───────────────────────────┴─────────────────────────",{"2":{"21":1}}],["├───────────────────────────┴────────────────────────────────────────────",{"2":{"17":1,"21":1,"22":1,"33":2,"37":1}}],["╭─────────────────────╮",{"2":{"47":1}}],["╭──────────────────────────╮",{"2":{"22":1,"25":1,"37":1}}],["╭────────────────────────────╮",{"2":{"37":2}}],["╭─────────────────────────────╮",{"2":{"16":1,"29":1,"32":1}}],["╭───────────────────────────────╮",{"2":{"55":1}}],["╭──────────────────────────────────╮",{"2":{"96":1}}],["╭────────────────────────────────────╮",{"2":{"58":1}}],["╭──────────────────────────────────────╮",{"2":{"47":1}}],["╭──────────────────────────────────────────╮",{"2":{"22":1,"42":1}}],["╭─────────────────────────────────────────────╮",{"2":{"65":1}}],["╭──────────────────────────────────────────────────────────────────────────────╮",{"2":{"51":1,"52":1,"54":1,"55":1,"56":3}}],["╭──────────────────────────────────────────────────╮",{"2":{"51":1}}],["╭────────────────────────────────────────────────╮",{"2":{"14":1,"54":1,"59":1,"62":3,"64":2,"65":2}}],["╭───────────────────────────────────────────────╮",{"2":{"42":1,"66":1,"67":5}}],["╭──────────────────────────────────────────────╮",{"2":{"16":2,"41":1,"66":2}}],["╭───────────────────────────────────────────╮",{"2":{"14":1,"18":1,"21":1,"81":1}}],["╭────────────────────────────────╮",{"2":{"8":1,"35":1,"91":1}}],["╭──────────────────────────────╮",{"2":{"10":1,"12":1,"13":1,"16":2,"22":1,"29":1,"41":2,"54":1}}],["╭───────────────────────────╮",{"2":{"17":1,"21":2,"22":1,"33":2,"37":1}}],["╭─────────────────────────╮",{"2":{"9":1,"19":1,"27":2,"33":1,"34":1,"37":1,"42":1,"91":1}}],["π",{"2":{"41":2,"95":1,"97":1}}],[">var",{"2":{"96":1}}],[">dates",{"2":{"96":1}}],[">month",{"2":{"84":1}}],[">abs",{"2":{"84":1}}],[">=",{"2":{"40":4}}],[">",{"2":{"40":2,"41":2,"96":1}}],["└──────────────────────────────────────────────────────────┘",{"2":{"37":1}}],["└───────────────────────────────────────────────────────────┘",{"2":{"21":1}}],["└──────────────────────────────────────────────────────────────────┘",{"2":{"27":2}}],["└──────────────────────────────────────────────────────────────────────┘",{"2":{"29":1,"33":1}}],["└────────────────────────────────────────────────────────────────────────────────┘",{"2":{"65":1}}],["└──────────────────────────────────────────────────────────────────────────────┘",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"21":2,"22":4,"29":1,"32":1,"33":2,"34":1,"35":1,"37":4,"41":3,"42":3,"51":2,"52":1,"54":3,"55":2,"56":3,"58":1,"59":1,"62":3,"64":2,"65":2,"66":3,"67":5,"81":1,"91":1,"96":1}}],["└─────────────────────────────────────────────────────────────────────────┘",{"2":{"19":1}}],["└───────────────────────────────────────────────────────────────────────┘",{"2":{"8":1}}],["└─────────────────────────────────────────────────────────────────────┘",{"2":{"25":1,"47":2,"91":1}}],["└─────────────────────────────────────────────────────────────────┘",{"2":{"9":1}}],["`diskarrays",{"2":{"85":1}}],["`ds`",{"2":{"84":1}}],["`ordereddict`",{"2":{"84":1}}],["`fun`",{"2":{"84":1}}],["`a",{"2":{"37":1}}],["`layer`",{"2":{"18":1}}],["quickstart",{"0":{"91":1}}],["query",{"2":{"63":1}}],["querying",{"2":{"62":1}}],["questions",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["quot",{"2":{"16":2,"42":2,"79":2,"81":4,"84":16,"85":12}}],["jj+1",{"2":{"59":1,"63":1,"74":1,"80":1}}],["jj",{"2":{"59":1,"63":1,"74":1,"80":1}}],["joinname",{"2":{"84":1}}],["joinname=",{"2":{"84":1}}],["journal",{"2":{"59":1,"63":1,"74":1,"80":1}}],["joe",{"2":{"49":1,"56":1}}],["j",{"2":{"56":8}}],["jan",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["jl",{"0":{"86":1,"93":1},"1":{"87":1,"88":1},"2":{"26":1,"27":1,"42":1,"46":2,"50":1,"56":1,"70":1,"73":1,"86":1,"88":2,"90":1,"91":2,"92":3,"93":2,"100":1}}],["jussieu",{"2":{"59":1,"63":1,"74":1,"80":1}}],["just",{"2":{"22":1,"70":1,"72":1,"84":1,"85":2}}],["jul",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["juliaδlon",{"2":{"104":1}}],["juliaglmakie",{"2":{"103":1}}],["juliagetloopchunks",{"2":{"85":1}}],["juliagetouttype",{"2":{"85":1}}],["juliagetoutaxis",{"2":{"85":1}}],["juliaget",{"2":{"85":1}}],["juliagetaxis",{"2":{"84":1}}],["juliagettarrayaxes",{"2":{"46":1}}],["juliagen",{"2":{"16":1}}],["juliax",{"2":{"95":1}}],["juliapkg>",{"2":{"90":1,"92":1,"93":1}}],["juliapermuteloopaxes",{"2":{"85":1}}],["juliaproperties",{"2":{"19":1}}],["juliaoptifunc",{"2":{"85":1}}],["juliaopen",{"2":{"84":1}}],["juliaoutdims",{"2":{"84":1}}],["juliaoffset",{"2":{"13":1}}],["juliacopydata",{"2":{"85":1}}],["juliacollect",{"2":{"34":1,"68":1}}],["juliaclean",{"2":{"85":1}}],["juliacube",{"2":{"84":1}}],["juliacubefittable",{"2":{"84":1}}],["juliacubetable",{"2":{"84":1}}],["juliacaxes",{"2":{"84":1}}],["julian",{"2":{"76":1,"78":1}}],["juliasavecube",{"2":{"84":1}}],["juliasavedataset",{"2":{"75":1,"77":1,"79":1}}],["juliasetchunks",{"2":{"84":1,"85":1}}],["juliaseasons",{"2":{"53":1}}],["julialon",{"2":{"102":1}}],["julialookup",{"2":{"68":1}}],["julialatitudes",{"2":{"40":1}}],["juliawith",{"2":{"56":1}}],["julia>",{"2":{"56":1,"88":1,"93":2,"96":2}}],["juliaurl",{"2":{"50":1}}],["juliausing",{"2":{"0":1,"2":1,"4":1,"5":1,"6":1,"8":1,"9":1,"10":1,"16":1,"17":1,"22":1,"23":2,"25":1,"26":1,"27":1,"29":2,"32":1,"33":1,"35":1,"37":1,"39":1,"40":1,"42":2,"46":1,"48":1,"56":1,"58":1,"59":1,"60":1,"63":1,"65":1,"67":1,"74":1,"75":1,"77":1,"81":1,"91":1,"94":4,"95":1,"102":1,"106":1}}],["juliakeylist",{"2":{"45":1}}],["juliaylonlat",{"2":{"37":1}}],["juliaytime3",{"2":{"37":1}}],["juliaytime2",{"2":{"37":1}}],["juliaytime",{"2":{"37":1}}],["juliay",{"2":{"37":1}}],["juliayaxcolumn",{"2":{"85":1}}],["juliayaxarray",{"2":{"84":1}}],["juliayax",{"2":{"0":1,"46":2}}],["juliatos",{"2":{"64":2,"65":2,"66":3,"67":1,"68":1}}],["juliatempo",{"2":{"54":1}}],["juliatest",{"2":{"47":2}}],["juliat",{"2":{"37":1,"42":1,"95":1}}],["juliatspan",{"2":{"16":1}}],["juliamutable",{"2":{"85":1}}],["juliamatch",{"2":{"85":1}}],["juliamapcube",{"2":{"84":2}}],["juliamapslices",{"2":{"14":1,"23":1}}],["juliamovingwindow",{"2":{"84":1}}],["juliamy",{"2":{"59":1}}],["juliamean",{"2":{"56":1}}],["juliam2",{"2":{"25":1}}],["julia",{"2":{"24":1,"59":1,"85":1,"88":1,"90":2,"91":1,"92":2,"93":2}}],["juliavector",{"2":{"22":1}}],["juliadataset",{"2":{"84":1}}],["juliadata3",{"2":{"30":1}}],["juliadim",{"2":{"27":1}}],["juliadimarray",{"2":{"22":1}}],["juliads2",{"2":{"80":1}}],["juliads",{"2":{"18":2,"20":2,"21":1,"39":1,"40":1,"58":1,"59":1,"62":2,"78":1,"81":2,"82":3}}],["juliar",{"2":{"81":1}}],["juliareadcubedata",{"2":{"62":1,"84":1}}],["juliaregions",{"2":{"22":2}}],["juliaras2",{"2":{"26":1}}],["juliarandom",{"2":{"21":2}}],["juliaindims",{"2":{"18":1,"20":1,"84":1}}],["juliaimport",{"2":{"14":1,"90":1}}],["juliajulia>",{"2":{"16":5,"32":3,"33":2,"34":1,"35":1,"41":3,"42":3,"44":1,"45":1,"46":2,"51":2,"52":1,"54":2,"55":2,"56":3,"67":4,"80":1,"81":1,"93":1,"96":2,"102":3}}],["juliaall",{"2":{"81":1}}],["juliaaxs",{"2":{"50":1}}],["juliaaxes",{"2":{"37":1}}],["juliaa2",{"2":{"12":2,"29":2,"91":1}}],["juliaa",{"2":{"2":1,"11":3}}],["juliafig",{"2":{"95":1,"97":1,"104":1,"105":1}}],["juliafindaxis",{"2":{"85":1}}],["juliafiles",{"2":{"84":2}}],["juliafittable",{"2":{"84":2}}],["juliafunction",{"2":{"16":1,"18":1,"19":1,"21":1,"51":1,"84":1,"96":1}}],["juliaf",{"2":{"2":1,"4":1,"5":1,"6":1,"16":1}}],["jun",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["∘",{"2":{"23":1}}],["|>",{"2":{"22":2}}],["⋱",{"2":{"22":1}}],["⋮",{"2":{"22":2,"68":1,"96":1}}],["^2",{"2":{"21":1}}],["⬔",{"2":{"17":1,"18":1,"35":1,"91":1}}],["991786",{"2":{"91":1}}],["990276",{"2":{"91":1}}],["922125",{"2":{"91":1}}],["926096",{"2":{"27":1}}],["9538",{"2":{"91":1}}],["953391",{"2":{"27":1}}],["95",{"2":{"56":1}}],["959",{"2":{"56":1}}],["971131",{"2":{"91":1}}],["97649",{"2":{"56":1}}],["97047",{"2":{"56":1}}],["973332",{"2":{"27":1}}],["948244",{"2":{"82":2}}],["94534",{"2":{"56":1}}],["9404",{"2":{"51":1,"52":1}}],["9432",{"2":{"51":1,"52":1}}],["949935",{"2":{"25":1}}],["986",{"2":{"56":1}}],["98",{"2":{"40":6}}],["984803",{"2":{"22":1}}],["90712",{"2":{"56":1}}],["90365",{"2":{"56":1}}],["90",{"2":{"40":2,"60":1,"67":5}}],["9122",{"2":{"60":1}}],["9192",{"2":{"56":1}}],["91",{"2":{"32":1,"67":5}}],["916686",{"2":{"27":1}}],["918555",{"2":{"25":1}}],["935884",{"2":{"91":1}}],["935631",{"2":{"25":1}}],["939296",{"2":{"91":1}}],["93986",{"2":{"22":1}}],["9375",{"2":{"58":2,"102":1}}],["93743",{"2":{"56":1}}],["9362",{"2":{"56":1}}],["9",{"2":{"16":14,"22":2,"34":1,"37":1,"54":4,"66":4,"76":2,"78":1,"85":1}}],["961913",{"2":{"91":1}}],["96x71x19",{"2":{"59":1,"63":1,"74":1,"80":1}}],["96f0",{"2":{"59":1,"63":1,"74":1}}],["9682",{"2":{"51":1,"52":1}}],["960",{"2":{"17":1,"18":1,"22":1}}],["96",{"2":{"8":1,"9":1,"40":6,"65":2,"80":1}}],["891257",{"2":{"82":2}}],["8901",{"2":{"60":1}}],["89",{"2":{"58":4,"59":2,"60":1,"62":3,"63":1,"64":2,"65":1,"66":1,"67":5,"68":1,"74":1,"80":1,"102":2}}],["8984",{"2":{"56":1}}],["89237",{"2":{"56":1}}],["860688",{"2":{"82":2}}],["86",{"2":{"68":1}}],["86457",{"2":{"56":1}}],["862644",{"2":{"27":1}}],["855984",{"2":{"91":1}}],["85",{"2":{"68":1,"104":1,"105":1}}],["850",{"2":{"56":1}}],["85ºn",{"2":{"40":1}}],["85714",{"2":{"22":1}}],["88",{"2":{"35":1,"58":4,"68":1,"91":1,"102":2}}],["889583",{"2":{"22":1}}],["816865",{"2":{"91":1}}],["81",{"2":{"29":1,"68":1}}],["839919",{"2":{"91":1}}],["83",{"2":{"68":1}}],["830391",{"2":{"25":1}}],["83556",{"2":{"25":1}}],["87",{"2":{"68":1}}],["87705",{"2":{"56":1}}],["872575",{"2":{"27":1}}],["870826",{"2":{"25":1}}],["875658",{"2":{"22":1}}],["84",{"2":{"60":2,"68":1}}],["845983",{"2":{"25":1}}],["840389",{"2":{"22":1}}],["8256",{"2":{"91":1}}],["82",{"2":{"68":1}}],["82421875",{"2":{"60":2}}],["824354",{"2":{"22":1}}],["829062",{"2":{"22":1}}],["8",{"2":{"16":12,"22":2,"34":1,"37":1,"59":2,"62":3,"63":1,"64":2,"74":1,"80":1,"96":1}}],["80759",{"2":{"56":1}}],["800",{"2":{"33":3,"34":1,"37":1}}],["80",{"2":{"16":1,"40":2}}],["v",{"2":{"59":1,"63":1,"74":1,"80":1}}],["v1",{"2":{"59":2,"63":2,"74":2,"80":2,"90":1}}],["v20190710",{"2":{"58":1,"102":2}}],["vol",{"2":{"59":1,"63":1,"74":1,"80":1}}],["volume",{"2":{"46":4}}],["voilà",{"2":{"46":1}}],["video",{"2":{"98":1}}],["videos",{"2":{"98":1}}],["visualization",{"2":{"42":1}}],["vice",{"2":{"24":1}}],["view",{"2":{"22":1,"91":1}}],["version",{"2":{"58":1,"59":1,"63":1,"74":1,"80":1,"84":1,"92":2,"93":1,"102":1}}],["versa",{"2":{"24":1}}],["verify",{"2":{"55":1,"82":1}}],["very",{"2":{"13":1,"42":1,"70":1}}],["vector",{"0":{"22":1},"2":{"22":4,"34":1,"47":1,"51":1,"53":1,"54":2,"55":2,"56":1,"68":1,"70":1,"84":2,"85":3}}],["val",{"2":{"34":2,"68":1}}],["vals",{"2":{"22":1}}],["value",{"2":{"12":1,"14":3,"16":2,"41":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"84":4,"85":1}}],["values=ds1",{"2":{"42":1}}],["values",{"0":{"34":1,"82":1},"2":{"9":1,"20":1,"21":1,"22":2,"28":1,"29":2,"32":2,"33":1,"34":1,"40":3,"42":4,"45":1,"46":2,"66":1,"68":2,"70":1,"71":1,"81":1,"82":3,"84":9,"91":1,"102":1}}],["varoables",{"2":{"84":1}}],["variant",{"2":{"58":1,"102":1}}],["variable",{"0":{"5":1,"43":1,"44":1,"45":1},"1":{"44":1,"45":1},"2":{"5":1,"9":1,"40":3,"58":1,"62":2,"81":2,"84":1,"85":6,"91":1,"95":1,"96":1,"97":1,"102":1}}],["variables=at",{"2":{"41":2,"91":1}}],["variables",{"0":{"6":1,"39":1,"40":1},"2":{"4":5,"5":4,"6":2,"9":4,"17":2,"18":1,"19":1,"20":1,"21":1,"24":1,"30":1,"35":2,"38":1,"39":2,"40":11,"44":1,"45":4,"46":11,"58":4,"59":1,"60":1,"61":1,"62":1,"63":1,"71":1,"72":1,"74":1,"80":4,"81":1,"84":5,"85":1,"91":2,"102":4}}],["varlist",{"2":{"45":2}}],["var2=var2",{"2":{"39":1}}],["var2",{"2":{"35":2,"39":3,"41":1}}],["var1=var1",{"2":{"39":1}}],["var1",{"2":{"35":2,"39":3,"41":1}}],["var",{"2":{"9":2,"95":2,"96":2,"97":2}}],["uv",{"2":{"106":1}}],["u",{"2":{"96":1}}],["up",{"2":{"84":1}}],["updates",{"0":{"92":1}}],["updated",{"2":{"82":1}}],["update",{"0":{"82":1},"2":{"82":2,"84":1}}],["updating",{"2":{"48":1,"82":1}}],["ucar",{"2":{"59":1,"63":1,"71":1,"74":1}}],["urls",{"2":{"57":1}}],["url",{"2":{"50":1,"58":1}}],["unreleased",{"2":{"93":1}}],["unpermuted",{"2":{"85":2}}],["unpractical",{"2":{"50":1}}],["underlying",{"2":{"84":1,"85":1,"92":1}}],["unlike",{"2":{"72":1}}],["unique",{"2":{"96":1}}],["unidata",{"2":{"59":1,"63":1,"71":1,"74":1}}],["unit",{"2":{"60":1}}],["units",{"2":{"58":1,"59":2,"62":6,"64":4,"65":6,"66":6,"67":10}}],["unitrange",{"2":{"51":2,"52":2,"56":6}}],["unions",{"0":{"47":1}}],["union",{"2":{"14":2,"16":4,"18":2,"20":1,"21":1,"22":1,"41":1,"42":2,"47":2,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":2,"82":1}}],["unweighted",{"2":{"51":1,"56":1}}],["unordered",{"2":{"46":4,"51":2,"52":1,"53":1,"54":2,"55":2,"56":3}}],["unnecessary",{"2":{"22":1}}],["unchanged",{"2":{"13":1}}],["usually",{"2":{"58":1,"70":2,"71":2}}],["usual",{"2":{"51":1}}],["us",{"2":{"22":1}}],["useable",{"2":{"84":1}}],["used",{"2":{"22":1,"23":1,"37":1,"63":1,"68":1,"69":1,"70":1,"73":1,"84":6,"85":3}}],["uses",{"2":{"20":1,"42":1,"59":1}}],["userguide",{"2":{"87":2}}],["users",{"2":{"85":1}}],["user",{"2":{"10":2,"12":1,"13":1,"23":1,"29":3,"30":1,"85":1}}],["use",{"0":{"42":1},"2":{"0":1,"8":1,"9":1,"10":4,"13":1,"23":2,"32":2,"37":1,"39":1,"40":1,"41":1,"42":2,"46":2,"48":1,"50":1,"52":1,"61":1,"67":2,"72":1,"76":1,"81":1,"84":4,"85":1,"93":1,"98":1,"100":1,"102":2}}],["useful",{"2":{"0":1,"72":1}}],["using",{"2":{"0":1,"8":2,"9":2,"10":2,"16":3,"17":4,"22":3,"23":8,"27":1,"29":1,"32":1,"33":2,"35":2,"37":2,"39":2,"40":2,"41":1,"42":1,"46":3,"48":5,"58":2,"59":3,"60":2,"61":1,"63":2,"65":3,"66":2,"74":2,"80":1,"81":3,"91":1,"92":1,"93":1,"95":2,"96":2,"102":3}}],["+proj=moll",{"2":{"105":1}}],["+",{"2":{"12":2,"13":1,"16":2,"18":2,"21":1,"95":1,"104":1}}],["kwargs",{"2":{"84":5,"85":2}}],["know",{"2":{"62":1}}],["k",{"2":{"46":5,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["keyword",{"2":{"80":1,"84":6,"85":2}}],["key",{"2":{"48":1,"84":1}}],["keyset",{"2":{"46":1}}],["keys",{"2":{"46":7,"84":1}}],["keylist",{"2":{"45":1}}],["keeps",{"2":{"13":1}}],["keep",{"2":{"0":1,"85":1}}],["kb",{"2":{"10":1,"12":1,"13":1,"14":1,"16":2,"22":1,"29":2,"32":1,"35":1,"37":4,"41":3,"42":1,"65":1,"66":3,"67":5,"91":1,"96":1}}],["↗",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"18":1,"19":1,"20":1,"21":3,"22":1,"29":3,"30":1,"32":3,"35":1,"37":5,"39":2,"41":3,"51":1,"58":2,"59":2,"62":3,"63":1,"64":2,"66":3,"67":5,"74":1,"80":2,"81":2,"91":1,"102":1}}],["046745",{"2":{"91":1}}],["0465",{"2":{"56":1}}],["0e8",{"2":{"84":1}}],["02",{"2":{"58":1}}],["0210077",{"2":{"25":1}}],["0214057",{"2":{"25":1}}],["0f20",{"2":{"58":1,"59":2,"62":6,"64":4,"65":6,"66":6,"67":10}}],["0f32",{"2":{"16":2}}],["030090414984429516",{"2":{"96":1}}],["03361",{"2":{"56":1}}],["0358348",{"2":{"25":1}}],["0617443331324013",{"2":{"96":1}}],["0625",{"2":{"58":2,"102":1}}],["0620649",{"2":{"27":1}}],["062032476785460866",{"2":{"11":1}}],["06755",{"2":{"56":1}}],["08536931940151503",{"2":{"96":1}}],["0893687",{"2":{"91":1}}],["0887544",{"2":{"82":2}}],["08",{"2":{"54":1}}],["09779224328472132",{"2":{"96":1}}],["0900259",{"2":{"91":1}}],["09",{"2":{"54":1}}],["0ºe",{"2":{"40":1}}],["07565180270644235",{"2":{"96":1}}],["0766027",{"2":{"91":1}}],["07",{"2":{"58":2,"102":1}}],["0702532",{"2":{"27":1}}],["0723492",{"2":{"22":1}}],["0012862484521267356",{"2":{"96":1}}],["00372526",{"2":{"91":1}}],["00388",{"2":{"56":1}}],["00277787",{"2":{"82":2}}],["00722034",{"2":{"56":1}}],["00709111",{"2":{"56":1}}],["006364171431821925",{"2":{"96":1}}],["00684233",{"2":{"56":1}}],["00693713",{"2":{"56":1}}],["00990356",{"2":{"56":1}}],["0057",{"2":{"56":1}}],["00",{"2":{"20":4,"46":16,"54":4,"58":9,"59":8,"62":12,"63":4,"64":8,"65":8,"66":12,"67":20,"74":4,"80":4,"102":5}}],["05203842202056678",{"2":{"96":1}}],["052264",{"2":{"27":1}}],["0586963181904983",{"2":{"96":1}}],["05846",{"2":{"56":1}}],["0537",{"2":{"51":1,"52":1}}],["0566881",{"2":{"27":1}}],["05t00",{"2":{"20":1}}],["05",{"2":{"17":2,"18":1,"21":3,"37":3}}],["019199882044045064",{"2":{"96":1}}],["019016",{"2":{"56":1}}],["0174532925199433",{"2":{"60":1}}],["0178074",{"2":{"56":1}}],["01t03",{"2":{"58":2,"102":1}}],["01t00",{"2":{"20":1,"46":4,"58":2,"102":1}}],["0118366",{"2":{"91":1}}],["0117519",{"2":{"56":1}}],["0115514",{"2":{"56":1}}],["0127077",{"2":{"56":1}}],["0123091",{"2":{"56":1}}],["0121037",{"2":{"56":1}}],["018571",{"2":{"56":1}}],["0182373",{"2":{"56":1}}],["0180572",{"2":{"56":1}}],["0183003",{"2":{"56":1}}],["018",{"2":{"51":1,"52":1}}],["01",{"2":{"10":6,"12":3,"13":3,"14":3,"16":12,"17":6,"18":3,"20":2,"21":9,"22":9,"23":3,"29":9,"30":3,"37":22,"39":8,"40":11,"46":8,"58":5,"59":4,"62":6,"63":2,"64":4,"65":6,"66":6,"67":10,"74":2,"80":2,"95":2,"96":4,"102":5}}],["0",{"2":{"8":1,"9":1,"10":6,"11":2,"12":6,"13":6,"14":7,"16":303,"17":7,"18":7,"19":7,"20":6,"21":10,"22":75,"25":36,"27":45,"29":12,"30":6,"33":3,"34":1,"35":9,"37":1,"40":4,"41":27,"42":11,"47":2,"54":2,"55":40,"56":19,"58":7,"59":10,"60":6,"62":12,"63":6,"64":8,"65":6,"66":14,"67":20,"68":6,"74":6,"76":1,"78":1,"79":1,"80":6,"81":1,"82":40,"84":2,"85":1,"91":80,"92":1,"95":2,"96":19,"97":1,"102":4,"104":2,"105":2,"106":2}}],["┤",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":2,"18":2,"19":2,"21":6,"22":5,"25":2,"27":3,"29":4,"32":2,"33":6,"34":2,"35":2,"37":10,"41":6,"42":6,"47":4,"51":4,"52":2,"54":6,"55":3,"56":6,"58":2,"59":2,"62":6,"64":4,"65":5,"66":6,"67":10,"81":2,"91":4,"96":2}}],["┐",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":4,"25":1,"27":2,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"47":2,"51":1,"54":2,"55":1,"58":1,"59":1,"62":3,"64":2,"65":4,"66":3,"67":5,"81":1,"91":2,"96":1}}],["│",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":2,"18":2,"19":2,"21":6,"22":8,"25":2,"27":4,"29":4,"32":2,"33":6,"34":2,"35":2,"37":10,"41":6,"42":6,"47":4,"51":4,"52":2,"54":6,"55":4,"56":6,"58":2,"59":2,"62":6,"64":4,"65":6,"66":6,"67":10,"81":2,"91":4,"96":2}}],["72",{"2":{"68":1}}],["76",{"2":{"68":1}}],["709999",{"2":{"91":1}}],["70",{"2":{"66":3,"68":1}}],["7030",{"2":{"60":1}}],["701332",{"2":{"22":1}}],["730",{"2":{"97":1}}],["735264",{"2":{"91":1}}],["733172",{"2":{"91":1}}],["738327",{"2":{"91":1}}],["7341",{"2":{"56":1}}],["73",{"2":{"56":1,"68":1}}],["731779",{"2":{"27":1}}],["79",{"2":{"59":2,"62":3,"63":1,"64":2,"65":2,"66":4,"67":5,"68":1,"74":1,"80":1}}],["79502",{"2":{"56":1}}],["796375",{"2":{"27":1}}],["75",{"2":{"68":1}}],["7593",{"2":{"56":1}}],["75891",{"2":{"56":1}}],["75269",{"2":{"25":1}}],["752417",{"2":{"22":1}}],["771179",{"2":{"91":1}}],["771583",{"2":{"91":1}}],["778954",{"2":{"91":1}}],["77",{"2":{"68":1}}],["77687",{"2":{"56":1}}],["77587",{"2":{"56":1}}],["770949",{"2":{"27":1}}],["749822",{"2":{"91":1}}],["74",{"2":{"68":1}}],["744521",{"2":{"27":1}}],["74732",{"2":{"25":1}}],["711506",{"2":{"91":1}}],["7119",{"2":{"51":1,"52":1}}],["719692",{"2":{"82":2}}],["717",{"2":{"67":5}}],["71",{"2":{"66":1,"68":1}}],["7158",{"2":{"51":1,"52":1}}],["718667",{"2":{"27":1}}],["71314",{"2":{"27":1}}],["71429",{"2":{"22":2}}],["783581",{"2":{"91":1}}],["781572",{"2":{"82":2}}],["781773",{"2":{"22":1}}],["782494",{"2":{"82":2}}],["78",{"2":{"66":1,"68":1}}],["78467",{"2":{"25":1}}],["789891",{"2":{"25":1}}],["7",{"2":{"8":1,"16":10,"21":3,"22":1,"29":1,"34":1,"58":1,"78":1,"102":1}}],["→",{"2":{"4":1,"5":1,"6":1,"9":1,"10":1,"12":1,"13":1,"14":1,"16":2,"17":1,"18":1,"19":1,"20":1,"21":3,"22":6,"25":1,"27":3,"29":3,"30":1,"32":3,"33":3,"34":1,"35":1,"37":6,"39":2,"40":2,"41":3,"42":2,"45":2,"46":4,"47":2,"51":1,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":1,"66":3,"67":5,"74":1,"80":2,"81":2,"91":2,"102":1}}],["↓",{"2":{"4":3,"5":3,"6":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"20":1,"21":3,"22":6,"25":1,"27":3,"29":3,"30":1,"32":3,"33":3,"34":1,"35":1,"37":6,"39":2,"40":8,"41":3,"42":3,"44":1,"45":3,"46":4,"47":2,"51":3,"52":1,"54":4,"55":2,"56":3,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":2,"81":2,"91":2,"96":2,"102":1}}],["457345",{"2":{"91":1}}],["45015",{"2":{"91":1}}],["45354",{"2":{"91":1}}],["45×170×24",{"2":{"67":5}}],["456765",{"2":{"25":1}}],["48",{"2":{"91":1}}],["48367",{"2":{"56":1}}],["480",{"2":{"21":2,"42":1}}],["414006",{"2":{"82":2}}],["4198",{"2":{"56":1}}],["41241",{"2":{"56":1}}],["41049",{"2":{"56":1}}],["41634",{"2":{"56":1}}],["417937",{"2":{"22":1}}],["405317",{"2":{"91":1}}],["409244",{"2":{"91":1}}],["40",{"2":{"40":2}}],["400731",{"2":{"91":1}}],["400",{"2":{"25":1,"81":1,"95":1,"97":1}}],["44",{"2":{"37":1,"41":3}}],["49909",{"2":{"56":1}}],["4947",{"2":{"56":1}}],["492817",{"2":{"27":1}}],["497189",{"2":{"22":1}}],["4326",{"2":{"60":1}}],["43254",{"2":{"56":1}}],["4325",{"2":{"51":1,"52":1}}],["432286",{"2":{"22":1}}],["435994",{"2":{"27":1}}],["475594",{"2":{"91":1}}],["475725",{"2":{"27":1}}],["472308",{"2":{"22":1}}],["4×30",{"2":{"22":1}}],["4×3×7",{"2":{"21":1}}],["4×3×2",{"2":{"19":1}}],["46506",{"2":{"56":1}}],["465103",{"2":{"22":1}}],["46",{"2":{"35":1,"91":1}}],["463503",{"2":{"22":1}}],["427021",{"2":{"91":1}}],["426519",{"2":{"25":1}}],["42857",{"2":{"22":2}}],["42",{"2":{"11":3}}],["4",{"2":{"4":4,"5":4,"16":4,"17":4,"18":2,"19":2,"20":1,"21":8,"22":9,"27":1,"34":1,"35":1,"40":6,"51":2,"52":1,"53":1,"54":2,"55":2,"56":4,"81":3,"82":2,"91":3,"95":1,"97":1}}],["3d",{"0":{"106":1}}],["3hr",{"2":{"58":2,"102":3}}],["34818",{"2":{"56":1}}],["34832",{"2":{"56":1}}],["348362",{"2":{"25":1}}],["34549",{"2":{"56":1}}],["34218",{"2":{"56":1}}],["33565",{"2":{"56":1}}],["337926",{"2":{"25":1}}],["32876",{"2":{"91":1}}],["32555",{"2":{"56":1}}],["3252",{"2":{"51":1,"52":1}}],["32149",{"2":{"56":1}}],["3×3",{"2":{"47":1}}],["3×20",{"2":{"42":1}}],["384×192×251288",{"2":{"58":1}}],["3866",{"2":{"56":1}}],["38364",{"2":{"56":1}}],["3835",{"2":{"51":1,"52":1}}],["38",{"2":{"37":1,"66":3}}],["319698",{"2":{"91":1}}],["312",{"2":{"56":1}}],["31753",{"2":{"56":1}}],["3169",{"2":{"56":1}}],["3188",{"2":{"56":1}}],["31",{"2":{"37":2,"39":1,"40":1,"95":1,"96":2}}],["366",{"2":{"97":1}}],["366625",{"2":{"27":1}}],["365×1",{"2":{"96":1}}],["365",{"2":{"96":1,"97":4}}],["360748",{"2":{"91":1}}],["3600",{"2":{"37":1,"39":2}}],["363668",{"2":{"82":2}}],["36126",{"2":{"56":1}}],["36142",{"2":{"56":1}}],["36836",{"2":{"56":1}}],["369",{"2":{"40":1}}],["36",{"2":{"37":1,"39":2,"40":1,"54":1}}],["364288",{"2":{"25":1}}],["37",{"2":{"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1}}],["372",{"2":{"56":1}}],["372761",{"2":{"22":1}}],["37878",{"2":{"56":1}}],["376135",{"2":{"22":1}}],["35700351866494",{"2":{"58":4,"102":2}}],["35432",{"2":{"56":1}}],["35483",{"2":{"56":1}}],["359",{"2":{"40":1,"58":2,"59":2,"62":3,"63":1,"64":2,"65":1,"68":2,"74":1,"80":1,"102":1}}],["35",{"2":{"10":1,"12":1,"13":1,"22":1,"29":1}}],["307f8f0e584a39a050c042849004e6a2bd674f99",{"2":{"60":1}}],["3069",{"2":{"56":1}}],["30018",{"2":{"56":1}}],["30142",{"2":{"56":1}}],["30113",{"2":{"56":1}}],["30×15×10",{"2":{"16":1}}],["30×10×15",{"2":{"10":1,"12":1,"13":1,"22":1,"29":1}}],["30",{"2":{"10":3,"12":1,"13":1,"14":2,"16":5,"22":5,"23":2,"26":2,"29":4,"30":2,"56":2,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"102":1}}],["395451",{"2":{"91":1}}],["391546",{"2":{"91":1}}],["39",{"2":{"10":1,"16":3,"18":1,"19":1,"33":1,"35":1,"37":1,"39":1,"40":1,"41":2,"56":1,"61":1,"62":1,"63":1,"73":1,"76":1,"84":2,"87":4,"96":3}}],["3",{"2":{"4":8,"5":8,"6":10,"10":1,"11":3,"12":3,"13":2,"16":4,"17":3,"18":1,"19":3,"20":1,"21":14,"22":6,"27":1,"29":3,"32":5,"34":1,"37":4,"41":4,"42":5,"46":1,"47":2,"51":2,"56":31,"58":1,"59":1,"62":3,"64":2,"66":4,"67":5,"80":1,"81":3,"84":1,"91":3,"95":2}}],["zoom",{"2":{"106":1}}],["zopen",{"2":{"58":1,"82":1,"102":1}}],["zeros",{"2":{"81":3,"96":1}}],["z",{"2":{"4":2,"5":3,"6":2,"80":2}}],["zarray",{"2":{"82":1}}],["zarr",{"0":{"58":1,"75":1,"76":1,"101":1},"1":{"76":1},"2":{"0":1,"2":2,"4":2,"5":2,"6":2,"16":5,"17":1,"20":2,"23":1,"27":1,"47":1,"58":3,"75":5,"76":5,"79":3,"80":4,"81":6,"82":2,"84":2,"85":2,"94":2,"102":1}}],["xticklabelalign",{"2":{"95":1,"97":1}}],["xticklabelrotation",{"2":{"95":1,"97":1}}],["xlabel=",{"2":{"95":1,"97":1}}],["xx",{"2":{"59":1,"63":1,"74":1,"80":1}}],["xarray",{"2":{"49":1,"50":1}}],["x26",{"2":{"22":12,"40":12}}],["x3c",{"2":{"22":12,"40":4,"84":1}}],["xyz",{"2":{"21":2}}],["xy",{"2":{"19":2}}],["xyt",{"2":{"19":2,"21":2}}],["xin",{"2":{"18":8,"19":11,"21":8,"22":3,"41":3}}],["xout",{"2":{"16":2,"18":6,"19":6,"21":2,"22":3}}],["x",{"2":{"4":2,"5":3,"6":2,"13":2,"26":1,"27":3,"41":4,"47":2,"51":2,"52":1,"56":3,"60":1,"70":1,"82":2,"85":1,"91":3,"95":1,"96":6}}],["ndata",{"2":{"104":2,"105":1,"106":1}}],["ndays",{"2":{"96":4}}],["nlon",{"2":{"104":2,"105":1}}],["npy",{"2":{"95":2,"96":2}}],["nin",{"2":{"85":2}}],["ntr",{"2":{"85":1}}],["ntuple",{"2":{"85":4}}],["nthreads",{"2":{"84":2}}],["nvalid",{"2":{"84":1}}],["n",{"2":{"69":1,"84":3}}],["n256",{"2":{"56":1}}],["nan",{"2":{"50":1,"51":48,"52":48,"56":384}}],["name=cube",{"2":{"84":1}}],["named",{"2":{"63":1,"65":1,"66":1,"70":1,"84":2,"92":1}}],["namedtuple",{"2":{"18":1,"20":1,"84":1,"85":3}}],["names",{"0":{"21":1,"32":1,"43":1,"45":1},"1":{"33":1,"44":1,"45":1},"2":{"29":2,"46":1,"53":1,"70":2,"84":2,"85":1}}],["namely",{"2":{"16":1,"17":1}}],["name",{"0":{"44":1},"2":{"2":1,"18":4,"20":1,"45":1,"56":1,"58":3,"59":4,"62":12,"64":8,"65":12,"66":12,"67":20,"73":1,"81":2,"84":6,"85":5,"91":1}}],["nc",{"2":{"50":2,"59":2,"63":2,"74":2,"77":2,"78":3,"84":6}}],["number",{"2":{"49":1,"54":1,"76":1,"78":1,"84":2,"85":1,"96":1}}],["numbers",{"2":{"10":1,"91":1}}],["nout",{"2":{"85":2}}],["normal",{"2":{"84":1,"106":1}}],["north",{"2":{"60":1}}],["nometadata",{"2":{"51":3,"52":2,"54":1,"55":1,"56":10}}],["november",{"2":{"59":1,"63":1,"74":1,"80":1}}],["nov",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["nonmissingtype",{"2":{"85":1}}],["none",{"2":{"40":2,"45":1,"46":1,"58":1,"80":1,"102":1}}],["non",{"2":{"23":1,"84":1,"85":1,"95":1}}],["now",{"2":{"16":3,"18":1,"22":1,"33":1,"35":1,"37":1,"42":1,"46":1,"51":1,"52":1,"54":1,"56":1,"81":2,"82":1,"88":1}}],["no",{"2":{"14":1,"21":1,"27":1,"36":1,"76":1,"78":1,"81":1,"84":1,"85":1}}],["notice",{"2":{"76":1}}],["notation",{"2":{"37":1,"67":1}}],["nothing",{"2":{"18":1,"19":1,"21":1,"51":2,"54":2,"55":2,"56":5,"79":1,"84":1,"85":1}}],["note",{"2":{"9":1,"13":1,"16":4,"18":1,"21":1,"22":1,"33":1,"40":1,"47":1,"52":1,"59":1,"62":1,"81":1,"84":1,"85":1}}],["not",{"0":{"40":1},"2":{"0":1,"1":1,"13":1,"36":1,"40":3,"45":1,"46":2,"47":1,"50":1,"59":1,"81":2,"84":3,"85":3}}],["neighbour",{"2":{"84":1}}],["neighboring",{"2":{"13":1}}],["near",{"2":{"58":2,"67":1,"102":1}}],["needed",{"2":{"84":1}}],["need",{"2":{"45":1,"82":1,"84":1,"85":1,"87":1}}],["next",{"2":{"41":1,"42":1,"53":1,"88":2}}],["netcdf4",{"2":{"59":1}}],["netcdf",{"0":{"59":1,"77":1,"78":1},"1":{"78":1},"2":{"27":1,"47":1,"48":2,"59":4,"61":1,"63":2,"71":3,"74":2,"77":3,"78":2,"79":1,"84":2,"94":2}}],["necessary",{"2":{"16":1,"49":1,"50":1,"82":1,"85":4}}],["newdim",{"2":{"84":1}}],["new",{"0":{"9":1},"2":{"10":1,"12":1,"16":1,"29":1,"32":1,"33":3,"48":1,"50":1,"53":1,"72":1,"79":1,"80":1,"81":1,"84":5,"85":4,"87":6,"96":1}}],["bits",{"2":{"84":2}}],["big",{"2":{"70":1}}],["black",{"2":{"97":1}}],["blocks",{"2":{"84":1}}],["blosccompressor",{"2":{"76":1}}],["blue",{"2":{"60":1,"71":1}}],["bonito",{"2":{"106":1}}],["boundaries",{"2":{"85":1}}],["bounds",{"2":{"84":1}}],["bold",{"2":{"56":1}}],["bool=true",{"2":{"85":1}}],["bool=false",{"2":{"84":1,"85":1}}],["boolean",{"2":{"84":3}}],["bool",{"2":{"47":3,"85":6}}],["bwr",{"2":{"56":1}}],["b`",{"2":{"37":1}}],["broad",{"2":{"99":1}}],["broadcasts",{"2":{"85":1}}],["broadcast",{"2":{"51":1,"56":1}}],["broadcasted",{"2":{"16":2,"84":1,"85":1}}],["brown",{"2":{"97":1}}],["browser",{"2":{"88":1}}],["brightness",{"2":{"70":1,"71":1}}],["brings",{"2":{"85":1}}],["bring",{"2":{"34":1}}],["branch",{"2":{"58":1,"102":1}}],["bug",{"2":{"86":1}}],["bundle",{"2":{"71":1}}],["build",{"0":{"88":1},"2":{"32":1,"88":1}}],["but",{"0":{"40":1},"2":{"8":1,"16":2,"32":1,"33":2,"40":2,"45":1,"46":2,"59":1,"65":1,"66":1,"84":2}}],["b",{"2":{"17":2,"18":1,"19":1,"20":1,"22":13,"45":2,"67":2,"84":2}}],["backgroundcolor=",{"2":{"106":1}}],["back",{"2":{"84":1}}],["backend",{"2":{"79":2,"84":8}}],["backendlist",{"2":{"48":1,"84":1}}],["backend=",{"2":{"2":1,"16":2,"80":1}}],["based",{"0":{"101":1},"2":{"84":1,"85":1}}],["base",{"0":{"25":1},"2":{"4":4,"5":4,"6":2,"18":1,"20":1,"25":4,"29":3,"32":9,"33":6,"44":1,"45":5,"47":4,"81":6,"85":1,"91":2}}],["by=",{"2":{"42":2,"84":2}}],["bytes",{"2":{"8":1,"9":1,"14":1,"16":3,"17":1,"18":1,"19":1,"21":3,"22":1,"25":1,"27":1,"33":3,"34":1,"37":1,"42":2,"47":2,"54":1,"65":2,"78":4,"81":1,"91":1}}],["by",{"0":{"4":1,"5":1},"2":{"2":1,"10":2,"14":1,"16":1,"22":1,"28":1,"29":1,"33":1,"36":1,"37":6,"40":2,"42":1,"49":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"70":3,"72":1,"73":1,"79":1,"82":2,"84":12,"85":6,"87":1,"88":1,"90":1,"96":1}}],["beware",{"2":{"98":1}}],["best",{"2":{"85":1,"100":1}}],["become",{"2":{"84":1}}],["because",{"2":{"1":1,"13":1,"14":1,"16":1}}],["before",{"2":{"81":1,"84":1,"88":1}}],["belonging",{"2":{"71":1}}],["belongs",{"2":{"22":1}}],["being",{"2":{"46":1}}],["been",{"2":{"40":1,"82":1}}],["between",{"2":{"26":1,"27":1,"37":1,"39":1,"40":2,"67":1,"76":1,"78":1,"84":1}}],["begin",{"2":{"23":1}}],["be",{"2":{"0":5,"2":1,"3":1,"4":1,"13":1,"15":1,"16":2,"22":1,"24":1,"37":1,"40":1,"41":1,"42":2,"45":1,"46":1,"50":1,"58":2,"59":1,"60":1,"61":2,"62":1,"68":1,"70":1,"72":2,"79":1,"80":1,"81":1,"84":23,"85":9,"87":1,"92":1,"93":1,"98":1,"102":1}}],["629872",{"2":{"91":1}}],["62639",{"2":{"82":2}}],["663392",{"2":{"91":1}}],["669125",{"2":{"82":2}}],["66729",{"2":{"82":2}}],["665723",{"2":{"25":1}}],["63291",{"2":{"91":1}}],["6326",{"2":{"60":1}}],["630988",{"2":{"91":1}}],["630526",{"2":{"82":2}}],["63006",{"2":{"56":1}}],["6378137",{"2":{"60":1}}],["69",{"2":{"58":1}}],["69085",{"2":{"56":1}}],["600",{"2":{"95":1,"97":1,"103":1,"104":1,"105":1}}],["607943",{"2":{"91":1}}],["60265",{"2":{"58":1,"102":1}}],["60918",{"2":{"56":1}}],["60175",{"2":{"56":1}}],["657324",{"2":{"91":1}}],["65105",{"2":{"56":1}}],["652339",{"2":{"25":1}}],["641411",{"2":{"91":1}}],["647058",{"2":{"91":1}}],["64976",{"2":{"56":1}}],["642",{"2":{"50":1}}],["645758",{"2":{"25":1}}],["6122",{"2":{"56":1}}],["61197",{"2":{"56":1}}],["611084",{"2":{"25":1}}],["619",{"2":{"51":1,"52":1}}],["617023",{"2":{"27":1}}],["671473",{"2":{"91":1}}],["671662",{"2":{"22":1}}],["678562",{"2":{"91":1}}],["673373",{"2":{"25":1}}],["672",{"2":{"21":1}}],["687891",{"2":{"27":1}}],["684389",{"2":{"22":1}}],["685454",{"2":{"22":1}}],["6×2",{"2":{"9":1}}],["6",{"2":{"2":6,"4":6,"5":6,"6":6,"8":4,"9":5,"16":8,"22":1,"34":1,"37":1,"58":1,"102":1}}],["1e8",{"2":{"85":1}}],["1f2",{"2":{"47":1}}],["191654",{"2":{"91":1}}],["1992",{"2":{"84":1}}],["1991",{"2":{"84":1}}],["1990",{"2":{"84":1}}],["195437",{"2":{"82":2}}],["1984",{"2":{"60":1}}],["1983",{"2":{"54":1}}],["1980",{"2":{"54":1}}],["193109",{"2":{"27":1}}],["197238",{"2":{"25":1}}],["19241",{"2":{"56":1}}],["192",{"2":{"19":1,"104":1}}],["19",{"2":{"16":16,"66":3,"67":5}}],["182827",{"2":{"91":1}}],["1851357399351781",{"2":{"96":1}}],["1850454989838767",{"2":{"96":1}}],["18507",{"2":{"91":1}}],["18583",{"2":{"56":1}}],["18892",{"2":{"56":1}}],["18434",{"2":{"56":1}}],["180×170",{"2":{"65":1}}],["180×170×24",{"2":{"59":1,"62":3,"64":2}}],["180",{"2":{"40":2,"60":1,"67":5,"104":1}}],["180ºe",{"2":{"40":1}}],["18",{"2":{"16":18}}],["148753",{"2":{"91":1}}],["1437",{"2":{"56":1}}],["145747",{"2":{"22":1}}],["14286",{"2":{"22":1}}],["14",{"2":{"16":20,"27":1}}],["13102300858571433",{"2":{"96":1}}],["1373199053065047",{"2":{"96":1}}],["1372",{"2":{"51":1,"52":1}}],["13068",{"2":{"91":1}}],["136",{"2":{"59":1,"63":1,"74":1,"80":1}}],["1363",{"2":{"51":1,"52":1}}],["13z",{"2":{"58":2,"102":1}}],["13205",{"2":{"27":1}}],["13",{"2":{"16":20,"27":1,"59":1,"63":1,"74":1,"80":1}}],["170",{"2":{"68":1}}],["179",{"2":{"60":1,"67":5}}],["17578125",{"2":{"60":2}}],["17593",{"2":{"22":1}}],["17434",{"2":{"56":1}}],["174934",{"2":{"25":1}}],["17852",{"2":{"56":1}}],["17863",{"2":{"56":1}}],["178603",{"2":{"22":1}}],["17647",{"2":{"56":1}}],["1762",{"2":{"51":1,"52":1}}],["17t00",{"2":{"54":1}}],["172",{"2":{"47":1}}],["17",{"2":{"14":1,"16":22,"42":1,"66":1}}],["16t00",{"2":{"59":4,"62":6,"63":2,"64":4,"65":4,"66":6,"67":10,"74":2,"80":2}}],["16t12",{"2":{"54":1}}],["1644",{"2":{"56":1}}],["16824",{"2":{"56":1}}],["16581",{"2":{"56":1}}],["166982",{"2":{"91":1}}],["16631",{"2":{"56":1}}],["166212",{"2":{"25":1}}],["16713",{"2":{"56":1}}],["167676",{"2":{"22":1}}],["16258",{"2":{"56":1}}],["169284",{"2":{"25":1}}],["16",{"2":{"10":1,"12":1,"13":1,"16":20,"22":1,"29":1,"59":2,"62":3,"63":1,"64":2,"65":4,"66":3,"67":5,"74":1,"80":1}}],["1578236499134987",{"2":{"96":1}}],["159",{"2":{"66":1}}],["15644",{"2":{"56":1}}],["15532",{"2":{"56":1}}],["151146",{"2":{"25":1}}],["152534",{"2":{"25":1}}],["15394",{"2":{"22":1}}],["15×10×30",{"2":{"16":1}}],["15×10",{"2":{"16":2}}],["15",{"2":{"10":1,"16":25,"22":6,"23":1,"27":4,"29":1,"30":1,"35":2,"42":1,"91":1}}],["128",{"2":{"106":1}}],["128204",{"2":{"25":1}}],["12673714160438732",{"2":{"96":1}}],["125769",{"2":{"82":2}}],["12575",{"2":{"56":1}}],["1242",{"2":{"56":1}}],["121",{"2":{"47":1}}],["121947",{"2":{"22":1}}],["123",{"2":{"17":1,"21":2}}],["1200",{"2":{"103":1,"104":1,"105":1}}],["120997",{"2":{"22":1}}],["120",{"2":{"16":1}}],["12",{"2":{"8":4,"16":20,"27":1,"37":10,"39":3,"40":4,"59":2,"62":3,"63":1,"64":2,"65":2,"66":3,"67":5,"74":1,"80":1,"95":1,"96":2}}],["1=5",{"2":{"2":1}}],["11037641658890784",{"2":{"96":1}}],["1159916",{"2":{"78":1}}],["119937",{"2":{"91":1}}],["119",{"2":{"65":1}}],["1181",{"2":{"56":1}}],["113553",{"2":{"55":3}}],["112319",{"2":{"55":12}}],["114815",{"2":{"55":6}}],["11",{"2":{"2":6,"4":6,"5":6,"6":6,"8":1,"16":18,"27":1,"51":4,"52":4,"56":4,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":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":10,"18":9,"19":8,"20":5,"21":17,"22":34,"23":3,"25":1,"26":2,"27":6,"29":15,"30":4,"32":3,"33":3,"34":8,"35":8,"37":23,"39":10,"40":8,"41":15,"42":14,"44":1,"45":3,"46":1,"47":5,"51":4,"52":2,"54":6,"55":10,"56":54,"58":4,"59":12,"62":12,"63":4,"64":8,"65":13,"66":18,"67":15,"68":2,"74":4,"80":11,"81":2,"82":2,"85":1,"91":11,"95":2,"96":5,"97":5,"102":3,"104":4,"105":2,"106":5}}],["10986528577255357",{"2":{"96":1}}],["10989",{"2":{"55":6}}],["1095",{"2":{"96":1}}],["10mb",{"2":{"84":2}}],["102816",{"2":{"82":2}}],["102333",{"2":{"82":2}}],["10850864324777372",{"2":{"96":1}}],["1083",{"2":{"56":1}}],["108696",{"2":{"55":6}}],["103704",{"2":{"55":3}}],["10×170×24",{"2":{"66":1}}],["10×10×24",{"2":{"66":2}}],["10×10×8",{"2":{"37":1}}],["10×10×12",{"2":{"37":1}}],["10×10×36",{"2":{"37":1}}],["10×10×5",{"2":{"32":1}}],["10×10",{"2":{"33":3,"34":1,"37":1}}],["10×15×20",{"2":{"41":1}}],["10×15",{"2":{"14":1,"22":2,"42":1,"91":1}}],["10×20×5",{"2":{"29":1}}],["100",{"2":{"40":7}}],["100622",{"2":{"27":1}}],["1000",{"2":{"0":1,"104":1,"105":1}}],["10x15",{"2":{"22":1}}],["101524",{"2":{"22":1}}],["10",{"2":{"2":14,"4":16,"5":18,"6":17,"10":3,"12":1,"13":1,"14":1,"16":21,"22":15,"23":3,"25":2,"27":4,"29":6,"30":2,"32":8,"33":12,"34":5,"35":4,"37":16,"39":10,"41":3,"42":2,"44":2,"45":4,"58":1,"59":2,"62":3,"64":2,"65":3,"66":6,"67":5,"80":2,"90":1,"91":3}}],["garbage",{"2":{"85":1}}],["gc",{"2":{"85":2}}],["gt",{"2":{"84":1,"85":3,"88":1}}],["gdalworkshop",{"2":{"60":1}}],["gdal",{"0":{"60":1},"2":{"60":1}}],["gb",{"2":{"58":1}}],["gn",{"2":{"58":1,"102":2}}],["gs",{"2":{"58":1,"102":2}}],["ggplot2",{"2":{"56":1}}],["github",{"2":{"50":2,"60":1,"86":1}}],["gives",{"2":{"22":1}}],["given",{"2":{"2":1,"22":2,"70":1,"72":1,"79":1,"84":6,"85":3,"91":1}}],["glob",{"2":{"84":1}}],["globalproperties=dict",{"2":{"85":1}}],["global",{"2":{"84":1,"85":1}}],["glmakie",{"2":{"42":2,"94":1,"102":2}}],["glue",{"2":{"8":1}}],["gradient",{"2":{"103":1,"104":1,"105":1,"106":1}}],["gradually",{"2":{"81":1}}],["grey25",{"2":{"106":1}}],["grey15",{"2":{"42":1,"56":1}}],["greenwich",{"2":{"60":1}}],["green",{"2":{"60":1,"71":1}}],["grouped",{"2":{"84":1}}],["groups",{"2":{"55":1}}],["groupby",{"0":{"51":1,"54":1},"1":{"52":1,"53":1,"55":1,"56":1},"2":{"48":1,"50":1,"51":6,"52":1,"53":1,"54":3,"55":3,"56":3,"84":1,"96":1}}],["group",{"0":{"48":1},"1":{"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"51":1,"53":1,"54":2,"71":1,"84":3}}],["grouping",{"2":{"42":2,"53":2}}],["grid=false",{"2":{"56":1}}],["grid",{"2":{"23":1,"70":1,"84":1}}],["gridchunks",{"2":{"2":3,"4":1,"5":1,"6":1,"84":1,"85":1}}],["go",{"2":{"88":2}}],["going",{"2":{"85":1}}],["good",{"2":{"56":1}}],["goal",{"2":{"21":1,"33":1,"49":1}}],["goes",{"2":{"16":2,"84":1,"85":1}}],["guide",{"2":{"10":2,"12":1,"13":1,"23":1,"29":3,"30":1}}],["gen",{"2":{"16":6}}],["general",{"0":{"99":1},"2":{"84":1,"93":1}}],["generated",{"2":{"59":1,"63":1,"74":1,"80":1,"85":1}}],["generate",{"2":{"16":2,"37":1,"39":1,"40":1,"84":1,"88":1}}],["generic",{"2":{"16":2,"18":1,"19":1,"21":1,"29":1,"84":1}}],["getting",{"0":{"89":1},"1":{"90":1,"91":1,"92":1}}],["gettarrayaxes",{"2":{"46":1}}],["getarrayinfo",{"2":{"85":1}}],["getaxis",{"2":{"34":1,"42":2,"84":1}}],["getloopchunks",{"2":{"85":1}}],["getloopcachesize",{"2":{"85":1}}],["getouttype",{"2":{"85":1}}],["getoutaxis",{"2":{"85":1}}],["getfrontperm",{"2":{"85":1}}],["gets",{"2":{"84":1,"85":1}}],["get",{"0":{"68":1},"2":{"10":1,"18":1,"32":1,"50":1,"54":1,"64":1,"66":1,"68":1,"85":3,"91":1,"96":1,"102":1}}],["geoaxis",{"2":{"104":1,"105":1}}],["geometrybasics",{"2":{"102":1}}],["geomakie",{"2":{"94":1,"102":1,"104":2,"105":1}}],["geogcs",{"2":{"60":1}}],["geojson",{"0":{"60":1}}],["geotiff",{"0":{"60":1}}],["geo",{"2":{"1":1}}],["g",{"2":{"7":1,"10":1,"11":1,"13":1,"16":4,"23":1,"29":1,"51":26,"52":2,"53":2,"54":2,"55":1,"56":18,"68":1,"70":1,"73":1,"84":5,"102":2}}],["2π",{"2":{"95":1}}],["2×3",{"2":{"91":1}}],["2×2×3",{"2":{"4":1,"5":1,"6":1}}],["2×2",{"2":{"2":3,"47":1}}],["2x2l31",{"2":{"59":1,"63":1,"74":1,"80":1}}],["2963860",{"2":{"78":1}}],["298",{"2":{"60":1}}],["29816",{"2":{"56":1}}],["29473",{"2":{"56":1}}],["29564",{"2":{"56":1}}],["271921",{"2":{"91":1}}],["2747",{"2":{"56":1}}],["273",{"2":{"54":1}}],["276",{"2":{"54":2}}],["270",{"2":{"54":1}}],["27",{"2":{"51":1,"52":1,"56":1}}],["275×205×9",{"2":{"51":4}}],["2f0",{"2":{"47":1}}],["284649",{"2":{"91":1}}],["28422753251364",{"2":{"58":4,"102":2}}],["28008",{"2":{"56":1}}],["2894",{"2":{"56":1}}],["288",{"2":{"54":1}}],["2818",{"2":{"51":1,"52":1}}],["28",{"2":{"37":1,"51":3,"52":3,"56":3}}],["28571",{"2":{"22":2}}],["2857142857142857",{"2":{"10":1,"12":1,"13":1,"14":1,"22":3,"29":2,"30":1,"35":1,"41":3,"42":1,"91":1}}],["2d",{"2":{"19":5,"20":3,"21":2}}],["263789",{"2":{"91":1}}],["26274",{"2":{"56":1}}],["268675",{"2":{"27":1}}],["265797",{"2":{"25":1}}],["26",{"2":{"16":2,"58":2,"102":1}}],["253963",{"2":{"91":1}}],["257223563",{"2":{"60":1}}],["25153",{"2":{"56":1}}],["25",{"2":{"16":4,"26":2,"37":1,"95":1}}],["24375",{"2":{"56":1}}],["2434",{"2":{"56":1}}],["241882",{"2":{"25":1}}],["24",{"2":{"16":6,"42":1,"65":2}}],["240",{"2":{"14":1,"16":1,"27":1}}],["230869",{"2":{"91":1}}],["23",{"2":{"16":8,"41":3,"56":1,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1}}],["223412",{"2":{"91":1}}],["22211",{"2":{"56":1}}],["225542",{"2":{"27":1}}],["22",{"2":{"16":10}}],["21t06",{"2":{"58":2,"102":1}}],["21t19",{"2":{"46":4}}],["2101",{"2":{"58":2,"102":1}}],["21699",{"2":{"56":1}}],["21209",{"2":{"56":1}}],["215973",{"2":{"27":1}}],["21",{"2":{"16":12,"51":8,"52":8,"56":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":1,"18":2,"19":2,"20":1,"22":9,"23":1,"25":2,"27":3,"29":1,"32":3,"33":6,"34":3,"37":1,"40":6,"42":6,"45":4,"46":1,"47":8,"51":1,"52":1,"56":40,"58":3,"59":3,"62":6,"63":1,"64":4,"65":2,"66":2,"67":5,"68":2,"74":1,"80":2,"81":2,"84":2,"91":5,"102":3,"104":2,"106":1}}],["2003",{"2":{"59":1,"63":1,"74":1,"80":1}}],["2004",{"2":{"59":1,"63":1,"74":1,"80":1}}],["2005",{"2":{"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1}}],["2002",{"2":{"59":3,"62":3,"63":2,"64":2,"65":2,"66":3,"67":5,"74":2,"80":1}}],["2001",{"2":{"59":3,"62":3,"63":2,"64":2,"65":3,"66":3,"67":5,"74":2,"80":1}}],["2000",{"2":{"26":1}}],["2019",{"2":{"58":2,"102":1}}],["2015",{"2":{"58":2,"59":1,"63":1,"74":1,"80":1,"102":2}}],["20×10×15",{"2":{"41":2}}],["20×10×15×2",{"2":{"35":1,"91":1}}],["20ºn",{"2":{"40":1}}],["203714",{"2":{"27":1}}],["2023",{"2":{"95":1,"96":2}}],["2021",{"2":{"37":9,"95":1,"96":2,"97":1}}],["2020",{"2":{"37":5,"39":3,"40":4,"46":8,"72":1}}],["2024",{"2":{"26":1}}],["2022",{"2":{"10":4,"12":2,"13":2,"14":2,"16":8,"17":4,"18":2,"20":2,"21":6,"22":6,"23":2,"29":6,"30":2,"37":5,"39":3,"40":4,"97":1}}],["20",{"2":{"2":7,"4":10,"5":10,"6":10,"16":14,"29":2,"35":4,"40":2,"41":3,"42":1,"56":1,"80":2,"91":3}}],["5173",{"2":{"88":1}}],["514979",{"2":{"22":1}}],["527401",{"2":{"82":2}}],["52419",{"2":{"56":1}}],["55",{"2":{"96":1}}],["553602",{"2":{"91":1}}],["558193",{"2":{"82":2}}],["551732",{"2":{"22":1}}],["5e8",{"2":{"79":1,"84":1}}],["5743",{"2":{"56":1}}],["57873",{"2":{"56":1}}],["57695",{"2":{"56":1}}],["57143",{"2":{"22":2}}],["56632",{"2":{"56":1}}],["540514",{"2":{"27":1}}],["59212",{"2":{"56":1}}],["59085",{"2":{"56":1}}],["594514",{"2":{"25":1}}],["595405",{"2":{"22":1}}],["5×4",{"2":{"82":2}}],["5×4×5",{"2":{"81":1}}],["5×4×3",{"2":{"21":2}}],["5×4×3×2",{"2":{"17":1,"18":1}}],["5×6×36",{"2":{"37":1}}],["5×6",{"2":{"27":2}}],["5×10",{"2":{"25":2}}],["508557",{"2":{"22":1}}],["50089",{"2":{"56":1}}],["500",{"2":{"0":1,"56":1,"106":2}}],["500mb",{"2":{"0":2}}],["536094",{"2":{"91":1}}],["536399",{"2":{"22":1}}],["531649",{"2":{"91":1}}],["53",{"2":{"65":1}}],["538981",{"2":{"22":1}}],["582329",{"2":{"91":1}}],["58548",{"2":{"91":1}}],["580668",{"2":{"91":1}}],["5843",{"2":{"51":1,"52":1}}],["581312",{"2":{"25":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":2,"21":4,"22":10,"23":1,"25":2,"27":4,"29":5,"30":1,"32":4,"34":1,"35":2,"37":3,"39":4,"41":3,"42":2,"45":4,"56":5,"59":4,"62":6,"63":2,"64":4,"65":3,"66":10,"67":10,"68":19,"74":2,"80":4,"81":6,"82":3,"91":2,"92":1,"97":2,"106":2}}],["rotate",{"2":{"106":1}}],["row",{"2":{"73":1,"84":1}}],["rowgap",{"2":{"56":1}}],["right",{"2":{"95":1,"97":1}}],["rights",{"2":{"82":1}}],["r",{"2":{"81":1}}],["r1i1p1f1",{"2":{"58":2,"102":3}}],["running",{"2":{"88":1}}],["run",{"2":{"23":1,"88":3,"93":2}}],["runs",{"2":{"13":1,"85":1}}],["ram",{"2":{"61":1}}],["race",{"2":{"59":1}}],["rafaqz",{"2":{"50":1}}],["raw",{"2":{"50":1,"60":1}}],["rasm",{"2":{"50":2}}],["ras",{"2":{"26":3}}],["rasters",{"2":{"26":2}}],["raster",{"0":{"26":1},"2":{"22":11,"26":3}}],["ranges",{"0":{"66":1},"2":{"34":1,"63":1}}],["range",{"2":{"10":2,"16":2,"17":2,"22":2,"23":2,"29":2,"35":3,"37":1,"85":1,"91":3,"95":1}}],["randn",{"2":{"95":1}}],["random",{"2":{"17":2,"40":2,"46":3,"91":1}}],["rand",{"2":{"2":1,"4":3,"5":3,"6":3,"8":2,"9":2,"10":1,"17":1,"19":1,"21":3,"22":1,"23":1,"25":1,"26":1,"27":1,"29":2,"30":1,"32":1,"33":2,"35":2,"40":3,"42":1,"44":1,"45":3,"80":1,"82":1,"91":2}}],["relational",{"2":{"70":1}}],["related",{"2":{"50":1}}],["recommend",{"2":{"92":1}}],["recommended",{"2":{"67":1}}],["rechunking",{"2":{"85":1}}],["recalculate",{"2":{"85":1}}],["recal",{"2":{"85":1}}],["recently",{"2":{"0":1}}],["reentrantlock",{"2":{"59":1}}],["rewrote",{"2":{"58":1,"59":1,"63":1,"74":1,"80":1,"102":1}}],["realization",{"2":{"59":1,"63":1,"74":1,"80":1}}],["realm",{"2":{"58":1,"102":1}}],["readcubedata",{"0":{"62":1},"2":{"40":2,"61":1,"62":1,"84":1}}],["read",{"0":{"57":1,"58":1,"59":1,"60":1},"1":{"58":1,"59":1,"60":1,"61":1,"62":1},"2":{"1":1,"40":1,"50":1,"57":1,"60":1,"66":1,"84":1}}],["red",{"2":{"56":1,"60":1,"71":1}}],["reduce",{"2":{"10":1,"14":1,"19":1}}],["reverse",{"2":{"56":1}}],["reverseordered",{"2":{"9":1,"60":1,"91":1}}],["rename",{"2":{"45":1}}],["resets",{"2":{"84":1,"85":1}}],["respectively",{"2":{"71":1}}],["reshape",{"2":{"37":1,"39":2}}],["result",{"2":{"34":1,"42":1}}],["resulting",{"2":{"8":1,"9":1,"14":1,"84":1,"85":1}}],["results",{"0":{"97":1},"2":{"2":1,"5":1,"56":2,"84":1,"85":1}}],["references",{"2":{"59":1,"63":1,"74":1,"80":1}}],["reference",{"0":{"83":1},"1":{"84":1,"85":1},"2":{"46":1}}],["ref",{"2":{"35":1,"84":1,"85":1}}],["rebuild",{"0":{"33":1},"2":{"32":1,"33":2,"46":2,"50":1}}],["repeat",{"2":{"95":1}}],["repl",{"2":{"90":1,"93":1}}],["replace",{"2":{"23":1,"50":1,"106":1}}],["repository",{"2":{"86":1,"98":1}}],["reports",{"2":{"86":1}}],["reproduces",{"2":{"49":1}}],["represented",{"2":{"84":1,"100":1}}],["represents",{"2":{"71":1}}],["representing",{"2":{"22":2,"85":1}}],["representation",{"2":{"1":1,"84":2,"85":3}}],["re",{"2":{"22":1}}],["registry",{"2":{"93":1}}],["registration",{"2":{"85":2}}],["registered",{"2":{"85":1,"93":1}}],["regions",{"2":{"22":8}}],["region",{"2":{"22":12}}],["regular",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":3,"18":3,"19":2,"20":2,"21":9,"22":8,"25":2,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":3,"37":14,"39":6,"40":4,"41":9,"42":3,"44":1,"45":5,"47":4,"51":2,"52":2,"56":6,"58":2,"59":4,"60":2,"62":6,"63":2,"64":4,"65":2,"66":3,"67":10,"68":2,"74":2,"80":5,"81":6,"91":5,"96":1,"102":1}}],["regularchunks",{"2":{"2":6,"4":3,"5":3,"6":3}}],["returned",{"2":{"84":1}}],["returns",{"2":{"84":5,"85":2}}],["return",{"2":{"18":1,"19":1,"21":2,"22":4,"51":1,"84":1,"85":1,"96":1}}],["requests",{"2":{"86":1}}],["requested",{"2":{"13":1}}],["requirements",{"2":{"59":1,"63":1,"74":1,"80":1}}],["required",{"2":{"37":1}}],["requires",{"2":{"16":1}}],["removes",{"2":{"85":1}}],["remove",{"2":{"52":1}}],["removed",{"2":{"15":1,"85":1}}],["remote",{"2":{"0":1}}],["http",{"2":{"88":1}}],["https",{"2":{"50":2,"59":1,"60":1,"63":1,"71":1,"74":1}}],["html",{"2":{"71":1}}],["hdf5",{"2":{"59":1}}],["hr",{"2":{"58":1,"102":2}}],["history",{"2":{"58":2,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1,"102":1}}],["hidedecorations",{"2":{"56":1}}],["highclip",{"2":{"56":4}}],["high",{"2":{"46":4}}],["hm",{"2":{"56":8}}],["hold",{"2":{"84":1}}],["holds",{"2":{"84":1,"85":1}}],["ho",{"0":{"46":1}}],["however",{"2":{"24":1,"37":1}}],["how",{"0":{"35":1,"36":1,"41":1,"42":1,"43":1,"93":1},"1":{"37":1,"38":1,"39":1,"40":1,"44":1,"45":1},"2":{"6":1,"7":1,"10":1,"17":2,"18":1,"24":1,"28":1,"31":1,"42":1,"57":1,"62":3,"82":1,"84":1,"98":1,"100":1}}],["happens",{"2":{"85":1}}],["had",{"2":{"82":1,"84":1,"85":1}}],["hard",{"2":{"62":1}}],["hamman",{"2":{"49":1,"56":1}}],["handled",{"2":{"85":1}}],["handle",{"2":{"70":1,"85":1}}],["handling",{"2":{"9":1,"84":1}}],["handy",{"2":{"42":1}}],["has",{"2":{"8":1,"9":1,"22":1,"26":1,"27":1,"40":1,"49":1,"52":1,"85":1}}],["half",{"2":{"8":5}}],["have",{"2":{"6":1,"9":1,"22":1,"29":1,"38":1,"40":2,"72":1,"84":3}}],["having",{"2":{"1":1,"22":1}}],["help",{"2":{"84":1,"85":2}}],["height",{"2":{"58":2,"102":1}}],["heatmap",{"0":{"103":1},"2":{"42":1,"56":3,"103":1}}],["hereby",{"2":{"22":1}}],["here",{"2":{"8":1,"9":1,"13":1,"16":2,"17":1,"21":1,"22":1,"36":1,"42":1,"66":1,"81":1,"87":2}}],["hence",{"2":{"1":1}}],["yet",{"2":{"84":1}}],["yeesian",{"2":{"60":1}}],["years",{"2":{"37":1,"95":1,"96":1}}],["year",{"2":{"8":4,"97":1}}],["yyyy",{"2":{"59":2,"63":2,"74":2,"80":2}}],["ylabel=",{"2":{"95":1,"97":1}}],["ylabel",{"2":{"56":3}}],["yasxa",{"2":{"40":6}}],["yaxcolumn",{"2":{"85":1}}],["yaxconvert",{"2":{"27":2}}],["yaxdefaults",{"2":{"85":1}}],["yaxarraybase",{"2":{"27":1,"84":1,"85":1}}],["yaxarray",{"0":{"11":1,"17":1,"29":1,"36":1,"37":1,"47":1,"64":1,"70":1},"1":{"18":1,"19":1,"20":1,"37":1,"38":1,"39":1,"40":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":2,"18":1,"19":2,"20":1,"21":6,"22":3,"23":1,"25":4,"26":2,"27":5,"29":5,"30":2,"32":3,"33":5,"34":1,"35":3,"36":1,"37":15,"39":4,"40":6,"41":3,"42":4,"44":2,"45":4,"46":4,"47":4,"50":2,"51":7,"52":1,"54":9,"55":1,"56":3,"58":2,"59":2,"60":1,"62":3,"63":2,"64":2,"65":3,"66":3,"67":5,"70":1,"72":1,"74":1,"75":1,"77":1,"80":2,"81":4,"84":10,"85":3,"91":5,"96":2,"100":1,"102":1}}],["yaxarrays",{"0":{"0":1,"1":1,"2":1,"7":1,"10":1,"16":1,"24":1,"28":1,"43":1,"48":1,"57":1,"63":1,"74":1,"86":1,"93":1,"99":1,"100":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,"19":1,"20":1,"21":1,"22":1,"23":1,"25":1,"26":1,"27":1,"29":1,"30":1,"44":1,"45":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"64":1,"65":1,"66":1,"67":1,"68":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"87":1,"88":1},"2":{"0":3,"2":1,"4":1,"5":1,"6":1,"8":3,"9":3,"10":4,"16":6,"17":3,"22":3,"23":4,"24":2,"25":1,"29":3,"32":1,"33":1,"35":3,"36":1,"37":1,"38":1,"39":2,"40":4,"44":1,"45":1,"46":4,"48":3,"51":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":2,"63":1,"69":1,"71":1,"74":1,"79":1,"81":1,"84":28,"85":28,"86":1,"88":1,"90":3,"91":5,"92":2,"93":4,"96":3,"98":1,"99":1,"102":1}}],["yax",{"2":{"0":1,"8":3,"9":3,"10":2,"16":11,"17":3,"18":1,"19":1,"20":3,"21":5,"22":2,"23":2,"29":2,"33":1,"35":2,"37":1,"39":1,"40":1,"46":5,"47":2,"48":1,"51":3,"54":1,"84":1,"91":2,"96":2}}],["y",{"2":{"4":2,"5":3,"6":2,"26":1,"27":3,"37":4,"41":4,"51":2,"52":1,"56":3,"60":1,"70":1,"91":3}}],["you",{"2":{"1":1,"23":1,"36":1,"40":3,"45":2,"61":1,"62":1,"76":1,"84":1,"85":2,"87":1,"88":2,"90":2,"92":1,"93":3,"98":3,"100":2}}],["yourself",{"2":{"88":1}}],["your",{"2":{"1":2,"40":2,"59":1,"79":2,"81":1,"84":1,"87":4,"88":4}}],["circshift",{"2":{"104":1}}],["ct1",{"2":{"102":4,"103":1}}],["cycle",{"0":{"95":1,"97":1},"1":{"96":1,"97":1},"2":{"96":4}}],["cycle=12",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["cdata",{"2":{"85":1}}],["center",{"2":{"84":1,"95":1,"97":1}}],["certain",{"2":{"63":2,"85":1}}],["cell",{"2":{"58":2,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"84":1}}],["cf",{"2":{"58":2,"59":2,"63":2,"74":2,"80":2,"102":2}}],["cftime",{"2":{"51":2,"54":5,"55":2,"56":2,"59":6,"62":9,"63":3,"64":6,"65":7,"66":9,"67":15,"74":3,"80":3}}],["cmpcachmisses",{"2":{"85":1}}],["cm4",{"2":{"59":4,"63":4,"74":4,"80":4}}],["cmip",{"2":{"58":1,"102":1}}],["cmip6",{"2":{"58":3,"102":6}}],["cmor",{"2":{"58":2,"59":3,"62":3,"63":2,"64":2,"65":3,"66":3,"67":5,"74":2,"80":2,"102":1}}],["c54",{"2":{"56":1}}],["cb",{"2":{"56":1}}],["cbar",{"2":{"42":1}}],["cgrad",{"2":{"42":1}}],["cl",{"2":{"104":1,"105":1}}],["cl=lines",{"2":{"104":1,"105":1}}],["clean",{"2":{"85":1}}],["cleanme",{"2":{"85":4}}],["cleaner",{"2":{"84":2}}],["clevel=n",{"2":{"76":1}}],["climate",{"2":{"59":1,"63":1,"74":1,"80":1}}],["closedinterval",{"2":{"67":1}}],["closed",{"0":{"67":1},"2":{"67":3}}],["close",{"2":{"46":4}}],["cloud",{"2":{"11":1,"58":1}}],["classes=classes",{"2":{"42":1}}],["classes",{"2":{"42":8}}],["classification",{"2":{"42":2}}],["class",{"2":{"42":3}}],["clustermanagers",{"2":{"23":2}}],["cluster",{"2":{"23":1}}],["cpus",{"2":{"23":1}}],["cpu",{"2":{"23":1}}],["c",{"2":{"22":11,"32":5,"33":7,"34":3,"42":2,"45":2,"71":1,"76":1,"78":4,"84":5,"85":3,"96":4,"102":2}}],["custom",{"2":{"29":1,"84":1}}],["current",{"2":{"22":2,"71":1,"84":1,"97":1}}],["currently",{"2":{"16":1,"46":1,"50":1,"98":1}}],["cubeaxis",{"2":{"85":1}}],["cubeaxes",{"2":{"84":1}}],["cubedir",{"2":{"85":1}}],["cube2",{"2":{"84":1}}],["cube1",{"2":{"84":1}}],["cubelist",{"2":{"84":1}}],["cubefittable",{"2":{"42":2,"84":1}}],["cubetable",{"0":{"42":1},"2":{"42":3,"84":3}}],["cubes",{"0":{"35":1},"2":{"9":2,"17":1,"21":1,"35":2,"40":1,"41":2,"42":1,"64":1,"72":1,"84":18,"85":9}}],["cube",{"0":{"32":1,"34":1,"36":1,"72":1,"96":1},"1":{"33":1,"37":1,"38":1,"39":1,"40":1},"2":{"2":1,"4":1,"5":1,"6":1,"16":11,"17":2,"19":2,"21":2,"32":1,"34":1,"36":2,"40":1,"41":1,"42":2,"50":1,"72":3,"81":1,"84":34,"85":19,"100":1}}],["chose",{"2":{"71":1}}],["child",{"2":{"58":1,"102":1}}],["check",{"2":{"16":1,"81":1,"92":1}}],["changed",{"2":{"92":1,"98":1}}],["changes",{"2":{"62":1}}],["change",{"2":{"10":1,"84":1,"85":1}}],["chunkoffset",{"2":{"85":1}}],["chunksize`",{"2":{"85":1}}],["chunksizes",{"2":{"84":2}}],["chunksize",{"2":{"84":1,"85":3}}],["chunks",{"0":{"4":1},"2":{"2":5,"4":1,"5":1,"6":2,"84":4,"85":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,"84":4,"85":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,"84":4,"85":4}}],["criteria",{"2":{"42":1}}],["creation",{"2":{"47":1}}],["creating",{"0":{"22":1},"2":{"10":1,"33":1,"37":1,"81":1,"87":1}}],["createdataset",{"2":{"85":2}}],["created",{"2":{"85":2}}],["creates",{"2":{"42":1,"84":2,"85":1}}],["create",{"0":{"28":1,"29":1,"30":1,"47":1},"1":{"29":1,"30":1},"2":{"10":1,"16":1,"22":2,"28":1,"29":1,"33":1,"35":1,"37":2,"42":1,"46":1,"50":1,"54":1,"74":1,"79":1,"81":3,"84":1,"85":1,"91":1,"95":1}}],["crucial",{"2":{"1":1}}],["coastlines",{"2":{"104":3,"105":1}}],["cosd",{"2":{"84":1}}],["country",{"2":{"84":4}}],["country=cube2",{"2":{"84":1}}],["could",{"2":{"33":1,"46":1,"61":1}}],["copies",{"2":{"85":1}}],["copied",{"2":{"81":1}}],["copybuf",{"2":{"85":2}}],["copydata",{"2":{"85":1}}],["copy",{"2":{"32":1,"84":1,"88":1}}],["coordinates",{"2":{"58":1}}],["college",{"2":{"98":1}}],["collected",{"2":{"85":1}}],["collectfromhandle",{"2":{"85":1}}],["collection",{"2":{"31":1,"70":1}}],["collect",{"2":{"25":1,"34":3,"96":1}}],["colonperm",{"2":{"85":1}}],["color=",{"2":{"97":3}}],["color",{"2":{"95":1,"104":1,"105":1,"106":1}}],["colormap=",{"2":{"56":1}}],["colormap=makie",{"2":{"42":1}}],["colormap",{"2":{"56":3,"103":1,"104":1,"105":1,"106":1}}],["colorrange=",{"2":{"56":1}}],["colorrange",{"2":{"56":3}}],["colorbar",{"2":{"42":1,"56":2}}],["column",{"2":{"73":1,"85":1}}],["colgap",{"2":{"56":1}}],["colnames",{"2":{"46":1}}],["configuration",{"2":{"85":2}}],["concatenating",{"2":{"84":1}}],["concatenates",{"2":{"84":2}}],["concatenate",{"0":{"35":1},"2":{"35":2,"84":2}}],["concatenatecubes",{"0":{"9":1},"2":{"9":2,"35":2,"84":2}}],["concrete",{"2":{"84":2}}],["contributing",{"2":{"87":1}}],["contribute",{"0":{"86":1,"87":1},"1":{"87":1,"88":2}}],["contrast",{"2":{"84":1}}],["content",{"2":{"84":1}}],["contact",{"2":{"59":1,"63":1,"74":1,"80":1}}],["contains",{"2":{"67":1,"84":1,"85":1}}],["contain",{"2":{"58":1,"59":1,"85":1}}],["containing",{"0":{"47":1},"2":{"8":1,"42":1,"71":1,"72":1,"84":1}}],["continue",{"2":{"51":1}}],["consolidated=true",{"2":{"58":1,"102":1}}],["constructor",{"2":{"84":1}}],["constructs",{"2":{"84":1}}],["construct",{"0":{"46":1},"2":{"84":2}}],["consistent",{"2":{"58":1,"102":1}}],["consisting",{"2":{"8":1}}],["considering",{"2":{"49":1}}],["considered",{"2":{"42":1}}],["consider",{"2":{"17":1,"19":1,"21":1,"33":1}}],["convinient",{"2":{"31":1}}],["conventions",{"2":{"59":1,"63":1,"74":1,"80":1}}],["convenient",{"2":{"23":1}}],["conversion",{"2":{"24":1,"26":1,"27":1}}],["conversions",{"2":{"24":1}}],["converted",{"2":{"72":1}}],["convert",{"0":{"24":1,"25":1,"26":1,"27":1},"1":{"25":1,"26":1,"27":1},"2":{"24":1,"25":2,"27":2,"84":1,"85":1}}],["corresponding",{"2":{"7":1,"21":2,"22":2,"72":1,"84":1}}],["combining",{"0":{"101":1}}],["combined",{"2":{"9":2,"72":2}}],["combine",{"0":{"7":1},"1":{"8":1,"9":1},"2":{"7":1,"8":1,"9":1,"100":1}}],["command",{"2":{"93":2}}],["comment",{"2":{"58":1}}],["common",{"2":{"40":5,"84":1}}],["com",{"2":{"50":2,"60":1}}],["compiler",{"2":{"92":1}}],["compuation",{"2":{"84":1}}],["computing",{"2":{"42":1}}],["computations",{"2":{"13":1,"41":1}}],["computation",{"0":{"23":1},"2":{"13":1,"70":1,"84":3,"85":3}}],["computed",{"2":{"85":1}}],["compute",{"0":{"10":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1},"2":{"96":1}}],["compares",{"2":{"85":1}}],["comparing",{"2":{"78":1}}],["compatible",{"2":{"60":1}}],["compress",{"2":{"78":2}}],["compress=n",{"2":{"78":1}}],["compressors",{"2":{"76":1}}],["compressor=compression",{"2":{"76":1}}],["compression",{"0":{"76":1,"78":1},"2":{"76":5,"78":4}}],["completely",{"2":{"61":1}}],["complexity",{"2":{"41":1}}],["complex",{"2":{"10":2,"91":1}}],["comply",{"2":{"59":1,"63":1,"74":1,"80":1}}],["comes",{"2":{"1":1}}],["code",{"2":{"6":1,"13":1,"23":2,"31":1,"46":1,"59":2}}],["captialisation",{"2":{"85":1}}],["cameracontrols",{"2":{"106":1}}],["came",{"2":{"72":1}}],["cairomakie",{"2":{"56":1,"95":2}}],["caxes",{"2":{"32":2,"84":2}}],["car",{"2":{"22":1}}],["cartesianindex",{"2":{"22":11}}],["caluclate",{"2":{"84":1}}],["calculations",{"2":{"56":1,"85":1}}],["calculating",{"2":{"14":1,"84":1}}],["calculates",{"2":{"84":1}}],["calculated",{"2":{"42":2,"51":1}}],["calculate",{"2":{"14":1,"22":1,"42":2,"48":1,"49":2,"51":1,"56":1,"85":2,"96":1}}],["calling",{"2":{"56":1}}],["called",{"2":{"16":1,"70":3,"85":1}}],["call",{"2":{"1":1,"23":1}}],["case",{"2":{"13":1,"19":1,"40":1,"53":1,"58":1,"62":1}}],["cases",{"2":{"0":1,"61":1,"67":1,"98":1}}],["cataxis",{"2":{"84":2}}],["categoricalaxis",{"2":{"84":1}}],["categorical",{"2":{"9":1,"17":1,"18":1,"19":1,"22":1,"35":1,"42":1,"46":4,"51":2,"52":1,"53":1,"54":2,"55":2,"56":3,"84":1,"85":1,"91":1}}],["cat",{"0":{"8":1},"2":{"8":2}}],["cache=1gb```",{"2":{"84":1}}],["cache=1e9",{"2":{"16":2}}],["cache=",{"2":{"84":1}}],["cache=5",{"2":{"84":1}}],["cache=yaxdefaults",{"2":{"84":1}}],["caches",{"2":{"0":1}}],["cachesize",{"2":{"0":2,"85":1}}],["cache",{"2":{"0":6,"79":1,"84":4,"85":7}}],["caching",{"0":{"0":1}}],["can",{"2":{"0":5,"2":1,"3":1,"13":2,"14":1,"16":3,"20":1,"22":1,"23":3,"29":2,"35":1,"36":1,"38":1,"40":1,"41":1,"42":2,"46":1,"52":1,"56":1,"58":2,"59":1,"60":1,"61":1,"68":1,"70":3,"71":2,"72":1,"80":1,"81":1,"82":1,"84":13,"85":6,"87":1,"90":2,"93":2,"98":2}}],["msc",{"2":{"96":3,"97":2}}],["mscarray",{"2":{"96":2}}],["md",{"2":{"87":2}}],["mfdataset",{"2":{"84":5}}],["mpi",{"2":{"58":1,"102":2}}],["m",{"2":{"25":2}}],["miss",{"2":{"85":1}}],["missing",{"2":{"14":2,"16":6,"18":1,"21":1,"22":2,"41":1,"42":2,"59":12,"62":6,"64":4,"65":6,"66":6,"67":10,"81":3,"82":1,"84":2,"85":2,"106":1}}],["minimized",{"2":{"85":1}}],["minutes",{"2":{"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["might",{"2":{"24":1,"61":1,"98":1}}],["mix",{"2":{"21":2}}],["mm",{"2":{"20":3,"59":2,"63":2,"74":2,"80":2}}],["mymean",{"2":{"23":4}}],["my",{"2":{"16":2,"59":1}}],["mahecha",{"2":{"72":1}}],["manager",{"2":{"90":1}}],["manual",{"2":{"59":1}}],["many",{"0":{"18":1,"19":2},"2":{"18":2,"19":2,"20":4,"62":1,"70":1,"85":1}}],["mar",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["marketdata",{"2":{"46":2}}],["master",{"2":{"50":1,"93":1}}],["mask",{"2":{"42":2}}],["makie",{"2":{"56":1,"106":1}}],["making",{"2":{"11":1,"59":1,"63":1}}],["make",{"2":{"39":1,"40":2,"81":1,"84":1,"85":2,"88":1,"106":1}}],["main",{"2":{"36":1,"85":1}}],["machine",{"2":{"23":1,"70":1}}],["matching",{"2":{"91":1}}],["match",{"2":{"85":2}}],["matched",{"2":{"84":1}}],["matches",{"2":{"20":1}}],["mat",{"2":{"22":4}}],["matrix",{"2":{"16":2,"22":1,"25":1,"46":1,"52":1,"56":2,"70":1,"82":2,"96":1}}],["maximal",{"2":{"85":1}}],["maximum",{"2":{"41":1,"84":1,"85":1}}],["maxbuf",{"2":{"85":1}}],["max",{"2":{"16":2,"76":1,"78":1,"79":1,"84":7,"85":2}}],["maxsize",{"2":{"0":2}}],["may",{"2":{"10":1,"15":1,"51":4,"52":2,"53":1,"54":4,"55":4,"56":6,"58":1,"59":1,"92":1}}],["maps",{"0":{"102":1},"1":{"103":1}}],["mapslice",{"2":{"23":1}}],["mapslices",{"0":{"14":1},"2":{"10":1,"13":1,"14":1,"23":1,"41":1,"96":1}}],["mapped",{"2":{"84":1}}],["mapping",{"2":{"84":1,"85":3}}],["mapcube",{"0":{"15":1},"1":{"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1},"2":{"10":1,"13":1,"15":1,"16":4,"18":1,"20":1,"21":2,"22":2,"23":3,"84":5,"85":2}}],["map",{"0":{"13":1,"41":1},"2":{"10":1,"13":2,"21":1,"22":3,"23":3,"41":4,"42":1,"51":2,"55":1,"56":1,"84":2,"91":1,"96":2}}],["moll",{"0":{"105":1}}],["mowingwindow",{"2":{"84":1}}],["module",{"2":{"84":1}}],["model",{"2":{"59":1,"63":1,"71":2,"74":1,"80":1}}],["modification",{"2":{"11":1,"23":1}}],["modify",{"0":{"11":1}}],["monthday",{"2":{"96":4}}],["monthly",{"0":{"49":1}}],["month",{"2":{"37":7,"39":3,"40":4,"49":1,"51":4,"52":1,"53":1,"54":5,"55":2,"56":3,"84":1,"96":2}}],["moment",{"2":{"27":1}}],["movingwindow",{"2":{"21":1,"84":4}}],["more",{"2":{"9":1,"10":1,"36":1,"41":1,"42":1,"66":1,"67":1,"72":1,"76":1,"79":1,"84":3,"85":1,"91":1}}],["most",{"2":{"1":1,"15":1,"24":1}}],["mesh",{"2":{"106":2}}],["merely",{"2":{"81":1}}],["measured",{"2":{"71":1,"72":1}}],["measure",{"2":{"70":1}}],["measures",{"2":{"58":1}}],["means",{"0":{"49":1},"2":{"14":1,"84":1}}],["mean",{"0":{"95":1,"97":1},"1":{"96":1,"97":1},"2":{"10":1,"14":3,"23":4,"42":4,"51":10,"52":2,"53":1,"56":2,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"84":1,"96":5}}],["meter",{"2":{"58":1}}],["method",{"2":{"16":2,"18":1,"19":1,"21":1,"84":1}}],["methods",{"2":{"7":1,"23":1,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["metadata",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":3,"24":1,"25":1,"27":3,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"47":2,"51":2,"52":1,"54":3,"55":2,"56":3,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":2,"84":1,"91":3,"96":1}}],["members",{"2":{"85":1}}],["member",{"2":{"6":1}}],["memory",{"0":{"61":1},"1":{"62":1},"2":{"1":1,"8":1,"10":1,"12":1,"13":1,"14":2,"16":3,"17":1,"18":1,"19":1,"21":3,"22":3,"24":3,"25":1,"27":1,"29":2,"32":1,"33":3,"34":1,"37":5,"40":4,"41":3,"42":3,"47":2,"50":1,"54":1,"61":1,"62":4,"70":1,"81":2,"84":2,"85":1,"91":2,"96":1}}],["multi",{"2":{"17":2,"21":2}}],["multiplying",{"2":{"41":1}}],["multiply",{"2":{"10":1,"41":1}}],["multiple",{"0":{"45":1,"101":1},"2":{"7":1,"21":1,"23":1,"58":1,"59":1,"70":1,"84":1}}],["must",{"2":{"0":1,"72":1,"84":1,"85":1}}],["mb",{"2":{"0":1,"59":1,"62":3,"64":2}}],["pkg",{"2":{"90":2,"93":2,"94":8}}],["pkg>",{"2":{"88":1,"93":1}}],["purple",{"2":{"95":1}}],["purpose",{"2":{"31":1,"41":1}}],["pull",{"2":{"86":1}}],["public",{"0":{"84":1}}],["published",{"2":{"56":1}}],["pydata",{"2":{"50":1}}],["p",{"2":{"40":10,"59":1,"63":1,"74":1,"80":1}}],["picture",{"2":{"70":1,"71":1}}],["pieces",{"2":{"31":1}}],["pixel",{"0":{"95":1},"1":{"96":1,"97":1},"2":{"21":1,"23":2}}],["post=getpostfunction",{"2":{"84":1}}],["positions",{"2":{"85":2}}],["position",{"2":{"70":1}}],["positional",{"2":{"65":1,"66":1}}],["possible",{"2":{"23":2,"24":1,"35":1,"47":1,"81":1,"84":3,"85":1}}],["pos",{"2":{"22":2}}],["point3f",{"2":{"106":1}}],["point",{"2":{"22":3,"58":1,"91":1}}],["points",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"16":9,"17":3,"18":3,"19":2,"20":3,"21":9,"22":16,"23":1,"25":2,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":3,"37":14,"39":6,"40":21,"41":9,"42":5,"44":1,"45":5,"46":4,"47":4,"51":3,"52":2,"54":2,"55":1,"56":7,"58":6,"59":6,"60":2,"62":9,"63":3,"64":6,"65":4,"66":9,"67":16,"68":2,"70":2,"71":1,"74":3,"80":6,"81":6,"91":5,"96":1,"102":3}}],["plt",{"2":{"103":1}}],["place",{"2":{"85":1}}],["please",{"2":{"59":1,"76":1}}],["plots",{"2":{"106":1}}],["plot",{"0":{"97":1,"103":1,"106":1},"2":{"56":2}}],["plotting",{"0":{"102":1},"1":{"103":1},"2":{"0":1,"94":1}}],["plus",{"2":{"18":3,"50":1,"84":1}}],["page",{"2":{"106":1}}],["paste",{"2":{"88":1}}],["pass",{"2":{"84":1}}],["passed",{"2":{"84":4}}],["passing",{"2":{"21":1,"84":3}}],["pair",{"2":{"85":1}}],["pairs",{"2":{"18":1,"20":1}}],["partitioned",{"2":{"85":1}}],["participate",{"2":{"84":1}}],["particular",{"2":{"73":1}}],["parts",{"2":{"84":1}}],["parent",{"2":{"58":1,"102":1}}],["parallelized",{"2":{"85":1}}],["parallelisation",{"2":{"84":1}}],["parallel",{"2":{"23":1,"70":1}}],["package",{"2":{"23":1,"66":1,"68":1,"83":1,"90":1,"94":1}}],["packages",{"2":{"16":1,"24":1}}],["paths",{"2":{"84":1,"85":2}}],["path=",{"2":{"16":2,"58":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"85":1}}],["path=f",{"2":{"4":1,"5":1,"6":1}}],["path",{"0":{"20":1},"2":{"0":1,"20":1,"50":2,"58":3,"59":2,"60":2,"63":2,"74":2,"79":3,"84":4,"88":1}}],["pr",{"2":{"88":1}}],["println",{"2":{"78":1}}],["printed",{"2":{"46":2}}],["primem",{"2":{"60":1}}],["prior",{"2":{"1":1}}],["props",{"2":{"91":2}}],["properly",{"2":{"49":1}}],["properties=dict",{"2":{"85":1}}],["properties=properties",{"2":{"18":2}}],["properties",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"10":2,"17":2,"18":2,"19":1,"20":2,"21":2,"23":2,"29":3,"30":3,"50":1,"56":1,"58":1,"59":1,"60":1,"63":1,"74":1,"80":1,"84":5,"85":1,"102":1}}],["probably",{"2":{"85":1}}],["provide",{"2":{"84":1}}],["provides",{"2":{"70":1,"99":1}}],["provided",{"2":{"36":1,"81":1,"84":2}}],["process",{"2":{"70":1,"85":2}}],["processed",{"2":{"13":1}}],["projection",{"0":{"104":1,"105":1},"1":{"105":1,"106":1},"2":{"60":1}}],["progressmeter",{"2":{"84":1}}],["progress",{"2":{"50":1,"98":1,"100":1}}],["product",{"2":{"22":1}}],["pressed",{"2":{"93":1}}],["pressing",{"2":{"90":1}}],["pre",{"2":{"84":2}}],["previous",{"2":{"56":1,"79":1,"81":1,"84":1}}],["previously",{"2":{"42":1}}],["prepared",{"2":{"59":1,"63":1,"74":1,"80":1}}],["prep",{"2":{"9":2}}],["precipitation",{"2":{"9":2,"71":1,"72":1,"91":2}}],["permute",{"2":{"85":1}}],["permuteloopaxes",{"2":{"85":1}}],["permutation",{"2":{"85":1}}],["persistend",{"2":{"85":1}}],["persistency",{"2":{"85":1}}],["persistent",{"2":{"84":1,"85":2}}],["persist",{"2":{"79":1,"84":1,"85":1}}],["perform",{"2":{"85":1}}],["performed",{"2":{"13":2}}],["performing",{"2":{"10":1}}],["per",{"2":{"7":1,"14":1,"51":1,"54":1,"55":1}}],["=interval",{"2":{"67":2}}],["===",{"2":{"46":1}}],["==",{"2":{"12":1,"46":1,"96":1}}],["=>nan",{"2":{"106":1}}],["=>",{"2":{"10":2,"12":1,"13":1,"16":2,"17":2,"18":3,"19":2,"20":1,"21":2,"22":5,"23":1,"29":3,"30":3,"44":1,"45":1,"46":5,"50":1,"51":5,"52":1,"54":3,"55":2,"56":3,"58":20,"59":20,"60":1,"62":30,"63":10,"64":20,"65":30,"66":30,"67":50,"74":10,"80":10,"91":6,"102":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":4,"18":14,"19":7,"20":11,"21":12,"22":16,"23":5,"25":3,"26":5,"27":4,"29":5,"30":4,"32":1,"33":3,"35":6,"37":7,"39":6,"40":17,"42":7,"44":1,"45":3,"46":7,"47":4,"50":8,"51":16,"52":1,"53":1,"54":4,"55":1,"56":22,"58":2,"59":3,"60":2,"62":1,"63":2,"64":2,"65":6,"66":6,"67":3,"74":2,"76":2,"78":3,"79":8,"80":2,"81":4,"82":5,"84":13,"85":7,"91":5,"95":10,"96":11,"97":5,"102":8,"103":5,"104":7,"105":5,"106":6}}],["dc",{"2":{"85":2}}],["dkrz",{"2":{"58":1,"102":2}}],["dufresne",{"2":{"59":1,"63":1,"74":1,"80":1}}],["due",{"2":{"53":1}}],["dummy",{"2":{"35":1,"37":1,"95":1,"96":1}}],["during",{"2":{"22":1,"23":1,"24":1}}],["dd",{"2":{"32":1,"84":4,"96":1}}],["d",{"2":{"22":5,"46":5,"56":3,"96":1}}],["drop",{"2":{"56":1}}],["dropdims",{"0":{"52":1},"2":{"51":2,"52":2,"56":1}}],["drivers",{"2":{"84":1}}],["driver",{"2":{"48":1,"79":2,"84":6}}],["driver=",{"2":{"4":1,"5":1,"6":1,"75":2,"76":1,"77":2,"78":1,"79":3,"80":1,"81":2,"84":3}}],["drei",{"2":{"19":2}}],["dash",{"2":{"97":1}}],["danger",{"2":{"79":1}}],["daysinmonth",{"2":{"51":1,"54":1}}],["days",{"2":{"49":1,"51":2,"53":1,"54":2,"55":2}}],["dayofyear",{"2":{"16":1}}],["day",{"2":{"10":2,"12":1,"13":1,"14":1,"16":4,"17":2,"18":1,"21":3,"22":3,"23":1,"29":3,"30":1,"95":1,"96":4,"97":1}}],["datconfig",{"2":{"85":2}}],["datset",{"2":{"84":1}}],["dat",{"2":{"84":8,"85":16}}],["datum",{"2":{"60":1}}],["datetime360day",{"2":{"59":6,"62":9,"63":3,"64":6,"65":7,"66":9,"67":15,"74":3,"80":3}}],["datetimenoleap",{"2":{"51":2,"54":5,"55":2,"56":2}}],["datetime",{"2":{"20":1,"46":5,"58":2,"102":1}}],["date",{"2":{"10":5,"12":3,"13":3,"14":3,"16":12,"17":5,"18":3,"21":8,"22":11,"23":3,"29":8,"30":3,"37":24,"39":8,"40":11,"70":1,"95":2,"96":5,"102":1}}],["datesid",{"2":{"96":2}}],["dates",{"2":{"10":2,"12":1,"13":1,"14":1,"16":5,"17":2,"18":1,"21":2,"22":3,"23":1,"29":3,"30":1,"37":8,"39":4,"40":5,"48":1,"72":1,"95":1,"96":2,"102":1}}],["data=cube1",{"2":{"84":1}}],["databases",{"2":{"70":1}}],["dataframe",{"2":{"42":1,"84":1}}],["dataframes",{"2":{"42":1}}],["datacubes",{"2":{"84":1}}],["datacube",{"0":{"101":1},"2":{"42":2,"81":1,"84":1}}],["datatypes",{"2":{"36":1}}],["data1",{"2":{"35":2}}],["data3",{"2":{"30":1}}],["data2",{"2":{"29":2,"35":2}}],["datasetaxis",{"2":{"84":2,"85":1}}],["datasetaxis=",{"2":{"84":1,"85":1}}],["dataset",{"0":{"30":1,"36":1,"38":1,"39":1,"40":1,"43":1,"46":1,"71":1,"79":1,"80":1,"82":1},"1":{"37":1,"38":1,"39":2,"40":2,"44":1,"45":1},"2":{"0":3,"3":1,"4":4,"5":2,"6":3,"9":1,"10":1,"18":1,"20":2,"24":1,"30":2,"38":1,"39":3,"40":5,"44":2,"45":3,"46":5,"58":3,"59":3,"60":3,"63":3,"64":1,"71":3,"72":2,"74":3,"75":1,"76":1,"77":1,"78":1,"79":3,"80":4,"81":2,"82":2,"84":19,"85":9,"102":2}}],["datasets",{"0":{"3":1,"28":1,"48":1,"57":1,"63":1,"74":1},"1":{"4":1,"5":1,"6":1,"29":1,"30":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"64":1,"65":1,"66":1,"67":1,"68":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1},"2":{"0":2,"24":1,"28":1,"40":1,"57":1,"61":1,"79":1,"84":9,"85":4,"100":1}}],["data",{"0":{"34":1,"50":1,"61":1,"72":1},"1":{"62":1},"2":{"0":3,"1":2,"7":1,"8":2,"9":1,"10":3,"11":1,"12":1,"13":1,"14":2,"16":9,"17":3,"18":1,"19":1,"21":6,"22":4,"23":2,"25":2,"26":1,"27":1,"29":2,"32":1,"33":3,"34":2,"35":1,"37":6,"39":1,"40":2,"41":3,"42":5,"50":8,"54":1,"58":3,"59":7,"62":6,"63":3,"64":4,"65":6,"66":6,"67":10,"69":1,"70":3,"71":2,"72":3,"74":3,"79":2,"80":3,"81":4,"82":1,"84":20,"85":12,"91":6,"92":1,"95":2,"96":2,"100":4,"102":5,"104":1}}],["dev",{"2":{"88":1}}],["dependencies",{"2":{"88":1}}],["depth",{"2":{"21":8}}],["detect",{"2":{"84":1,"85":1}}],["determined",{"2":{"85":1}}],["determines",{"2":{"84":1}}],["determine",{"2":{"1":1,"62":1,"84":1}}],["deletes",{"2":{"79":1,"84":1}}],["delete",{"2":{"79":2,"81":1}}],["denoting",{"2":{"84":1}}],["dense",{"2":{"70":1}}],["denvil",{"2":{"59":2,"63":2,"74":2,"80":2}}],["degree",{"2":{"60":1}}],["degc",{"2":{"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["dec",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["defaultfillval",{"2":{"85":1}}],["defaults",{"2":{"84":7}}],["default",{"2":{"18":1,"78":3,"81":1,"84":1,"85":4}}],["definition",{"2":{"72":1}}],["definitions",{"2":{"17":1,"19":1}}],["defining",{"2":{"23":1}}],["defines",{"2":{"84":1}}],["defined",{"2":{"18":1,"26":1,"27":1,"42":1,"56":1,"68":1,"70":1,"73":1,"81":1,"91":1}}],["define",{"0":{"96":1},"2":{"16":2,"18":1,"37":1,"42":1,"56":1,"84":2,"95":1}}],["deal",{"2":{"17":1}}],["dest",{"2":{"105":1}}],["desc",{"2":{"84":3,"85":3}}],["descriptor",{"2":{"85":4}}],["descriptors",{"2":{"84":2}}],["descriptions",{"2":{"84":1}}],["description",{"2":{"17":2,"19":2,"21":2,"36":1,"84":4,"85":11}}],["described",{"2":{"100":1}}],["describe",{"2":{"84":2}}],["describes",{"2":{"7":1,"10":1,"24":1,"28":1,"57":1,"67":1,"69":1,"83":1,"85":1}}],["describing",{"2":{"84":1}}],["designed",{"2":{"24":2,"70":1}}],["desired",{"2":{"16":1,"85":4}}],["demand",{"2":{"13":1}}],["diverging",{"2":{"56":1}}],["divided",{"2":{"41":1}}],["differing",{"2":{"84":1}}],["difference",{"2":{"56":1}}],["differences",{"2":{"46":1,"51":1,"56":1,"85":1}}],["different",{"0":{"21":1},"2":{"9":2,"16":1,"17":2,"23":1,"32":1,"33":1,"45":1,"49":1,"71":1,"84":3,"85":2,"98":1}}],["diff",{"2":{"51":2,"56":3}}],["directory",{"2":{"58":1,"75":2,"77":2}}],["directories",{"2":{"57":1,"85":1}}],["direct",{"2":{"46":1}}],["directly",{"2":{"16":1,"20":1,"27":1,"28":1,"29":1,"82":2}}],["dictionary",{"2":{"71":1,"84":3}}],["dict",{"2":{"4":1,"5":1,"8":1,"9":1,"10":2,"12":1,"13":1,"14":2,"16":5,"17":2,"18":3,"19":2,"20":1,"21":4,"22":4,"23":1,"25":1,"27":3,"29":4,"30":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"46":2,"47":2,"51":3,"52":2,"54":4,"55":3,"56":3,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1,"81":1,"84":3,"91":3,"96":1,"102":1}}],["dimvector",{"2":{"84":1}}],["dime",{"2":{"58":1}}],["dimensionaldata",{"2":{"22":1,"27":2,"32":1,"33":1,"37":1,"39":1,"40":1,"46":1,"48":1,"50":1,"51":15,"52":10,"54":5,"55":5,"56":38,"66":1,"67":2,"68":3,"70":1,"73":1,"92":3,"94":1,"96":1,"102":1}}],["dimensional",{"2":{"17":2,"19":2,"21":2,"69":1,"70":2,"84":1}}],["dimensions",{"0":{"39":1,"40":1},"2":{"9":1,"10":1,"13":1,"15":1,"16":2,"20":1,"21":1,"22":2,"23":1,"29":2,"33":1,"35":1,"38":1,"40":3,"41":2,"45":1,"50":1,"51":15,"52":10,"54":5,"55":5,"56":38,"62":1,"63":1,"68":2,"70":3,"71":1,"84":8,"85":3,"91":3,"92":1}}],["dimension",{"0":{"8":1,"9":1,"68":1,"73":1},"2":{"2":1,"8":2,"9":1,"10":1,"14":2,"16":3,"18":1,"19":1,"22":3,"37":1,"40":1,"52":1,"53":1,"56":1,"66":1,"68":1,"70":1,"72":1,"73":1,"84":7,"85":3,"91":1}}],["dimgroupbyarray",{"2":{"51":1,"54":1}}],["dimarray",{"0":{"27":1},"2":{"22":3,"27":6,"51":1,"52":1,"54":1,"55":2,"56":3,"70":1,"84":2}}],["dims=2",{"2":{"96":1}}],["dims=",{"2":{"14":2,"23":1,"41":1,"51":5,"52":1,"54":1,"56":1}}],["dims",{"2":{"8":3,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":4,"25":1,"26":1,"27":2,"29":2,"32":3,"33":4,"34":1,"35":1,"37":5,"41":3,"42":3,"46":1,"47":2,"50":1,"51":6,"52":1,"54":5,"55":2,"56":5,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":1,"91":2,"96":1}}],["dim",{"2":{"2":2,"4":7,"5":8,"6":2,"21":1,"22":1,"25":2,"27":2,"29":4,"32":9,"33":6,"34":3,"35":1,"40":1,"44":1,"45":5,"47":4,"51":2,"52":2,"56":6,"80":3,"81":6,"84":1,"91":2}}],["disregard",{"2":{"85":1}}],["dispatch",{"2":{"85":1}}],["displayed",{"2":{"62":1}}],["discribe",{"2":{"84":2}}],["discussion",{"2":{"76":1}}],["distribute",{"2":{"23":1}}],["distributed",{"0":{"23":1},"2":{"0":1,"23":2}}],["diskarray",{"2":{"84":1}}],["diskarrays",{"2":{"2":9,"4":4,"5":4,"6":4,"84":2,"85":1}}],["disk",{"2":{"1":1,"16":1,"20":1,"27":1,"70":1,"81":3,"82":2,"84":1,"85":2}}],["dodgerblue",{"2":{"97":1}}],["documenter",{"2":{"106":1}}],["documentation",{"0":{"87":1},"1":{"88":1}}],["doc",{"2":{"79":1}}],["docstring",{"2":{"84":1}}],["docs",{"0":{"88":1},"2":{"71":1,"87":2,"88":6,"92":1}}],["don",{"2":{"76":1}}],["done",{"2":{"33":1,"41":1,"56":1,"61":1,"87":2}}],["download",{"0":{"50":1},"2":{"50":1,"59":2,"60":2,"63":2,"74":2}}],["downloads",{"2":{"48":1,"50":1,"59":1,"60":1,"63":1,"74":1}}],["doing",{"2":{"23":1,"32":1,"34":1,"88":1}}],["does",{"2":{"23":1,"81":1,"84":2,"85":1}}],["dot",{"2":{"21":1,"97":1}}],["do",{"0":{"35":1,"36":1,"41":1,"42":1,"43":1,"46":1},"1":{"37":1,"38":1,"39":1,"40":1,"44":1,"45":1},"2":{"1":1,"13":1,"16":1,"22":3,"23":1,"31":2,"41":1,"49":1,"56":1,"81":1,"82":1,"85":1,"88":1,"90":1}}],["dsw",{"2":{"51":2,"56":2}}],["dsfinal",{"2":{"35":1,"41":2,"42":2}}],["ds2",{"2":{"35":3,"41":1,"80":1}}],["ds1",{"2":{"35":3,"41":3,"42":1}}],["dschunked",{"2":{"4":3,"5":3,"6":3}}],["ds",{"2":{"0":3,"4":2,"5":2,"6":2,"30":1,"39":2,"40":12,"44":1,"45":1,"46":2,"50":5,"51":10,"54":1,"56":3,"58":1,"59":2,"60":1,"62":3,"63":1,"64":2,"74":1,"75":3,"76":2,"77":3,"78":7,"79":3,"80":2,"81":1,"82":5,"84":3,"85":1,"106":2}}],["wglmakie",{"2":{"106":2}}],["wgs",{"2":{"60":3}}],["would",{"2":{"84":2}}],["world",{"2":{"60":2}}],["workdir",{"2":{"85":1}}],["worker",{"2":{"84":1}}],["workers",{"2":{"84":1}}],["workflow",{"2":{"61":1}}],["workflows",{"2":{"1":1}}],["work",{"2":{"24":2,"50":1,"69":1,"84":1,"98":2,"100":1}}],["workload",{"2":{"23":1}}],["working",{"2":{"16":1,"82":1}}],["works",{"2":{"6":1,"34":1,"39":1,"40":1,"81":1}}],["written",{"2":{"84":1,"85":1}}],["writing",{"2":{"82":1}}],["writefac",{"2":{"85":1}}],["writefac=4",{"2":{"79":1,"84":1}}],["writes",{"2":{"84":1}}],["write",{"0":{"74":1,"75":1,"77":1},"1":{"75":1,"76":2,"77":1,"78":2,"79":1,"80":1,"81":1,"82":1},"2":{"81":1,"84":2}}],["wrapping",{"2":{"53":1,"68":2}}],["wrapped",{"2":{"16":1}}],["wrap",{"2":{"0":1,"84":1}}],["www",{"2":{"59":1,"63":1,"74":1}}],["w",{"2":{"56":2,"82":2}}],["was",{"2":{"20":1,"22":1,"23":1,"85":1}}],["way",{"2":{"15":1,"24":1,"32":1}}],["warning",{"2":{"11":1,"24":1,"32":1,"40":1,"45":1,"47":1,"50":1,"79":1,"81":1,"84":1}}],["wanted",{"2":{"85":1}}],["wants",{"2":{"81":1}}],["want",{"0":{"94":1},"2":{"0":1,"1":1,"61":1,"72":1,"85":1,"88":1,"93":1,"100":1}}],["white",{"2":{"104":1,"105":1}}],["while",{"2":{"81":1}}],["which",{"2":{"9":1,"16":1,"22":2,"33":1,"40":2,"56":1,"59":1,"62":1,"64":1,"67":1,"68":1,"72":3,"84":5,"85":4,"100":1}}],["whose",{"0":{"39":1,"40":1}}],["whole",{"2":{"8":3}}],["whether",{"2":{"85":2}}],["when",{"2":{"1":1,"6":1,"13":1,"62":1,"72":1,"84":3,"85":1}}],["whereas",{"2":{"70":1}}],["where",{"2":{"0":1,"23":1,"40":4,"49":1,"67":1,"82":1,"84":1,"85":4}}],["wintri",{"0":{"104":1},"1":{"105":1,"106":1}}],["windowloopinds",{"2":{"85":1}}],["window",{"2":{"84":1,"85":1}}],["without",{"2":{"85":1}}],["within",{"2":{"66":1}}],["with",{"0":{"47":1},"2":{"4":1,"5":1,"8":1,"10":1,"12":1,"13":1,"16":7,"17":3,"18":2,"19":2,"21":3,"22":4,"23":2,"24":1,"29":3,"32":1,"33":1,"40":6,"41":2,"42":3,"45":2,"46":3,"47":1,"51":3,"52":1,"54":2,"55":2,"56":5,"58":3,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"69":1,"71":1,"74":1,"76":1,"78":1,"79":1,"80":2,"81":2,"82":1,"84":11,"85":1,"87":1,"91":4,"92":3,"98":1,"100":1,"102":2,"104":1}}],["will",{"2":{"0":1,"1":1,"4":1,"5":1,"13":1,"16":3,"17":2,"18":1,"19":1,"22":1,"36":1,"40":1,"41":2,"42":2,"45":2,"46":1,"48":1,"53":2,"59":1,"79":3,"81":3,"82":1,"84":12,"85":3,"100":1}}],["wether",{"2":{"84":1}}],["weight=",{"2":{"84":1}}],["weight=nothing",{"2":{"84":1}}],["weight",{"0":{"54":1},"1":{"55":1,"56":1},"2":{"53":1,"55":1,"56":1}}],["weights",{"0":{"55":1},"2":{"51":3,"55":2,"56":1}}],["weightedmean",{"2":{"84":1}}],["weighted",{"0":{"56":1},"2":{"42":1,"49":1,"51":8,"56":8,"84":3}}],["well",{"2":{"42":1,"46":1,"81":1,"84":1}}],["welcome",{"2":{"6":1,"86":1}}],["were",{"2":{"13":2,"67":1,"85":1,"95":1}}],["we",{"2":{"0":1,"8":2,"9":1,"13":2,"14":1,"16":5,"17":3,"18":1,"19":1,"20":1,"22":5,"23":2,"29":2,"33":1,"35":1,"36":1,"37":1,"38":1,"40":2,"41":2,"42":5,"46":4,"51":1,"52":1,"53":2,"56":1,"58":1,"66":1,"72":1,"81":3,"82":4,"92":2,"95":1,"102":1}}],["oob",{"2":{"84":1}}],["o1",{"2":{"59":2,"63":2,"74":2,"80":1}}],["ocean",{"2":{"59":1,"63":1,"74":1,"80":1}}],["oct",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["occuring",{"2":{"4":1}}],["o",{"2":{"50":4,"56":4,"84":5}}],["ohlcv",{"2":{"46":3}}],["ouput",{"2":{"88":1}}],["our",{"2":{"41":1,"42":1,"96":1}}],["outcube",{"2":{"85":1}}],["outcubes",{"2":{"85":1}}],["outcs",{"2":{"85":1}}],["outsize",{"2":{"85":1}}],["outar",{"2":{"85":2}}],["out",{"2":{"50":1,"84":2,"85":1}}],["outtype",{"2":{"16":2,"84":1,"85":2}}],["outdims=outdims",{"2":{"22":1,"23":1}}],["outdims",{"0":{"17":1,"18":1,"19":1,"20":1},"1":{"18":1,"19":1,"20":1},"2":{"16":4,"18":12,"19":2,"20":11,"21":3,"84":6}}],["outputcube",{"2":{"85":3}}],["outputs",{"2":{"16":1,"18":2,"21":1}}],["output",{"2":{"6":1,"16":3,"17":1,"18":1,"22":1,"23":3,"59":1,"63":1,"74":1,"80":1,"84":11,"85":9,"106":1}}],["optimal",{"2":{"85":1}}],["optifunc",{"2":{"85":1}}],["optionally",{"2":{"84":1}}],["option",{"2":{"37":1,"39":1,"76":1}}],["options",{"2":{"34":1}}],["operates",{"2":{"84":1}}],["operate",{"2":{"21":1}}],["operation",{"2":{"21":1,"85":1}}],["operations",{"0":{"16":1},"2":{"10":1,"51":1,"84":2,"85":3}}],["operating",{"2":{"19":1}}],["opens",{"2":{"84":1}}],["openinterval",{"2":{"67":1}}],["open",{"0":{"67":1},"2":{"0":2,"18":1,"20":2,"46":4,"58":2,"59":2,"60":1,"63":2,"67":2,"74":1,"76":1,"80":1,"82":6,"84":7,"102":1}}],["obj",{"2":{"42":2,"95":1,"97":1}}],["objects",{"2":{"84":2}}],["object",{"2":{"11":1,"58":1,"84":5,"85":3}}],["obtain",{"0":{"34":1},"2":{"46":1,"53":1}}],["omit",{"2":{"23":1}}],["otherwise",{"2":{"84":1}}],["others",{"2":{"21":1,"46":1}}],["other",{"0":{"98":1},"1":{"99":1,"100":1,"101":1},"2":{"20":1,"24":1,"61":1,"98":1,"100":1}}],["overview",{"0":{"99":1},"2":{"98":1,"99":1}}],["overwrite",{"0":{"79":1},"2":{"79":3,"84":4,"85":2}}],["overwrite=true",{"2":{"16":2,"79":2,"81":3}}],["over",{"0":{"16":1,"100":1},"2":{"10":1,"15":1,"21":1,"23":1,"56":1,"84":8,"85":1,"100":1}}],["ormax",{"2":{"84":1}}],["orca2",{"2":{"59":1,"63":1,"74":1,"80":1}}],["orangered",{"2":{"42":1}}],["ordered",{"2":{"70":1,"71":1}}],["ordereddict",{"2":{"22":1}}],["orderedcollections",{"2":{"22":1}}],["order",{"2":{"16":1,"49":1,"82":1}}],["original",{"2":{"59":2,"62":6,"64":4,"65":6,"66":6,"67":10}}],["originates",{"2":{"9":1}}],["origin",{"2":{"10":2,"12":1,"13":1,"23":1,"29":3,"30":1,"91":2}}],["or",{"0":{"36":1},"1":{"37":1,"38":1,"39":1,"40":1},"2":{"1":2,"6":1,"10":1,"13":2,"15":1,"27":1,"33":1,"38":1,"47":2,"58":1,"61":1,"63":2,"70":3,"73":2,"76":1,"79":1,"84":22,"85":7,"90":1,"91":2,"93":1}}],["once",{"2":{"56":1,"72":1,"85":1,"87":1}}],["onlinestat",{"2":{"84":2}}],["onlinestats",{"2":{"42":2}}],["only",{"2":{"6":1,"13":1,"14":1,"16":1,"20":1,"22":1,"24":1,"29":2,"41":1,"59":1,"81":1,"84":2}}],["on",{"2":{"1":2,"6":1,"7":1,"10":2,"13":2,"16":1,"23":2,"31":1,"59":2,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"70":1,"74":1,"76":1,"80":1,"81":1,"84":5,"85":4}}],["ones",{"2":{"17":1,"33":1}}],["oneto",{"2":{"4":4,"5":4,"6":2,"25":2,"29":3,"32":9,"33":6,"44":1,"45":5,"47":4,"81":6,"91":2}}],["one",{"0":{"18":1,"44":1},"2":{"0":1,"7":1,"8":2,"14":2,"18":15,"19":5,"20":6,"21":2,"22":2,"42":1,"46":1,"52":1,"59":1,"70":2,"71":1,"81":2,"84":9,"85":3,"98":1}}],["own",{"2":{"0":1,"59":1}}],["offline=true",{"2":{"106":1}}],["offsets",{"2":{"85":1}}],["offset",{"2":{"13":1}}],["often",{"2":{"7":1}}],["of",{"0":{"11":1,"40":1,"49":1,"82":1,"99":2},"2":{"0":2,"1":1,"6":1,"8":3,"9":1,"10":2,"11":1,"12":1,"13":2,"14":1,"15":1,"22":7,"23":3,"24":1,"26":1,"27":1,"31":3,"32":3,"36":1,"37":2,"38":1,"39":1,"40":2,"41":1,"42":1,"49":1,"50":1,"54":1,"59":1,"62":1,"63":3,"64":1,"66":1,"68":1,"70":7,"71":1,"72":2,"73":2,"74":1,"80":1,"81":1,"82":1,"83":1,"84":53,"85":42,"91":1,"92":2,"96":2,"97":1,"98":1,"99":1}}],["eo",{"2":{"98":1}}],["esdltutorials",{"2":{"98":1}}],["esm1",{"2":{"58":1,"102":2}}],["eltype",{"2":{"91":1}}],["elementtype",{"2":{"85":1}}],["element",{"2":{"8":1,"9":1,"10":2,"13":2,"14":1,"16":3,"22":2,"34":1,"42":1,"51":2,"52":1,"53":1,"54":7,"55":2,"56":3,"65":2,"68":1,"71":1,"72":2,"84":1,"85":1,"96":1}}],["elements",{"0":{"11":1,"65":1},"2":{"8":1,"12":1,"13":2,"23":1,"63":1,"70":1,"84":1,"85":1}}],["empty",{"2":{"85":1}}],["embeds",{"2":{"84":1}}],["either",{"2":{"84":2}}],["error",{"2":{"79":1}}],["epsg",{"2":{"60":5}}],["et",{"2":{"59":1,"63":1,"72":1,"74":1,"80":1}}],["edu",{"2":{"59":1,"63":1,"71":1,"74":1}}],["equivalent",{"2":{"56":1,"68":1}}],["equally",{"2":{"0":1}}],["effectively",{"2":{"41":1}}],["env",{"2":{"88":1}}],["ensure",{"2":{"59":1}}],["enabling",{"2":{"29":1}}],["enter",{"2":{"90":1}}],["entire",{"2":{"22":1,"24":1,"75":1,"77":1}}],["entries",{"2":{"22":1,"46":1,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"82":1,"84":1,"91":1}}],["entry",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"18":1,"19":1,"21":1,"29":2,"51":2,"52":1,"54":2,"55":2,"56":3,"84":1,"87":3}}],["enumerate",{"2":{"22":2,"56":2}}],["end",{"2":{"13":1,"16":1,"18":1,"19":2,"21":2,"22":4,"23":2,"41":1,"51":2,"56":2,"59":1,"96":2,"106":1}}],["exist",{"2":{"84":1}}],["exists",{"2":{"79":1,"84":1,"85":1}}],["existing",{"0":{"8":1},"2":{"79":1,"80":1}}],["exportable=true",{"2":{"106":1}}],["expression",{"2":{"84":1}}],["experiment",{"2":{"59":3,"63":3,"74":3,"80":3}}],["explicitly",{"2":{"13":1,"33":1,"36":1,"85":1}}],["executes",{"2":{"84":1}}],["execute",{"2":{"23":1}}],["extension",{"2":{"84":2}}],["extended",{"2":{"16":1,"84":1,"85":2}}],["external",{"2":{"58":1,"102":1}}],["extracts",{"2":{"85":1}}],["extract",{"0":{"32":1},"1":{"33":1},"2":{"85":1}}],["extracted",{"2":{"21":1}}],["extra",{"2":{"23":1}}],["exactly",{"2":{"5":1,"34":1,"46":1}}],["examples",{"2":{"6":1,"34":2,"48":1,"59":1,"63":1,"74":1,"87":1}}],["example",{"2":{"0":1,"1":1,"5":1,"10":1,"17":1,"21":1,"23":2,"33":1,"39":1,"40":1,"41":1,"42":1,"49":1,"59":1,"61":1,"63":2,"70":2,"71":1,"72":1,"74":2,"84":4,"85":1,"87":2,"91":2}}],["e",{"2":{"7":1,"8":1,"10":1,"11":1,"13":1,"22":2,"23":1,"26":1,"27":1,"29":1,"37":1,"59":1,"68":1,"70":1,"73":1,"79":1,"84":6,"85":1,"88":1,"91":1}}],["east",{"2":{"60":1}}],["easier",{"2":{"29":1,"63":1}}],["easily",{"2":{"0":1,"23":1}}],["easy",{"2":{"26":1,"27":1}}],["each",{"2":{"4":1,"5":1,"10":1,"13":1,"20":1,"22":5,"23":2,"41":2,"42":2,"49":1,"53":1,"62":1,"71":1,"73":1,"84":3,"85":3,"91":1}}],["everywhere",{"2":{"23":2}}],["every",{"2":{"0":1,"10":1,"13":1,"84":1}}],["features",{"2":{"99":1}}],["feel",{"2":{"76":1}}],["feb",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["frame",{"2":{"100":1}}],["frames",{"2":{"70":1}}],["front",{"2":{"85":1}}],["from",{"0":{"32":1,"34":2,"46":1,"49":1},"1":{"33":1},"2":{"0":1,"8":1,"9":1,"24":1,"32":1,"33":1,"34":4,"40":3,"46":2,"62":1,"67":1,"72":2,"82":1,"84":6,"85":6,"91":1,"96":1}}],["free",{"2":{"76":1}}],["frequently",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["fr",{"2":{"59":1,"63":1,"74":1,"80":1}}],["fallback",{"2":{"85":1}}],["falls",{"2":{"84":1}}],["false",{"2":{"18":1,"20":1,"47":1,"79":2,"84":3,"85":1}}],["fails",{"2":{"84":1}}],["faq",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["faster",{"2":{"85":1}}],["fastest",{"2":{"1":1}}],["fast",{"2":{"1":1,"13":1}}],["f2mix",{"2":{"19":3}}],["f2",{"2":{"18":3}}],["f1",{"2":{"18":2,"19":1}}],["fu",{"2":{"85":1}}],["funtion",{"2":{"96":1}}],["fun",{"2":{"84":4}}],["functionality",{"0":{"99":1}}],["functions",{"2":{"10":2,"21":1,"70":2,"83":1,"84":1,"85":1}}],["function",{"0":{"42":1},"2":{"0":1,"1":1,"13":2,"15":1,"16":6,"17":1,"18":2,"19":2,"21":5,"23":6,"32":2,"35":1,"41":1,"42":1,"46":1,"48":1,"51":1,"53":1,"56":1,"61":1,"67":1,"81":1,"84":22,"85":13}}],["future",{"2":{"50":1}}],["further",{"2":{"13":1,"98":1}}],["flag",{"2":{"85":3}}],["flat",{"2":{"18":4,"19":2,"20":2}}],["float32",{"2":{"16":6,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"81":2,"82":4,"85":1}}],["float64",{"2":{"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"17":2,"18":2,"19":2,"20":2,"21":3,"22":9,"25":2,"27":4,"29":6,"30":2,"32":1,"33":3,"35":4,"41":12,"42":5,"46":2,"51":3,"52":2,"55":3,"56":6,"58":4,"59":4,"60":2,"62":6,"63":2,"64":4,"65":2,"66":6,"67":10,"68":3,"74":2,"80":2,"84":1,"85":1,"91":7,"96":2,"102":2}}],["flexible",{"2":{"9":1,"15":1}}],["folder",{"2":{"88":1}}],["follow",{"2":{"88":1,"98":1}}],["follows",{"2":{"16":2,"19":1,"21":1,"51":1,"56":1,"82":1}}],["following",{"2":{"2":1,"5":1,"6":1,"16":1,"17":1,"18":1,"21":1,"23":1,"33":1,"48":1,"49":1,"50":1,"84":2,"85":4,"93":2,"94":1,"98":1}}],["found",{"2":{"84":1,"85":1}}],["fourth",{"2":{"59":2,"63":2,"74":2,"80":2}}],["fontsize=24",{"2":{"103":1}}],["fontsize=18",{"2":{"56":1}}],["font=",{"2":{"56":1}}],["forwarded",{"2":{"84":1}}],["forwardordered",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":4,"18":4,"19":3,"20":3,"21":9,"22":9,"25":2,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":4,"37":14,"39":6,"40":10,"41":9,"42":5,"44":1,"45":5,"46":4,"47":4,"51":3,"52":2,"54":2,"55":1,"56":7,"58":6,"59":6,"60":1,"62":9,"63":3,"64":6,"65":4,"66":9,"67":15,"68":2,"74":3,"80":6,"81":6,"91":5,"96":1,"102":3}}],["force",{"2":{"84":1}}],["forcing",{"2":{"58":1,"102":1}}],["forms",{"2":{"84":1,"85":2}}],["format",{"2":{"76":1,"78":1,"79":1,"84":1,"96":1}}],["formal",{"2":{"72":1}}],["former",{"2":{"32":1}}],["for",{"0":{"6":1,"95":1},"1":{"96":1,"97":1},"2":{"0":2,"1":3,"4":1,"5":1,"6":1,"20":1,"22":4,"23":1,"37":1,"39":2,"40":2,"41":4,"42":6,"46":5,"50":1,"54":1,"56":3,"59":2,"61":2,"62":1,"63":1,"67":1,"68":1,"70":4,"71":3,"72":1,"74":1,"79":1,"80":1,"81":2,"84":20,"85":16,"94":1,"95":1,"96":2,"98":1}}],["f",{"2":{"2":2,"16":3}}],["field",{"2":{"84":1}}],["fields",{"2":{"42":1,"84":1,"85":4}}],["figure=",{"2":{"97":1}}],["figure",{"2":{"56":2,"95":1,"97":1,"103":1,"104":1,"105":1,"106":1}}],["fig",{"2":{"42":3,"56":8,"95":1,"97":1,"103":2,"104":2,"105":2,"106":3}}],["filterig",{"2":{"96":1}}],["filter",{"2":{"84":2}}],["fillarrays",{"2":{"81":3}}],["fill",{"2":{"81":1,"84":1,"85":1}}],["fillvalue=",{"2":{"85":1}}],["fillvalue",{"2":{"50":3,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["filling",{"2":{"28":1,"29":1}}],["filename",{"2":{"50":2,"84":1}}],["files",{"0":{"101":1},"2":{"7":1,"57":1,"60":1,"84":5,"85":2,"88":1}}],["file",{"2":{"2":1,"7":1,"27":1,"40":1,"59":2,"78":3,"79":2,"81":1,"84":2,"87":4}}],["findaxis",{"2":{"85":1}}],["findall",{"2":{"22":1,"96":1}}],["find",{"2":{"36":1,"85":1,"98":1}}],["finalizer",{"2":{"85":1}}],["finalize",{"2":{"85":1}}],["finally",{"2":{"22":1,"84":1}}],["final",{"2":{"21":1,"22":1}}],["firstly",{"2":{"37":1}}],["first",{"2":{"8":4,"16":3,"18":1,"22":1,"42":1,"45":1,"56":1,"82":1,"84":4,"85":1,"87":1,"91":1,"102":1}}],["fitting",{"2":{"84":1}}],["fittable",{"2":{"84":2}}],["fitcube",{"2":{"42":2}}],["fitsym",{"2":{"84":4}}],["fits",{"2":{"24":1}}],["fit",{"2":{"1":1,"61":1,"70":1}}],["t=union",{"2":{"85":1}}],["typing",{"2":{"90":1}}],["typically",{"2":{"84":1}}],["type",{"2":{"33":1,"47":1,"70":1,"72":1,"84":8,"85":3,"91":1,"92":1}}],["types",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1},"2":{"24":2,"26":1,"27":1,"47":1,"65":1,"71":1,"84":2,"92":1}}],["tutorial",{"2":{"98":2,"99":1,"100":1}}],["tutorials",{"0":{"98":1},"1":{"99":1,"100":1,"101":1},"2":{"67":1,"98":3}}],["turn",{"2":{"84":1}}],["tuple",{"2":{"2":3,"4":1,"5":1,"6":1,"18":1,"20":1,"51":2,"52":1,"54":2,"55":2,"56":4,"84":5,"85":1}}],["tbl",{"2":{"42":2}}],["target",{"2":{"85":1}}],["tab",{"2":{"84":4}}],["tables",{"2":{"100":1}}],["tableaggregator",{"2":{"84":1}}],["table",{"0":{"100":1},"2":{"42":2,"58":1,"59":2,"63":2,"74":2,"80":2,"84":4,"85":1,"102":1}}],["tas",{"2":{"58":5,"102":5}}],["tair",{"2":{"56":1,"84":1}}],["ta",{"2":{"46":3}}],["takes",{"2":{"84":4}}],["taken",{"2":{"40":2}}],["take",{"2":{"16":1,"84":1,"85":2,"88":1}}],["tip",{"2":{"92":1}}],["tidy",{"2":{"84":1}}],["ticks",{"2":{"70":1}}],["ticks=false",{"2":{"56":1}}],["tick",{"2":{"68":1,"73":1,"91":1}}],["tiff",{"0":{"101":1}}],["tif",{"2":{"60":2,"94":1}}],["title",{"2":{"56":1,"59":1,"63":1,"74":1,"80":1,"87":1}}],["ti",{"2":{"26":1}}],["time1",{"2":{"65":2}}],["timearray",{"0":{"46":1},"2":{"46":3}}],["time=1",{"2":{"91":1}}],["time=>cyclicbins",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["time=date",{"2":{"37":1}}],["time=at",{"2":{"37":1,"56":3}}],["time=between",{"2":{"37":1}}],["time",{"0":{"49":1},"2":{"1":1,"7":1,"8":4,"9":3,"10":3,"12":1,"13":1,"14":7,"16":14,"17":2,"18":4,"19":1,"20":5,"21":10,"22":8,"23":5,"26":2,"29":3,"30":1,"35":2,"37":8,"39":4,"40":7,"41":4,"42":3,"46":5,"51":15,"52":3,"53":2,"54":8,"55":3,"56":7,"58":4,"59":4,"62":6,"63":1,"64":4,"65":6,"66":6,"67":10,"70":2,"71":1,"74":1,"80":1,"84":6,"91":4,"95":1,"96":4,"102":4}}],["timestamp",{"2":{"46":1}}],["timestep",{"2":{"42":1}}],["timeseries",{"2":{"46":3}}],["times",{"2":{"0":1}}],["treat",{"2":{"84":1}}],["treatment",{"2":{"84":1,"85":1}}],["treated",{"2":{"58":1}}],["tries",{"2":{"84":1}}],["translate",{"2":{"104":1,"105":1}}],["transformed",{"2":{"59":1,"63":1,"74":1,"80":1}}],["transformations",{"2":{"104":1}}],["transformation",{"2":{"22":1}}],["transform",{"2":{"22":2}}],["track",{"2":{"84":1}}],["true",{"2":{"12":1,"47":1,"61":1,"79":1,"81":1,"84":4,"85":1,"106":1}}],["tesselation",{"2":{"106":1}}],["testrange",{"2":{"85":1}}],["test1",{"2":{"47":1}}],["test2",{"2":{"47":2}}],["test",{"2":{"17":4,"18":1,"19":3,"20":4,"21":4,"47":3,"85":1,"102":1}}],["terminal",{"2":{"88":1}}],["text",{"2":{"87":1}}],["tensors",{"2":{"70":1}}],["tell",{"2":{"36":1}}],["temporary",{"2":{"85":1}}],["temporal",{"2":{"41":1,"48":1,"70":1}}],["tempo",{"2":{"51":6,"54":4,"55":1}}],["temp",{"2":{"9":2}}],["temperature=temperature",{"2":{"40":1}}],["temperature",{"2":{"9":2,"40":4,"56":2,"58":3,"59":2,"62":6,"64":5,"65":6,"66":6,"67":10,"70":1,"71":1,"72":1,"91":4}}],["tempname",{"2":{"2":1,"4":1,"5":1,"6":1}}],["tspan",{"2":{"16":1}}],["t",{"2":{"16":4,"37":1,"39":2,"40":2,"42":3,"59":1,"62":4,"64":2,"65":3,"66":3,"67":5,"76":1,"84":1,"85":2,"95":1,"96":1}}],["two",{"2":{"8":1,"9":1,"18":8,"19":4,"20":3,"21":2,"34":2,"35":1,"70":1,"85":1}}],["toghether",{"2":{"85":1}}],["together",{"2":{"46":1,"72":1}}],["touches",{"2":{"67":1}}],["tolerances",{"2":{"66":1}}],["tos",{"2":{"59":5,"62":6,"63":2,"64":4,"65":4,"66":3,"67":9,"68":2,"74":2,"75":2,"77":2,"80":1}}],["top",{"2":{"56":1}}],["too",{"2":{"40":1,"70":1,"84":1}}],["todo",{"2":{"21":1,"96":1}}],["toy",{"2":{"21":1,"81":1}}],["to",{"0":{"9":1,"18":1,"19":1,"43":1,"80":1,"86":1,"87":1,"93":1},"1":{"44":1,"45":1,"87":1,"88":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":1,"18":2,"19":1,"20":4,"21":3,"22":2,"23":6,"24":3,"25":2,"27":3,"28":1,"31":2,"32":2,"34":3,"35":1,"37":2,"39":2,"40":6,"41":1,"42":1,"45":2,"46":2,"47":1,"48":1,"49":3,"50":2,"52":1,"53":1,"56":1,"57":1,"58":3,"59":2,"61":1,"62":2,"63":3,"67":1,"68":1,"69":1,"70":5,"71":3,"72":2,"73":2,"74":1,"75":2,"76":2,"77":2,"78":2,"79":1,"80":2,"81":4,"82":3,"84":49,"85":19,"87":2,"88":3,"92":2,"93":1,"98":1,"100":3,"102":2,"106":1}}],["though",{"2":{"81":1}}],["those",{"2":{"11":1,"24":1,"26":1,"27":1,"45":1,"71":1,"82":1}}],["through",{"2":{"84":5,"85":5,"90":1}}],["thrown",{"2":{"79":1}}],["three",{"2":{"36":1,"71":1,"95":1}}],["threaded",{"2":{"59":1}}],["threads",{"2":{"59":2,"84":2}}],["thread",{"2":{"23":1,"59":3}}],["than",{"2":{"24":1,"36":1,"41":1,"42":1}}],["that",{"2":{"0":1,"9":2,"10":1,"13":1,"16":5,"20":1,"21":1,"22":2,"23":1,"24":1,"33":1,"35":1,"38":1,"40":2,"42":1,"46":1,"47":1,"49":1,"52":1,"55":1,"59":2,"61":1,"68":1,"70":1,"71":2,"73":1,"81":2,"84":13,"85":13,"98":1,"100":1}}],["things",{"2":{"31":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":1,"19":2,"22":3,"23":1,"24":1,"28":1,"31":1,"34":1,"39":1,"40":2,"41":2,"42":2,"45":1,"46":1,"49":1,"53":2,"57":1,"58":1,"59":1,"61":1,"62":2,"67":1,"69":1,"72":1,"76":1,"82":2,"83":2,"84":7,"85":10,"87":1,"88":2,"99":1,"100":1}}],["they",{"2":{"46":4,"62":1}}],["their",{"0":{"39":1,"40":1},"2":{"38":1,"40":1,"47":1,"70":1,"84":3,"85":2}}],["then",{"2":{"21":2,"22":2,"33":1,"41":1,"46":1,"81":1,"82":1,"88":2,"90":1}}],["thereby",{"2":{"84":1}}],["therefore",{"2":{"42":1,"92":1}}],["there",{"2":{"14":2,"21":1,"27":1,"34":1,"46":2,"62":1,"84":1}}],["theme",{"2":{"56":2}}],["them",{"2":{"7":1,"10":1,"36":1,"61":1,"82":1,"84":1}}],["these",{"2":{"0":1,"6":1,"34":1,"36":1,"47":1,"68":1,"70":1}}],["the",{"0":{"32":1,"34":1,"42":1,"50":1,"96":1,"99":1},"1":{"33":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":3,"18":5,"19":2,"20":3,"21":10,"22":14,"23":7,"24":2,"27":1,"29":3,"31":1,"32":3,"33":5,"34":3,"35":2,"36":2,"37":9,"39":3,"40":10,"41":3,"42":10,"45":1,"46":7,"48":2,"49":5,"50":4,"51":2,"52":1,"53":2,"54":2,"55":2,"56":9,"59":2,"61":3,"62":6,"63":1,"64":5,"65":3,"66":5,"67":6,"68":1,"69":1,"70":5,"71":4,"72":4,"78":1,"79":3,"80":1,"81":10,"82":2,"84":122,"85":83,"86":1,"87":1,"88":6,"90":2,"91":6,"92":8,"93":5,"94":1,"95":1,"96":4,"98":6,"99":1,"100":5,"102":1}}],["switched",{"2":{"92":1}}],["syntax",{"2":{"92":1,"98":1}}],["system",{"2":{"88":1}}],["symbol",{"2":{"10":1,"12":1,"13":1,"18":1,"20":1,"29":2,"46":5,"51":4,"52":2,"53":2,"54":4,"55":4,"56":6,"84":3,"85":1}}],["src",{"2":{"87":1}}],["sres",{"2":{"59":2,"63":2,"74":2,"80":2}}],["skipped",{"2":{"84":1}}],["skip",{"2":{"84":1}}],["skipmissing",{"2":{"23":1,"41":1}}],["skeleton=a",{"2":{"81":1}}],["skeleton=true",{"2":{"81":2}}],["skeleton=false",{"2":{"79":1,"84":1}}],["skeleton",{"0":{"81":1},"2":{"81":8,"82":4}}],["ssp585",{"2":{"58":1,"102":2}}],["snow3",{"2":{"42":1}}],["snippet",{"2":{"6":1}}],["small",{"2":{"31":1,"46":1}}],["slightly",{"2":{"98":1}}],["slicing",{"2":{"16":1}}],["slices",{"2":{"84":3}}],["slice",{"2":{"16":1,"102":4,"103":1}}],["slow",{"2":{"40":1,"84":1}}],["slurmmanager",{"2":{"23":1}}],["shinclude",{"2":{"88":1}}],["shdocs>",{"2":{"88":1}}],["shnpm",{"2":{"88":2}}],["shouldn",{"2":{"62":1}}],["should",{"2":{"37":1,"46":1,"50":1,"61":1,"62":1,"84":3,"85":1,"87":1,"88":1,"93":1}}],["showprog",{"2":{"84":1}}],["shown",{"2":{"62":1,"84":1}}],["shows",{"2":{"56":1}}],["showing",{"2":{"46":1}}],["show",{"2":{"23":1,"82":1,"106":1}}],["shading=false",{"2":{"104":1,"105":1,"106":1}}],["shall",{"2":{"84":5,"85":1}}],["shares",{"2":{"40":1}}],["share",{"0":{"39":1,"40":1},"2":{"38":1,"40":1,"71":1,"84":1}}],["shared",{"2":{"4":1,"5":1,"6":1,"20":1,"30":1,"35":1,"39":2,"40":3,"44":1,"45":1,"46":2,"58":1,"59":1,"60":1,"63":1,"74":1,"80":1,"81":1,"102":1}}],["shape",{"2":{"6":1}}],["scene",{"2":{"106":3}}],["scenariomip",{"2":{"58":1,"102":2}}],["scenarios",{"2":{"17":1,"102":1}}],["scripts",{"2":{"88":1}}],["scope",{"2":{"84":1,"85":1}}],["scalar",{"2":{"58":1}}],["scattered",{"2":{"7":1}}],["sure",{"2":{"106":1}}],["surface",{"2":{"56":2,"58":2,"59":2,"62":6,"64":5,"65":6,"66":6,"67":10,"104":1,"105":1}}],["such",{"2":{"62":1,"67":1,"84":1,"92":1}}],["subcubes",{"2":{"84":1}}],["subtype",{"2":{"70":1,"85":1,"92":1}}],["subtables",{"2":{"42":1}}],["subsetextensions",{"2":{"85":1}}],["subsetcube",{"2":{"84":1}}],["subseting",{"2":{"68":1}}],["subsetting",{"0":{"37":1,"38":1,"39":1,"40":1},"1":{"39":1,"40":1},"2":{"58":1,"59":1,"85":1,"96":1}}],["subset",{"0":{"36":1},"1":{"37":1,"38":1,"39":1,"40":1},"2":{"37":5,"40":4,"63":1,"66":1,"84":1,"85":1,"102":1}}],["subsets",{"2":{"15":1,"73":1}}],["subsequent",{"2":{"17":1}}],["supposed",{"2":{"84":1}}],["support",{"2":{"27":1,"46":1}}],["supertype",{"2":{"26":1,"27":1}}],["summarysize",{"2":{"47":2}}],["sum",{"2":{"18":1,"19":1,"21":1,"22":2,"41":1,"51":4,"54":2,"55":4,"56":2}}],["suggestions",{"2":{"6":1}}],["s",{"2":{"10":1,"16":3,"18":1,"19":1,"21":2,"33":1,"35":1,"37":1,"39":1,"40":2,"56":7,"61":1,"63":1,"73":1,"81":1,"84":2,"85":1,"94":1,"96":1}}],["style",{"0":{"100":1}}],["st",{"2":{"92":1}}],["stdzero",{"2":{"84":1}}],["stock3",{"2":{"46":4}}],["stock2",{"2":{"46":4}}],["stock1",{"2":{"46":4}}],["stocks",{"2":{"46":7}}],["storing",{"2":{"71":1}}],["storage",{"2":{"11":1,"58":1}}],["stored",{"2":{"70":3,"85":2}}],["stores",{"2":{"70":1,"84":1}}],["store",{"2":{"0":1,"58":4,"70":1,"71":1,"102":2}}],["struct",{"2":{"84":1,"85":4}}],["structures",{"2":{"69":1}}],["structure",{"2":{"33":2,"46":1,"72":1}}],["strings",{"0":{"47":1}}],["string",{"2":{"8":1,"9":2,"10":1,"12":1,"13":1,"14":2,"16":5,"17":3,"18":4,"19":3,"20":1,"21":4,"22":6,"25":1,"27":3,"29":3,"32":1,"33":3,"34":1,"35":2,"37":5,"41":3,"42":3,"47":5,"51":1,"52":1,"54":2,"55":1,"56":1,"58":2,"59":2,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"79":1,"80":1,"81":1,"84":6,"85":4,"91":4,"96":1,"102":1}}],["stable",{"2":{"92":1}}],["stat",{"2":{"78":2}}],["status",{"2":{"62":2}}],["statistics",{"2":{"14":1,"23":1,"42":3,"48":1,"95":1}}],["standard",{"2":{"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["standards",{"2":{"58":1,"59":1,"63":1,"74":1,"80":1,"102":1}}],["stack",{"2":{"47":1}}],["started",{"0":{"89":1},"1":{"90":1,"91":1,"92":1}}],["start=12",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["start=december",{"2":{"51":3,"54":1}}],["start",{"2":{"10":1,"37":1,"76":1,"82":1}}],["still",{"2":{"8":1,"22":1,"71":1,"98":1}}],["step=3",{"2":{"51":2,"52":1,"54":2,"55":2,"56":3}}],["steps",{"2":{"10":1,"14":1,"56":1,"84":1,"88":1}}],["step",{"2":{"7":1,"14":1,"20":1,"41":2,"84":1,"85":2,"102":1}}],["sphere",{"0":{"106":1},"2":{"106":3}}],["spheroid",{"2":{"60":1}}],["split",{"2":{"84":1}}],["splitted",{"2":{"2":1}}],["special",{"2":{"65":1,"84":1,"85":1}}],["specifiers",{"2":{"85":1}}],["specifier",{"2":{"84":1}}],["specifies",{"2":{"84":3}}],["specified",{"2":{"84":8,"85":1}}],["specific",{"2":{"37":1,"84":2}}],["specifying",{"2":{"84":2,"85":1}}],["specify",{"0":{"20":1},"2":{"17":1,"29":1,"84":1}}],["specs",{"2":{"58":1,"102":1}}],["spectral",{"2":{"56":1}}],["sparse",{"2":{"70":1}}],["spatio",{"2":{"41":1}}],["spatial",{"2":{"1":1,"14":1,"22":5,"23":1,"48":1,"70":1}}],["span",{"2":{"37":1,"95":1}}],["space",{"2":{"1":1,"16":1}}],["safe",{"2":{"59":2}}],["sampled",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":3,"18":3,"19":2,"20":3,"21":9,"22":8,"25":2,"27":4,"29":9,"30":3,"32":9,"33":6,"34":2,"35":3,"37":14,"39":6,"40":10,"41":9,"42":5,"44":1,"45":5,"46":4,"47":4,"51":3,"52":2,"54":2,"55":1,"56":7,"58":6,"59":6,"60":2,"62":9,"63":3,"64":6,"65":4,"66":9,"67":15,"68":2,"74":3,"80":6,"81":6,"91":5,"96":1,"102":3}}],["same",{"2":{"0":1,"2":1,"5":1,"6":1,"9":1,"16":1,"20":1,"21":1,"22":2,"26":1,"27":1,"33":2,"34":2,"35":1,"40":1,"45":1,"46":2,"61":1,"64":1,"65":1,"66":1,"70":1,"71":3,"72":2,"84":1,"85":1,"88":1}}],["saves",{"2":{"79":1,"84":1}}],["save",{"0":{"81":1},"2":{"12":1,"27":1,"45":1,"47":1,"75":2,"76":1,"77":2,"78":1,"81":1,"84":2}}],["savecube",{"2":{"2":1,"75":1,"77":1,"81":1,"84":2}}],["savedataset",{"2":{"4":1,"5":1,"6":1,"76":1,"78":1,"79":2,"80":1,"81":2,"84":2,"85":1}}],["saved",{"2":{"2":1,"11":1,"20":1,"78":1,"79":1}}],["saving",{"2":{"1":1,"4":1,"5":1,"6":1,"16":1}}],["serve",{"2":{"85":1}}],["series",{"0":{"49":1},"2":{"23":1}}],["sequence",{"2":{"70":1}}],["seaborn",{"2":{"103":1,"104":1,"105":1,"106":1}}],["searching",{"2":{"84":1}}],["search",{"2":{"84":1}}],["sea",{"2":{"59":3,"62":6,"63":1,"64":5,"65":6,"66":6,"67":10,"74":1,"80":1}}],["season",{"2":{"51":1,"54":2,"55":1}}],["seasons",{"0":{"51":1,"53":1,"56":1},"1":{"52":1,"53":1},"2":{"51":9,"54":1,"56":5}}],["seasonal",{"0":{"49":1,"95":1,"97":1},"1":{"96":1,"97":1},"2":{"49":1,"55":1,"56":1,"95":1,"96":4}}],["sebastien",{"2":{"59":2,"63":2,"74":2,"80":2}}],["separate",{"2":{"84":1,"85":1}}],["separated",{"2":{"71":1}}],["separately",{"2":{"5":1,"22":1,"23":1}}],["sep",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["selected",{"2":{"85":1,"95":1}}],["select",{"0":{"63":1,"64":1,"65":1,"66":1},"1":{"64":1,"65":1,"66":1,"67":1,"68":1},"2":{"40":1,"63":1}}],["selectors",{"2":{"67":1}}],["selector",{"2":{"40":1,"66":1}}],["selection",{"2":{"40":2}}],["selecting",{"2":{"37":1,"39":1,"40":1}}],["seed",{"2":{"17":1,"21":2}}],["see",{"2":{"16":1,"18":1,"67":1,"84":1,"92":1}}],["second",{"2":{"8":3,"18":1,"19":1,"84":1}}],["section",{"2":{"7":1,"10":1,"24":1,"28":1,"31":1,"46":1,"57":1,"69":1,"83":1}}],["setting",{"2":{"79":1,"84":1,"85":1}}],["sets",{"2":{"6":1,"50":1}}],["set",{"0":{"4":1,"5":1,"6":1},"2":{"4":1,"5":1,"19":2,"22":1,"58":1,"79":1,"84":1,"85":2,"88":1}}],["setchunks",{"2":{"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"84":1,"85":1}}],["several",{"0":{"16":1},"2":{"0":1,"16":1,"35":1,"38":1}}],["significant",{"2":{"76":1}}],["sin",{"2":{"95":1}}],["sink",{"2":{"85":1}}],["since",{"2":{"62":1,"93":1}}],["single",{"0":{"95":1},"1":{"96":1,"97":1},"2":{"0":1,"7":1,"8":1,"59":1,"72":1,"75":1,"77":1,"84":6,"85":1}}],["simulate",{"2":{"46":1}}],["simplicity",{"2":{"95":1}}],["simply",{"2":{"23":1,"47":1,"82":1,"88":1,"93":1}}],["simple",{"2":{"16":1,"31":1,"91":1}}],["situations",{"2":{"1":1}}],["size=",{"2":{"104":1,"105":1,"106":1}}],["sizes",{"2":{"2":1,"84":2,"85":2}}],["size",{"2":{"0":1,"1":1,"4":1,"5":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":2,"25":1,"27":1,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"41":3,"42":3,"54":1,"56":1,"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5,"78":4,"81":1,"82":1,"84":3,"85":4,"91":3,"95":1,"96":2,"97":1,"103":1}}],["sosstsst",{"2":{"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["software",{"2":{"59":1,"63":1,"74":1}}],["sort",{"2":{"22":1}}],["so",{"2":{"2":1,"23":1,"36":1,"40":1,"84":1,"85":1}}],["source",{"2":{"0":2,"59":1,"63":1,"74":1,"79":1,"80":1,"84":25,"85":24}}],["sometimes",{"2":{"81":1,"100":1}}],["some",{"0":{"40":1},"2":{"0":1,"11":1,"38":1,"40":1,"41":1,"46":2,"56":1,"84":1,"95":1,"104":1}}],["advance",{"2":{"62":1}}],["addargs",{"2":{"84":3,"85":1}}],["adds",{"2":{"70":2,"73":1}}],["addprocs",{"2":{"23":2}}],["addition",{"2":{"22":1,"24":1,"70":1}}],["additional",{"2":{"4":3,"5":3,"9":1,"16":1,"21":1,"40":10,"45":4,"46":4,"58":2,"80":3,"84":4,"85":3,"102":2}}],["added",{"2":{"15":1,"80":1,"84":1,"85":1}}],["add",{"2":{"6":1,"10":1,"12":1,"41":1,"59":1,"87":2,"90":2,"93":3,"94":4,"104":1}}],["again",{"2":{"79":1,"82":1}}],["agreement",{"2":{"56":1}}],["aggregation",{"2":{"23":1}}],["aggregate",{"2":{"22":1}}],["air",{"2":{"56":2,"58":3}}],["authority",{"2":{"60":5}}],["auto",{"2":{"18":1,"20":1,"84":1}}],["aug",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["api",{"0":{"83":1,"84":1,"85":1},"1":{"84":1,"85":1}}],["apr",{"2":{"51":4,"52":2,"53":1,"54":4,"55":4,"56":6}}],["appropriate",{"2":{"87":1}}],["approximated",{"2":{"85":1}}],["approx",{"2":{"84":1,"85":1}}],["approach",{"2":{"9":1}}],["append=true",{"2":{"80":2}}],["append",{"0":{"80":1},"2":{"79":1,"84":1}}],["apply",{"0":{"41":1},"2":{"10":2,"13":1,"15":1,"21":1,"23":1,"56":1,"96":1}}],["application",{"2":{"21":1}}],["applications",{"2":{"0":1}}],["applies",{"2":{"13":1}}],["applied",{"2":{"0":1,"3":1,"4":1,"22":1,"84":2,"85":1}}],["a3",{"2":{"30":4}}],["a2",{"2":{"29":1,"30":3,"59":2,"63":2,"74":2,"80":2,"91":1}}],["a1",{"2":{"29":1}}],["able",{"2":{"45":1}}],["abstractstring",{"2":{"84":1}}],["abstractdict",{"2":{"84":1,"85":3}}],["abstractdimarray",{"2":{"26":1,"27":1,"70":1}}],["abs",{"2":{"21":1}}],["about",{"2":{"1":2,"36":1,"66":1,"91":1,"99":1}}],["above",{"2":{"0":1,"5":1,"16":1,"81":1,"90":1}}],["atol",{"2":{"66":1}}],["atmosphere",{"2":{"59":1,"63":1,"74":1,"80":1}}],["atmos",{"2":{"58":1,"102":1}}],["attributes",{"2":{"56":1,"84":1,"85":1}}],["at",{"2":{"21":1,"22":4,"27":1,"40":1,"46":3,"56":1,"59":3,"62":3,"63":1,"64":2,"65":6,"66":7,"67":5,"71":1,"72":2,"74":1,"79":2,"80":1,"84":3,"85":2,"86":1,"87":2,"88":2,"91":1,"98":2}}],["after",{"2":{"14":1,"16":1,"60":1,"84":3}}],["asaxisarray",{"2":{"84":1}}],["assemble",{"2":{"91":1}}],["assessment",{"2":{"59":2,"63":2,"74":2,"80":2}}],["associated",{"2":{"84":1}}],["assign",{"0":{"43":1},"1":{"44":1,"45":1}}],["aspect=dataaspect",{"2":{"56":1,"103":1}}],["asked",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["as",{"2":{"5":1,"8":1,"9":1,"10":1,"12":1,"16":6,"17":1,"18":1,"19":1,"21":1,"22":2,"23":2,"26":1,"27":2,"29":1,"33":2,"34":1,"35":1,"40":1,"42":1,"46":3,"48":1,"51":2,"56":1,"58":1,"59":1,"60":1,"61":1,"64":1,"67":1,"68":1,"70":1,"73":1,"81":1,"82":1,"84":11,"85":3,"91":1,"92":1,"96":1,"100":1,"102":1}}],["axs",{"2":{"50":1,"56":9}}],["ax",{"2":{"42":1,"95":3,"97":3,"103":1,"104":3,"105":3,"106":5}}],["axlist",{"2":{"10":2,"17":2,"19":1,"21":4,"22":2,"23":2,"29":2,"30":1,"35":3,"85":5,"91":3}}],["axessmall",{"2":{"85":2}}],["axes",{"0":{"32":1,"34":1},"1":{"33":1},"2":{"4":4,"5":4,"6":1,"20":1,"29":1,"30":1,"32":2,"33":1,"34":2,"37":2,"39":5,"40":13,"44":1,"45":5,"46":8,"58":3,"59":1,"60":1,"63":2,"70":2,"74":1,"80":4,"81":1,"84":15,"85":11,"91":1,"96":2,"102":3}}],["axislegend",{"2":{"97":1}}],["axis=false",{"2":{"106":1}}],["axis=",{"2":{"95":1}}],["axisdescriptor",{"2":{"85":1}}],["axisdesc",{"2":{"84":3}}],["axis",{"0":{"4":1},"2":{"4":1,"9":2,"16":3,"34":1,"37":1,"39":1,"40":7,"46":1,"56":1,"60":2,"68":1,"73":1,"81":1,"84":16,"85":14,"91":1,"97":1,"102":1,"103":1}}],["always",{"2":{"84":2,"85":1,"86":1,"92":1}}],["already",{"2":{"62":1,"79":1,"84":1,"85":1}}],["al",{"2":{"59":1,"63":1,"72":1,"74":1,"80":1}}],["alternatives",{"2":{"84":1}}],["alternatively",{"2":{"0":1,"2":1,"84":2,"90":1}}],["altered",{"2":{"58":1,"59":1,"62":3,"64":2,"65":3,"66":3,"67":5}}],["although",{"2":{"46":1,"47":1,"67":1}}],["algebraofgraphics",{"2":{"94":1}}],["algebra",{"0":{"41":1},"2":{"41":1}}],["along",{"0":{"8":1},"2":{"8":1,"16":1,"84":6,"85":2,"98":1}}],["allaxes",{"2":{"85":1}}],["allinaxes",{"2":{"85":1}}],["allmissing",{"2":{"84":1}}],["allocate",{"2":{"81":1}}],["allocation",{"2":{"22":1}}],["allow",{"2":{"85":1}}],["allowed",{"2":{"47":1}}],["allowing",{"2":{"26":1,"27":1,"71":1}}],["allows",{"2":{"23":1}}],["all",{"0":{"6":1,"39":1,"40":1},"2":{"4":1,"6":2,"10":1,"12":1,"13":1,"14":2,"22":1,"23":4,"38":1,"40":2,"46":3,"56":2,"60":1,"67":1,"70":1,"72":2,"79":3,"81":1,"83":1,"84":6,"85":7,"88":1}}],["also",{"2":{"2":1,"3":1,"14":1,"21":1,"23":1,"29":1,"32":1,"40":1,"42":1,"70":2,"71":1,"76":1,"81":2,"84":1,"90":1}}],["annual",{"2":{"84":1}}],["analog",{"2":{"71":1}}],["analyzing",{"2":{"1":1}}],["anchor",{"2":{"21":1}}],["another",{"2":{"16":1,"40":1}}],["anynymous",{"2":{"84":1}}],["anyocean",{"2":{"84":1}}],["anymissing",{"2":{"84":1}}],["anymore",{"2":{"21":1}}],["any",{"2":{"8":1,"9":1,"10":1,"11":1,"14":2,"16":5,"18":3,"20":1,"21":2,"22":4,"25":1,"27":3,"29":1,"32":1,"33":3,"34":1,"35":1,"37":6,"41":3,"42":3,"47":4,"51":3,"52":2,"54":4,"55":3,"56":3,"58":2,"59":3,"60":1,"62":3,"63":1,"64":2,"65":3,"66":3,"67":5,"74":1,"80":1,"81":1,"84":4,"85":9,"91":1,"96":1,"102":1}}],["an",{"0":{"8":1},"2":{"9":1,"10":4,"12":1,"13":1,"15":1,"23":2,"33":1,"34":1,"39":1,"40":1,"42":1,"47":1,"61":1,"63":3,"66":1,"70":1,"71":1,"73":1,"74":1,"75":1,"76":1,"77":1,"79":1,"80":1,"84":19,"85":8}}],["and",{"0":{"17":1,"28":1,"34":1,"48":1,"57":1,"63":1,"67":1,"74":1},"1":{"18":1,"19":1,"20":1,"29":1,"30":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1,"61":1,"62":1,"64":1,"65":1,"66":1,"67":1,"68":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1},"2":{"0":1,"2":1,"5":1,"6":1,"7":1,"8":1,"12":1,"16":4,"17":2,"18":2,"20":2,"21":4,"22":2,"24":1,"28":1,"29":1,"32":1,"35":1,"37":1,"40":6,"41":1,"42":6,"46":5,"48":1,"49":1,"51":1,"56":1,"57":2,"58":1,"59":1,"62":1,"63":1,"67":1,"70":5,"71":3,"72":2,"74":1,"76":2,"78":1,"79":1,"80":1,"81":3,"82":1,"84":19,"85":6,"86":1,"88":4,"90":1,"91":2,"95":1,"102":1,"104":1}}],["available",{"2":{"67":2,"81":1,"83":1,"84":2,"90":1}}],["avariable",{"2":{"0":1}}],["avoid",{"2":{"59":1}}],["avoids",{"2":{"22":1}}],["avoided",{"2":{"0":1}}],["averaging",{"2":{"14":1}}],["averages",{"0":{"49":1},"2":{"48":1}}],["average",{"2":{"14":1,"49":2}}],["arg",{"2":{"84":1}}],["argument",{"2":{"23":1,"81":1,"84":4,"85":2}}],["arguments",{"2":{"21":1,"56":1,"84":11,"85":3}}],["artype",{"2":{"84":2}}],["archgdaldatasets",{"2":{"60":1}}],["archgdal",{"2":{"60":2,"94":1}}],["arr2",{"2":{"27":1}}],["arr",{"2":{"22":7,"27":2}}],["arrayinfo",{"2":{"85":1}}],["arrays",{"2":{"6":1,"7":1,"8":2,"9":1,"11":1,"28":1,"30":2,"58":2,"59":2,"69":1,"70":4,"71":3,"72":3,"84":2,"85":1}}],["array",{"0":{"22":1,"25":1},"2":{"0":1,"1":1,"8":2,"9":2,"10":3,"12":2,"13":2,"15":1,"18":1,"20":1,"22":8,"25":2,"34":1,"51":1,"56":1,"63":1,"70":4,"71":1,"72":1,"73":2,"81":5,"82":5,"84":10,"85":4,"91":3}}],["arbitrary",{"2":{"16":1}}],["arithmetics",{"0":{"12":1},"2":{"10":1}}],["areas",{"2":{"84":1}}],["area",{"2":{"58":2,"84":1}}],["areacella",{"2":{"58":2,"102":1}}],["are",{"2":{"0":1,"11":1,"18":1,"19":1,"24":3,"34":1,"36":1,"40":1,"46":3,"56":2,"62":2,"63":1,"67":1,"68":1,"70":3,"71":2,"72":3,"81":1,"84":11,"85":6,"86":1,"88":1,"98":2,"100":1}}],["according",{"2":{"84":1}}],["access",{"2":{"1":2,"13":1,"29":1,"70":1,"73":1}}],["accessed",{"2":{"0":2,"58":1,"59":2}}],["activate",{"2":{"42":1,"88":2,"95":1,"103":1,"106":1}}],["actually",{"2":{"85":1}}],["actual",{"2":{"13":1,"59":1,"81":1,"85":1,"91":1}}],["achieves",{"2":{"33":1}}],["achieved",{"2":{"0":1}}],["across",{"2":{"0":1,"7":1,"16":1,"70":3}}],["a",{"0":{"9":1,"11":1,"22":1,"29":1,"30":1,"32":1,"36":1,"37":1,"38":1,"39":1,"40":1,"43":1,"46":2,"47":1,"64":1,"68":1,"79":1,"80":1,"95":1,"101":1},"1":{"33":1,"37":1,"38":1,"39":2,"40":2,"44":1,"45":1,"96":1,"97":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":2,"18":1,"19":2,"20":1,"22":75,"23":11,"25":2,"26":5,"27":8,"29":1,"31":1,"32":2,"33":2,"34":1,"36":4,"37":3,"38":1,"40":2,"42":3,"44":2,"45":2,"46":4,"49":1,"54":1,"56":2,"58":6,"59":4,"60":1,"66":2,"67":4,"68":1,"70":12,"71":4,"72":8,"73":1,"75":3,"76":3,"77":3,"78":1,"79":4,"81":5,"84":64,"85":31,"87":2,"88":2,"91":4,"92":1,"99":1,"100":1}}],["iall",{"2":{"85":1}}],["iwindow",{"2":{"85":1}}],["icolon",{"2":{"85":1}}],["icefire",{"2":{"103":1,"104":1,"105":1,"106":1}}],["ice",{"2":{"59":1,"63":1,"74":1,"80":1}}],["ipcc",{"2":{"59":3,"63":3,"74":3,"80":3}}],["ipsl",{"2":{"59":6,"63":6,"74":6,"80":6}}],["idx",{"2":{"96":3}}],["identical",{"2":{"84":1}}],["id",{"2":{"58":2,"59":2,"63":2,"74":2,"80":2,"102":2}}],["irregular",{"2":{"20":1,"40":6,"42":2,"46":4,"51":1,"54":2,"55":1,"56":1,"58":4,"59":2,"62":3,"63":1,"64":2,"65":2,"66":6,"67":5,"74":1,"80":1,"85":1,"102":2}}],["illustrate",{"2":{"17":1}}],["immutable",{"2":{"11":1}}],["improving",{"2":{"92":1}}],["improvement",{"2":{"76":1}}],["improve",{"2":{"6":1}}],["implementing",{"2":{"84":1}}],["importance",{"2":{"85":1}}],["important",{"2":{"1":1}}],["impossible",{"2":{"11":1}}],["i",{"0":{"35":1,"36":1,"41":1,"42":1,"43":1,"46":1},"1":{"37":1,"38":1,"39":1,"40":1,"44":1,"45":1},"2":{"8":1,"22":3,"26":1,"27":1,"37":1,"56":2,"59":2,"79":1,"84":7,"85":4,"88":2,"91":1,"96":3}}],["ispar",{"2":{"84":1,"85":1}}],["ismissing",{"2":{"81":1}}],["issue",{"2":{"76":1}}],["issues",{"2":{"50":1}}],["isequal",{"2":{"22":1}}],["is",{"2":{"1":2,"2":1,"6":1,"7":1,"9":1,"13":1,"14":2,"15":1,"16":4,"21":2,"22":2,"23":3,"24":1,"27":1,"31":1,"33":2,"35":1,"36":1,"40":2,"41":1,"42":4,"46":2,"47":2,"49":2,"50":2,"51":1,"55":1,"59":2,"62":2,"64":1,"67":2,"68":1,"70":4,"71":1,"72":2,"73":1,"81":4,"82":1,"84":12,"85":10,"87":1,"90":1,"92":1,"93":1,"98":1,"100":1}}],["if",{"2":{"0":1,"18":1,"19":1,"24":1,"40":3,"76":1,"79":1,"81":2,"84":12,"85":6,"88":1,"93":1,"98":1}}],["inline",{"2":{"106":2}}],["incubes",{"2":{"85":1}}],["incs",{"2":{"85":1}}],["include",{"2":{"84":2,"85":1}}],["included",{"2":{"67":1}}],["inarbc",{"2":{"85":1}}],["inar",{"2":{"85":2}}],["inplace",{"2":{"84":3,"85":1}}],["inputcube",{"2":{"85":2}}],["inputs",{"2":{"18":1}}],["input",{"2":{"16":1,"17":1,"18":1,"20":1,"23":2,"42":1,"84":13,"85":8}}],["innerchunks",{"2":{"85":1}}],["inner",{"2":{"84":9,"85":3}}],["installed",{"2":{"92":1}}],["installation",{"0":{"90":1}}],["install",{"0":{"93":1},"2":{"88":1,"90":1,"94":1}}],["instead",{"2":{"8":1,"9":1,"13":1,"32":1,"37":1,"67":1,"70":1}}],["insize",{"2":{"85":1}}],["inside",{"2":{"84":3}}],["initialization",{"2":{"58":1,"102":1}}],["initially",{"2":{"22":1}}],["inds",{"2":{"85":1}}],["indeed",{"2":{"82":1}}],["indexing",{"2":{"65":2,"66":2,"82":1,"92":1}}],["index",{"2":{"58":2,"85":2,"102":2}}],["independently",{"2":{"46":1}}],["indices",{"2":{"85":1,"96":1}}],["indicate",{"2":{"84":1}}],["indicating",{"2":{"9":1,"22":1,"84":1}}],["indims=indims",{"2":{"22":1,"23":1}}],["indims",{"0":{"18":1,"19":1,"21":1},"2":{"16":8,"18":4,"20":7,"21":3,"84":7}}],["individually",{"2":{"13":2}}],["individual",{"2":{"0":1,"58":1,"59":1}}],["information",{"2":{"62":1,"79":1,"85":2}}],["info",{"2":{"16":2,"27":1,"32":1,"48":1,"59":11,"78":4,"81":1,"92":1}}],["introducing",{"2":{"72":1}}],["int",{"2":{"33":1,"47":1,"96":3}}],["interoperability",{"0":{"94":1}}],["internal",{"0":{"85":1},"2":{"85":9}}],["internally",{"2":{"71":1}}],["interface",{"2":{"84":2,"100":1}}],["interested",{"2":{"98":1}}],["interest",{"2":{"62":1}}],["interval",{"2":{"59":1,"62":3,"64":2,"65":3,"66":4,"67":6}}],["intervalsets",{"2":{"67":1}}],["intervals",{"0":{"67":1},"2":{"37":1}}],["interactive",{"2":{"0":1}}],["integer",{"2":{"29":1,"65":1,"66":1,"70":1}}],["int64",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"16":8,"17":1,"18":1,"19":1,"21":7,"25":2,"27":2,"29":3,"32":9,"33":7,"34":4,"37":15,"39":4,"40":7,"42":3,"44":1,"45":5,"47":5,"51":6,"52":6,"54":4,"56":18,"80":3,"81":6,"85":1,"91":2}}],["into",{"0":{"61":1,"101":1},"1":{"62":1},"2":{"0":1,"1":1,"2":1,"7":1,"8":1,"16":1,"22":1,"24":2,"27":1,"40":4,"47":1,"57":1,"61":1,"72":2,"79":1,"82":1,"84":6,"85":3,"88":1,"106":1}}],["in",{"0":{"20":1,"43":1},"1":{"44":1,"45":1},"2":{"0":5,"1":1,"2":1,"4":2,"5":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":2,"14":4,"16":5,"17":1,"18":2,"19":2,"21":5,"22":8,"23":3,"24":2,"25":1,"26":1,"27":2,"29":2,"32":1,"33":3,"34":2,"37":5,"38":1,"40":1,"41":3,"42":5,"46":4,"47":2,"49":2,"50":2,"53":3,"54":1,"56":4,"58":2,"59":4,"61":1,"62":9,"64":2,"65":3,"66":4,"67":7,"68":1,"69":1,"70":5,"71":1,"72":2,"81":2,"82":1,"84":15,"85":9,"88":2,"90":1,"91":4,"93":2,"96":2,"98":3,"100":4,"102":1}}],["iter",{"2":{"84":1}}],["iterate",{"2":{"100":1}}],["iteration",{"0":{"100":1}}],["iterator",{"2":{"42":1}}],["iterators",{"2":{"22":1}}],["iterable",{"2":{"42":2,"84":2}}],["itself",{"2":{"84":1,"85":1}}],["its",{"2":{"0":1}}],["it",{"2":{"0":2,"1":3,"12":1,"16":1,"18":1,"20":1,"23":2,"32":1,"34":1,"35":1,"40":2,"42":2,"46":2,"47":1,"52":1,"54":1,"56":1,"59":1,"63":1,"70":2,"71":1,"73":1,"78":1,"79":1,"81":2,"82":1,"84":10,"85":5,"88":1,"90":1}}],["lscene",{"2":{"106":1}}],["lmdz",{"2":{"59":1,"63":1,"74":1,"80":1}}],["link",{"2":{"87":1}}],["linewidth=0",{"2":{"104":1,"105":1}}],["linewidth=2",{"2":{"97":2}}],["linewidth=1",{"2":{"95":1,"97":1}}],["linestyle=",{"2":{"97":2}}],["lines",{"2":{"95":1,"97":3}}],["line",{"2":{"42":1}}],["lim",{"2":{"59":1,"63":1,"74":1,"80":1}}],["libraries",{"2":{"37":1,"70":1}}],["libray",{"2":{"36":1}}],["little",{"2":{"23":1}}],["list",{"2":{"22":1,"46":5,"84":7,"85":6}}],["like",{"2":{"0":1,"42":1,"46":1,"84":2,"85":1,"87":1}}],["learn",{"2":{"100":1}}],["learning",{"2":{"70":1,"98":1}}],["leap",{"2":{"95":1}}],["least",{"2":{"40":1,"46":1,"84":1}}],["length",{"2":{"51":2,"52":1,"54":3,"84":1,"85":3}}],["length=20",{"2":{"35":1,"91":1}}],["length=365",{"2":{"95":1}}],["length=3",{"2":{"17":1}}],["length=4",{"2":{"17":1}}],["length=15",{"2":{"10":1,"22":1,"23":1,"29":1,"35":1,"91":1}}],["length=10",{"2":{"10":1,"22":1,"23":1,"29":1,"35":1,"91":1}}],["level",{"2":{"21":1,"46":1,"76":1,"78":1,"87":1,"88":1}}],["left",{"2":{"14":2}}],["let",{"2":{"10":1,"16":2,"18":1,"19":1,"33":1,"35":1,"37":1,"39":1,"40":1,"56":1,"61":1,"63":1,"96":1}}],["loopinds",{"2":{"85":2}}],["looping",{"2":{"84":1,"85":1}}],["loopcachesize",{"2":{"85":1}}],["loopchunksize",{"2":{"84":1}}],["loopaxes",{"2":{"85":1}}],["loopvars",{"2":{"84":1,"85":1}}],["loops",{"2":{"84":1}}],["loop",{"2":{"84":1,"85":2}}],["looped",{"2":{"84":3,"85":3}}],["look",{"2":{"79":1,"84":1,"85":1,"87":1,"88":1}}],["lookups",{"2":{"51":15,"52":10,"54":5,"55":5,"56":38,"68":3}}],["lookup",{"2":{"51":1,"53":1,"102":3}}],["looks",{"2":{"42":1,"46":1}}],["located",{"2":{"98":1}}],["locate",{"2":{"88":1}}],["location",{"2":{"85":3}}],["locations",{"2":{"71":1,"72":1}}],["localhost",{"2":{"88":1}}],["locally",{"0":{"88":1},"2":{"88":1}}],["local",{"2":{"23":1,"58":1}}],["lock",{"2":{"59":3}}],["locks",{"2":{"59":1}}],["lowclip",{"2":{"56":4}}],["low",{"2":{"46":4}}],["lost",{"2":{"24":1}}],["lo",{"2":{"16":4}}],["loadorgenerate",{"2":{"85":1}}],["loading",{"2":{"60":1,"62":1,"82":1}}],["load",{"0":{"61":1},"1":{"62":1},"2":{"16":1,"37":1,"40":2,"61":1,"62":1,"70":1}}],["loaded",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":1,"18":1,"19":1,"21":3,"22":2,"25":1,"27":1,"29":2,"32":1,"33":3,"34":1,"35":1,"37":5,"40":2,"41":3,"42":3,"47":2,"54":1,"58":1,"59":1,"62":8,"64":2,"65":3,"66":3,"67":5,"81":1,"91":2,"96":1}}],["long",{"2":{"56":1,"58":1,"59":1,"62":4,"64":2,"65":3,"66":3,"67":5}}],["longitudes=longitudes",{"2":{"40":1}}],["longitudes",{"2":{"40":12}}],["longitude",{"2":{"21":1,"37":1,"60":1,"91":2}}],["lonlat",{"2":{"39":1}}],["lon=1",{"2":{"37":1,"39":1}}],["lon",{"2":{"10":2,"12":1,"13":1,"14":2,"16":10,"17":2,"18":1,"19":1,"20":1,"21":5,"22":12,"23":1,"26":2,"29":3,"30":1,"35":2,"37":7,"39":3,"41":4,"42":3,"58":2,"59":2,"62":3,"63":1,"64":2,"65":3,"66":6,"67":10,"68":2,"74":1,"80":1,"91":2,"102":2,"104":3}}],["lazy",{"2":{"84":1}}],["lazily",{"2":{"9":1,"13":1,"16":2,"35":1,"58":1,"59":1,"62":1,"64":2,"65":3,"66":3,"67":5}}],["layername",{"2":{"84":2}}],["layername=",{"2":{"81":2,"85":1}}],["layer",{"2":{"81":1,"84":1,"85":1}}],["layout",{"2":{"56":2}}],["labelled",{"2":{"84":1}}],["labels",{"2":{"56":1,"68":1,"72":1,"73":1}}],["label=false",{"2":{"56":1}}],["label=",{"2":{"56":1,"97":3}}],["label=cb",{"2":{"56":1}}],["label",{"2":{"56":3,"58":1,"102":1}}],["last",{"2":{"16":1,"23":1}}],["la",{"2":{"16":4}}],["latest",{"2":{"92":1,"93":1}}],["later",{"2":{"18":1}}],["lat=5",{"2":{"37":1,"39":1}}],["latitudes=latitudes",{"2":{"40":1}}],["latitudes",{"2":{"40":11}}],["latitude",{"2":{"21":1,"37":1,"60":1,"91":2}}],["lat",{"2":{"10":2,"12":1,"13":1,"14":2,"16":7,"17":2,"18":1,"19":1,"20":1,"21":5,"22":12,"23":1,"26":2,"29":3,"30":1,"35":2,"37":7,"39":3,"41":4,"42":3,"58":2,"59":2,"62":3,"63":1,"64":2,"65":3,"66":5,"67":5,"68":1,"74":1,"80":1,"84":1,"91":2,"102":3,"104":1,"105":1}}],["larger",{"2":{"24":1}}],["large",{"2":{"0":2,"24":1,"50":1,"70":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR479/assets/chunks/VPLocalSearchBox.DXvJdqC3.js b/previews/PR479/assets/chunks/VPLocalSearchBox.FXHmopTJ.js similarity index 99% rename from previews/PR479/assets/chunks/VPLocalSearchBox.DXvJdqC3.js rename to previews/PR479/assets/chunks/VPLocalSearchBox.FXHmopTJ.js index da485a90..bfcb2d10 100644 --- a/previews/PR479/assets/chunks/VPLocalSearchBox.DXvJdqC3.js +++ b/previews/PR479/assets/chunks/VPLocalSearchBox.FXHmopTJ.js @@ -1,4 +1,4 @@ -var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as me,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as st,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as he,O as _e,ar as Vt,as as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as _,a0 as Ut,k as L,at as qt,au as Gt,av as Ht,c as Z,n as nt,e as Se,C as it,F as rt,a as fe,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as es,_ as ts}from"./framework.DYY3HcdR.js";import{u as ss,d as ns}from"./theme.DSoAjSjU.js";const is={root:()=>Ct(()=>import("./@localSearchIndexroot.2vnuAND4.js"),[])};/*! +var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as me,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as st,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as he,O as _e,ar as Vt,as as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as _,a0 as Ut,k as L,at as qt,au as Gt,av as Ht,c as Z,n as nt,e as Se,C as it,F as rt,a as fe,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as es,_ as ts}from"./framework.DYY3HcdR.js";import{u as ss,d as ns}from"./theme.Cb66Hod8.js";const is={root:()=>Ct(()=>import("./@localSearchIndexroot.DBpPZp1N.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var mt=["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])"],Ne=mt.join(","),gt=typeof Element>"u",ae=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Fe=!gt&&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},Oe=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},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},bt=function(e,t,s){if(Oe(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ae.call(e,Ne)&&n.unshift(e),n=n.filter(s),n},yt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Oe(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=ae.call(i,Ne);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var m=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Oe(m,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(m&&f){var b=a(m===!0?i.children:m.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},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},re=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rs(e))&&!wt(e)?0:e.tabIndex},as=function(e,t){var s=re(e);return s<0&&t&&!wt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ls=function(e){return xt(e)&&e.type==="hidden"},cs=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(ae.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=Fe(e);if(l&&!l.shadowRoot&&n(l)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(ps(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return ot(e);return!1},ms=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)},bs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,l=as(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(os).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:gs}):s=bt(e,t.includeContainer,Be.bind(null,t)),bs(s)},ws=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=bt(e,t.includeContainer,Ce.bind(null,t)),s},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Ne)===!1?!1:Be(t,e)},xs=mt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,xs)===!1?!1:Ce(t,e)};/*! diff --git a/previews/PR479/assets/chunks/theme.DSoAjSjU.js b/previews/PR479/assets/chunks/theme.Cb66Hod8.js similarity index 99% rename from previews/PR479/assets/chunks/theme.DSoAjSjU.js rename to previews/PR479/assets/chunks/theme.Cb66Hod8.js index 31b51dc3..768d1a51 100644 --- a/previews/PR479/assets/chunks/theme.DSoAjSjU.js +++ b/previews/PR479/assets/chunks/theme.Cb66Hod8.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DXvJdqC3.js","assets/chunks/framework.DYY3HcdR.js"])))=>i.map(i=>d[i]); -import{d as b,o,c as l,r as u,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 S,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 Ie,E as x,G as g,H,I as Ne,J as ee,K as R,L as j,M as Ze,N as Te,O as le,P as he,Q as Ce,R as te,S as Ye,U as Xe,V as qe,W as we,X as _e,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 Ae}from"./framework.DYY3HcdR.js";const rt=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(a){return(e,t)=>(o(),l("span",{class:T(["VPBadge",e.type])},[u(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"]]),V=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 be(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}=V(),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}=V(),c=y(()=>{var d,h;return{label:(d=e.value.locales[t.value])==null?void 0:d.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(([d,h])=>c.value.label===h.label?[]:{text:h.label,link:dt(h.link||(d==="root"?"/":`/${d}/`),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}=V(),{currentLang:t}=Z();return(n,s)=>{var r,c,v,d,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":((d=i(e).notFound)==null?void 0:d.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}=V(),n=ie("(min-width: 960px)"),s=S(!1),r=y(()=>{const M=t.value.sidebar,N=e.value.relativePath;return M?Be(M,N):[]}),c=S(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"),d=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 L(){s.value=!1}function w(){s.value?L():P()}return{isOpen:s,sidebar:c,sidebarGroups:_,hasSidebar:v,hasAside:h,leftAside:d,isSidebarEnabled:A,open:P,close:L,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}=V(),n=S(!1),s=y(()=>a.value.collapsed!=null),r=y(()=>!!a.value.link),c=S(!1),v=()=>{c.value=J(e.value.relativePath,a.value.link)};W([e,a,t],v),O(v);const d=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||d.value)&&(n.value=!1)});function A(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:r,isActiveLink:c,hasActiveLink:d,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 ge(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:Lt(t),link:"#"+t.id,level:n}});return Vt(e,a)}function Lt(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 Vt(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;return Nt(a,n,s)}function St(a,e){const{isAsideEnabled:t}=Pt(),n=ut(r,100);let s=null;O(()=>{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,d=window.innerHeight,h=document.body.offsetHeight,A=Math.abs(v+d-h)<1,_=de.map(({element:L,link:w})=>({link:w,top:It(L)})).filter(({top:L})=>!Number.isNaN(L)).sort((L,w)=>L.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:L,top:w}of _){if(w>v+ze()+4)break;P=L}c(P)}function c(v){s&&s.classList.remove("active"),v==null?s=null:s=a.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const d=s;d?(d.classList.add("active"),e.value.style.top=d.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}function Nt(a,e,t){de.length=0;const n=[],s=[];return a.forEach(r=>{const c={...r,children:[]};let v=s[s.length-1];for(;v&&v.level>=c.level;)s.pop(),v=s[s.length-1];if(c.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){s.push({level:c.level,shouldIgnore:!0});return}c.level>t||c.level{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,Tt),r!=null&&r.length?(o(),$(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),Qe=k(Ct,[["__scopeId","data-v-3f927ebe"]]),wt={class:"content"},Mt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Bt=b({__name:"VPDocAsideOutline",setup(a){const{frontmatter:e,theme:t}=V(),n=Ie([]);x(()=>{n.value=ge(e.value.outline??t.value.outline)});const s=S(),r=S();return St(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",wt,[p("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),p("div",Mt,I(i(Ee)(i(t))),1),g(Qe,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Et=k(Bt,[["__scopeId","data-v-b38bf2ff"]]),Qt={class:"VPDocAsideCarbonAds"},Ht=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(a){const e=()=>null;return(t,n)=>(o(),l("div",Qt,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ft={class:"VPDocAside"},Wt=b({__name:"VPDocAside",setup(a){const{theme:e}=V();return(t,n)=>(o(),l("div",Ft,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),g(Et),u(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=p("div",{class:"spacer"},null,-1)),u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(o(),$(Ht,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ot=k(Wt,[["__scopeId","data-v-6d7b3c46"]]);function Dt(){const{theme:a,page:e}=V();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 Ut(){const{page:a,theme:e,frontmatter:t}=V();return y(()=>{var h,A,_,P,L,w,M,N;const n=Be(e.value.sidebar,a.value.relativePath),s=$t(n),r=Rt(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,d=((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)??((L=r[c-1])==null?void 0:L.link)},next:d?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 Rt(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&&Ne.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(be)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:f(()=>[u(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Gt={class:"VPLastUpdated"},Jt=["datetime"],Kt=b({__name:"VPDocFooterLastUpdated",setup(a){const{theme:e,page:t,lang:n}=V(),s=y(()=>new Date(t.value.lastUpdated)),r=y(()=>s.value.toISOString()),c=S("");return O(()=>{q(()=>{var v,d,h;c.value=new Intl.DateTimeFormat((d=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&d.forceLocale?n.value:void 0,((h=e.value.lastUpdated)==null?void 0:h.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(v,d)=>{var h;return o(),l("p",Gt,[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,Jt)])}}}),jt=k(Kt,[["__scopeId","data-v-475f71b8"]]),zt={key:0,class:"VPDocFooter"},Zt={key:0,class:"edit-info"},Yt={key:0,class:"edit-link"},Xt={key:1,class:"last-updated"},qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},xt={class:"pager"},es=["innerHTML"],ts=["innerHTML"],ss={class:"pager"},ns=["innerHTML"],as=["innerHTML"],os=b({__name:"VPDocFooter",setup(a){const{theme:e,page:t,frontmatter:n}=V(),s=Dt(),r=Ut(),c=y(()=>e.value.editLink&&n.value.editLink!==!1),v=y(()=>t.value.lastUpdated),d=y(()=>c.value||v.value||r.value.prev||r.value.next);return(h,A)=>{var _,P,L,w;return d.value?(o(),l("footer",zt,[u(h.$slots,"doc-footer-before",{},void 0,!0),c.value||v.value?(o(),l("div",Zt,[c.value?(o(),l("div",Yt,[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",Xt,[g(jt)])):m("",!0)])):m("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(o(),l("nav",qt,[A[1]||(A[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",xt,[(L=i(r).prev)!=null&&L.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,es),p("span",{class:"title",innerHTML:i(r).prev.text},null,8,ts)]}),_:1},8,["href"])):m("",!0)]),p("div",ss,[(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,ns),p("span",{class:"title",innerHTML:i(r).next.text},null,8,as)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),rs=k(os,[["__scopeId","data-v-4f9813fa"]]),is={class:"container"},ls={class:"aside-container"},cs={class:"aside-content"},us={class:"content"},ds={class:"content-container"},ps={class:"main"},vs=b({__name:"VPDoc",setup(a){const{theme:e}=V(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:r}=D(),c=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,d)=>{const h=G("Content");return o(),l("div",{class:T(["VPDoc",{"has-sidebar":i(n),"has-aside":i(s)}])},[u(v.$slots,"doc-top",{},void 0,!0),p("div",is,[i(s)?(o(),l("div",{key:0,class:T(["aside",{"left-aside":i(r)}])},[d[0]||(d[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",ls,[p("div",cs,[g(Ot,null,{"aside-top":f(()=>[u(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),p("div",us,[p("div",ds,[u(v.$slots,"doc-before",{},void 0,!0),p("main",ps,[g(h,{class:T(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(rs,null,{"doc-footer-before":f(()=>[u(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(v.$slots,"doc-after",{},void 0,!0)])])]),u(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),fs=k(vs,[["__scopeId","data-v-83890dd9"]]),ms=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(a){const e=a,t=y(()=>e.href&&Ne.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(be)(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"]))}}),hs=k(ms,[["__scopeId","data-v-906d7fb4"]]),_s=["src","alt"],bs=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,_s)):(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(bs,[["__scopeId","data-v-35a7d0b8"]]),gs={class:"container"},ks={class:"main"},$s={key:0,class:"name"},ys=["innerHTML"],As=["innerHTML"],Ps=["innerHTML"],Ls={key:0,class:"actions"},Vs={key:0,class:"image"},Ss={class:"image-container"},Is=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",gs,[p("div",ks,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(o(),l("h1",$s,[p("span",{innerHTML:t.name,class:"clip"},null,8,ys)])):m("",!0),t.text?(o(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,As)):m("",!0),t.tagline?(o(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Ps)):m("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(o(),l("div",Ls,[(o(!0),l(C,null,B(t.actions,s=>(o(),l("div",{key:s.link,class:"action"},[g(hs,{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),u(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)),u(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))}}),Ns=k(Is,[["__scopeId","data-v-955009fc"]]),Ts=b({__name:"VPHomeHero",setup(a){const{frontmatter:e}=V();return(t,n)=>i(e).hero?(o(),$(Ns,{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(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Cs={class:"box"},ws={key:0,class:"icon"},Ms=["innerHTML"],Bs=["innerHTML"],Es=["innerHTML"],Qs={key:4,class:"link-text"},Hs={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",Cs,[typeof e.icon=="object"&&e.icon.wrap?(o(),l("div",ws,[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,Ms)):m("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Bs),e.details?(o(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Es)):m("",!0),e.linkText?(o(),l("div",Qs,[p("p",Hs,[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"]))}}),Ws=k(Fs,[["__scopeId","data-v-f5e9645b"]]),Os={key:0,class:"VPFeatures"},Ds={class:"container"},Us={class:"items"},Rs=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",Os,[p("div",Ds,[p("div",Us,[(o(!0),l(C,null,B(n.features,r=>(o(),l("div",{key:r.title,class:T(["item",[t.value]])},[g(Ws,{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)}}),Gs=k(Rs,[["__scopeId","data-v-d0a190d7"]]),Js=b({__name:"VPHomeFeatures",setup(a){const{frontmatter:e}=V();return(t,n)=>i(e).features?(o(),$(Gs,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),Ks=b({__name:"VPHomeContent",setup(a){const{width:e}=Ze({initialWidth:0,includeScrollbar:!1});return(t,n)=>(o(),l("div",{class:"vp-doc container",style:Te(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[u(t.$slots,"default",{},void 0,!0)],4))}}),js=k(Ks,[["__scopeId","data-v-7a48a447"]]),zs={class:"VPHome"},Zs=b({__name:"VPHome",setup(a){const{frontmatter:e}=V();return(t,n)=>{const s=G("Content");return o(),l("div",zs,[u(t.$slots,"home-hero-before",{},void 0,!0),g(Ts,null,{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(t.$slots,"home-hero-after",{},void 0,!0),u(t.$slots,"home-features-before",{},void 0,!0),g(Js),u(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(o(),$(js,{key:0},{default:f(()=>[g(s)]),_:1})):(o(),$(s,{key:1}))])}}}),Ys=k(Zs,[["__scopeId","data-v-cbb6ec48"]]),Xs={},qs={class:"VPPage"};function xs(a,e){const t=G("Content");return o(),l("div",qs,[u(a.$slots,"page-top"),g(t),u(a.$slots,"page-bottom")])}const en=k(Xs,[["render",xs]]),tn=b({__name:"VPContent",setup(a){const{page:e,frontmatter:t}=V(),{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?u(s.$slots,"not-found",{key:0},()=>[g(gt)],!0):i(t).layout==="page"?(o(),$(en,{key:1},{"page-top":f(()=>[u(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(o(),$(Ys,{key:2},{"home-hero-before":f(()=>[u(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(o(),$(H(i(t).layout),{key:3})):(o(),$(fs,{key:4},{"doc-top":f(()=>[u(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[u(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[u(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[u(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[u(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),sn=k(tn,[["__scopeId","data-v-91765379"]]),nn={class:"container"},an=["innerHTML"],on=["innerHTML"],rn=b({__name:"VPFooter",setup(a){const{theme:e,frontmatter:t}=V(),{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",nn,[i(e).footer.message?(o(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,an)):m("",!0),i(e).footer.copyright?(o(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,on)):m("",!0)])],2)):m("",!0)}}),ln=k(rn,[["__scopeId","data-v-c970a860"]]);function cn(){const{theme:a,frontmatter:e}=V(),t=Ie([]),n=y(()=>t.value.length>0);return x(()=>{t.value=ge(e.value.outline??a.value.outline)}),{headers:t,hasLocalNav:n}}const un={class:"menu-text"},dn={class:"header"},pn={class:"outline"},vn=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(a){const e=a,{theme:t}=V(),n=S(!1),s=S(0),r=S(),c=S();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 d(){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"),he(()=>{n.value=!1}))}function A(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(o(),l("div",{class:"VPLocalNavOutlineDropdown",style:Te({"--vp-vh":s.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(o(),l("button",{key:0,onClick:d,class:T({open:n.value})},[p("span",un,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",dn,[p("a",{class:"top-link",href:"#",onClick:A},I(i(t).returnToTopLabel||"Return to top"),1)]),p("div",pn,[g(Qe,{headers:_.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),fn=k(vn,[["__scopeId","data-v-bc9dc845"]]),mn={class:"container"},hn=["aria-expanded"],_n={class:"menu-text"},bn=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(a){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=D(),{headers:s}=cn(),{y:r}=Ce(),c=S(0);O(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=ge(t.value.outline??e.value.outline)});const v=y(()=>s.value.length===0),d=y(()=>v.value&&!n.value),h=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:v.value,fixed:d.value}));return(A,_)=>i(t).layout!=="home"&&(!d.value||i(r)>=c.value)?(o(),l("div",{key:0,class:T(h.value)},[p("div",mn,[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",_n,I(i(e).sidebarMenuLabel||"Menu"),1)],8,hn)):m("",!0),g(fn,{headers:i(s),navHeight:c.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),gn=k(bn,[["__scopeId","data-v-070ab83d"]]);function kn(){const a=S(!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 $n={},yn={class:"VPSwitch",type:"button",role:"switch"},An={class:"check"},Pn={key:0,class:"icon"};function Ln(a,e){return o(),l("button",yn,[p("span",An,[a.$slots.default?(o(),l("span",Pn,[u(a.$slots,"default",{},void 0,!0)])):m("",!0)])])}const Vn=k($n,[["render",Ln],["__scopeId","data-v-4a1c76db"]]),Sn=b({__name:"VPSwitchAppearance",setup(a){const{isDark:e,theme:t}=V(),n=j("toggle-appearance",()=>{e.value=!e.value}),s=S("");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"]))}}),ke=k(Sn,[["__scopeId","data-v-e40a8bb6"]]),In={key:0,class:"VPNavBarAppearance"},Nn=b({__name:"VPNavBarAppearance",setup(a){const{site:e}=V();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",In,[g(ke)])):m("",!0)}}),Tn=k(Nn,[["__scopeId","data-v-af096f4a"]]),$e=S();let He=!1,re=0;function Cn(a){const e=S(!1);if(te){!He&&wn(),re++;const t=W($e,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||Mn()})}return Ye(e)}function wn(){document.addEventListener("focusin",Fe),He=!0,$e.value=document.activeElement}function Mn(){document.removeEventListener("focusin",Fe)}function Fe(){$e.value=document.activeElement}const Bn={class:"VPMenuLink"},En=["innerHTML"],Qn=b({__name:"VPMenuLink",props:{item:{}},setup(a){const{page:e}=V();return(t,n)=>(o(),l("div",Bn,[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,"no-icon":t.item.noIcon},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,En)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),se=k(Qn,[["__scopeId","data-v-acbfed09"]]),Hn={class:"VPMenuGroup"},Fn={key:0,class:"title"},Wn=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",Hn,[e.text?(o(),l("p",Fn,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))]))}}),On=k(Wn,[["__scopeId","data-v-48c802d0"]]),Dn={class:"VPMenu"},Un={key:0,class:"items"},Rn=b({__name:"VPMenu",props:{items:{}},setup(a){return(e,t)=>(o(),l("div",Dn,[e.items?(o(),l("div",Un,[(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(),$(On,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),Gn=k(Rn,[["__scopeId","data-v-7dd3104a"]]),Jn=["aria-expanded","aria-label"],Kn={key:0,class:"text"},jn=["innerHTML"],zn={key:1,class:"vpi-more-horizontal icon"},Zn={class:"menu"},Yn=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(a){const e=S(!1),t=S();Cn({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",Kn,[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",zn))],8,Jn),p("div",Zn,[g(Gn,{items:s.items},{default:f(()=>[u(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=k(Yn,[["__scopeId","data-v-04f5c5e9"]]),Xn=["href","aria-label","innerHTML"],qn=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(a){const e=a,t=S();O(async()=>{var r;await he();const s=(r=t.value)==null?void 0:r.children[0];s instanceof HTMLElement&&s.className.startsWith("vpi-social-")&&(getComputedStyle(s).maskImage||getComputedStyle(s).webkitMaskImage)==="none"&&s.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const n=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,r)=>(o(),l("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,Xn))}}),xn=k(qn,[["__scopeId","data-v-d26d30cb"]]),ea={class:"VPSocialLinks"},ta=b({__name:"VPSocialLinks",props:{links:{}},setup(a){return(e,t)=>(o(),l("div",ea,[(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(ta,[["__scopeId","data-v-ee7a9424"]]),sa={key:0,class:"group translations"},na={class:"trans-title"},aa={key:1,class:"group"},oa={class:"item appearance"},ra={class:"label"},ia={class:"appearance-action"},la={key:2,class:"group"},ca={class:"item social-links"},ua=b({__name:"VPNavBarExtra",setup(a){const{site:e,theme:t}=V(),{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(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(n).length&&i(s).label?(o(),l("div",sa,[p("p",na,I(i(s).label),1),(o(!0),l(C,null,B(i(n),d=>(o(),$(se,{key:d.link,item:d},null,8,["item"]))),128))])):m("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",aa,[p("div",oa,[p("p",ra,I(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",ia,[g(ke)])])])):m("",!0),i(t).socialLinks?(o(),l("div",la,[p("div",ca,[g(ne,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),da=k(ua,[["__scopeId","data-v-925effce"]]),pa=["aria-expanded"],va=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,pa))}}),fa=k(va,[["__scopeId","data-v-5dea55bf"]]),ma=["innerHTML"],ha=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(a){const{page:e}=V();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,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,ma)]),_:1},8,["class","href","target","rel","no-icon"]))}}),_a=k(ha,[["__scopeId","data-v-956ec74c"]]),We=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(a){const e=a,{page:t}=V(),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(),$(ye,{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"]))}}),ba={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ga=b({__name:"VPNavBarMenu",setup(a){const{theme:e}=V();return(t,n)=>i(e).nav?(o(),l("nav",ba,[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(),$(_a,{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)}}),ka=k(ga,[["__scopeId","data-v-e6d46098"]]);function $a(a){const{localeIndex:e,theme:t}=V();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",d=v&&((N=(M=c.locales)==null?void 0:M[e.value])==null?void 0:N.translations)||null,h=v&&c.translations||null;let A=d,_=h,P=a;const L=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[L])??(_==null?void 0:_[L])??(P==null?void 0:P[L])??""}return n}const ya=["aria-label"],Aa={class:"DocSearch-Button-Container"},Pa={class:"DocSearch-Button-Placeholder"},Pe=b({__name:"VPNavBarSearchButton",setup(a){const t=$a({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",Aa,[s[0]||(s[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",Pa,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,ya))}}),La={class:"VPNavBarSearch"},Va={id:"local-search"},Sa={key:1,id:"docsearch"},Ia=b({__name:"VPNavBarSearch",setup(a){const e=Xe(()=>qe(()=>import("./VPLocalSearchBox.DXvJdqC3.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=V(),s=S(!1),r=S(!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 d(_){const P=_.target,L=P.tagName;return P.isContentEditable||L==="INPUT"||L==="SELECT"||L==="TEXTAREA"}const h=S(!1);le("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),h.value=!0)}),le("/",_=>{d(_)||(_.preventDefault(),h.value=!0)});const A="local";return(_,P)=>{var L;return o(),l("div",La,[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",Va,[g(Pe,{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:((L=i(n).search)==null?void 0:L.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",Sa,[g(Pe,{onClick:c})]))],64)):m("",!0)])}}}),Na=b({__name:"VPNavBarSocialLinks",setup(a){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Ta=k(Na,[["__scopeId","data-v-164c457f"]]),Ca=["href","rel","target"],wa=["innerHTML"],Ma={key:2},Ba=b({__name:"VPNavBarTitle",setup(a){const{site:e,theme:t}=V(),{hasSidebar:n}=D(),{currentLang:s}=Z(),r=y(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),c=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),v=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,h)=>(o(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(n)}])},[p("a",{class:"title",href:r.value??i(be)(i(s).link),rel:c.value,target:v.value},[u(d.$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",{key:1,innerHTML:i(t).siteTitle},null,8,wa)):i(t).siteTitle===void 0?(o(),l("span",Ma,I(i(e).title),1)):m("",!0),u(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ca)],2))}}),Ea=k(Ba,[["__scopeId","data-v-0f4f798b"]]),Qa={class:"items"},Ha={class:"title"},Fa=b({__name:"VPNavBarTranslations",setup(a){const{theme:e}=V(),{localeLinks:t,currentLang:n}=Z({correspondingLink:!0});return(s,r)=>i(t).length&&i(n).label?(o(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Qa,[p("p",Ha,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)}}),Wa=k(Fa,[["__scopeId","data-v-c80d9ad0"]]),Oa={class:"wrapper"},Da={class:"container"},Ua={class:"title"},Ra={class:"content"},Ga={class:"content-body"},Ja=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(a){const e=a,{y:t}=Ce(),{hasSidebar:n}=D(),{frontmatter:s}=V(),r=S({});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",Oa,[p("div",Da,[p("div",Ua,[g(Ea,null,{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",Ra,[p("div",Ga,[u(c.$slots,"nav-bar-content-before",{},void 0,!0),g(Ia,{class:"search"}),g(ka,{class:"menu"}),g(Wa,{class:"translations"}),g(Tn,{class:"appearance"}),g(Ta,{class:"social-links"}),g(da,{class:"extra"}),u(c.$slots,"nav-bar-content-after",{},void 0,!0),g(fa,{class:"hamburger",active:c.isScreenOpen,onClick:v[0]||(v[0]=d=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Ka=k(Ja,[["__scopeId","data-v-822684d1"]]),ja={key:0,class:"VPNavScreenAppearance"},za={class:"text"},Za=b({__name:"VPNavScreenAppearance",setup(a){const{site:e,theme:t}=V();return(n,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",ja,[p("p",za,I(i(t).darkModeSwitchLabel||"Appearance"),1),g(ke)])):m("",!0)}}),Ya=k(Za,[["__scopeId","data-v-ffb44008"]]),Xa=["innerHTML"],qa=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,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Xa)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),xa=k(qa,[["__scopeId","data-v-735512b8"]]),eo=["innerHTML"],to=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,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,eo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Oe=k(to,[["__scopeId","data-v-372ae7c0"]]),so={class:"VPNavScreenMenuGroupSection"},no={key:0,class:"title"},ao=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",so,[e.text?(o(),l("p",no,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))]))}}),oo=k(ao,[["__scopeId","data-v-4b8941ac"]]),ro=["aria-controls","aria-expanded"],io=["innerHTML"],lo=["id"],co={key:0,class:"item"},uo={key:1,class:"item"},po={key:2,class:"group"},vo=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(a){const e=a,t=S(!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,io),c[0]||(c[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,ro),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",co,[g(Oe,{item:v},null,8,["item"])])):"component"in v?(o(),l("div",uo,[(o(),$(H(v.component),R({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(o(),l("div",po,[g(oo,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,lo)],2))}}),De=k(vo,[["__scopeId","data-v-875057a5"]]),fo={key:0,class:"VPNavScreenMenu"},mo=b({__name:"VPNavScreenMenu",setup(a){const{theme:e}=V();return(t,n)=>i(e).nav?(o(),l("nav",fo,[(o(!0),l(C,null,B(i(e).nav,s=>(o(),l(C,{key:JSON.stringify(s)},["link"in s?(o(),$(xa,{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)}}),ho=b({__name:"VPNavScreenSocialLinks",setup(a){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),_o={class:"list"},bo=b({__name:"VPNavScreenTranslations",setup(a){const{localeLinks:e,currentLang:t}=Z({correspondingLink:!0}),n=S(!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",_o,[(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)}}),go=k(bo,[["__scopeId","data-v-362991c2"]]),ko={class:"container"},$o=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(a){const e=S(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",ko,[u(n.$slots,"nav-screen-content-before",{},void 0,!0),g(mo,{class:"menu"}),g(go,{class:"translations"}),g(Ya,{class:"appearance"}),g(ho,{class:"social-links"}),u(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),yo=k($o,[["__scopeId","data-v-833aabba"]]),Ao={key:0,class:"VPNav"},Po=b({__name:"VPNav",setup(a){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=kn(),{frontmatter:s}=V(),r=y(()=>s.value.navbar!==!1);return _e("close-screen",t),q(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,v)=>r.value?(o(),l("header",Ao,[g(Ka,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g(yo,{open:i(e)},{"nav-screen-content-before":f(()=>[u(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),Lo=k(Po,[["__scopeId","data-v-f1e365da"]]),Vo=["role","tabindex"],So={key:1,class:"items"},Io=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(a){const e=a,{collapsed:t,collapsible:n,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:v,toggle:d}=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"),L=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&&d()}function M(){e.item.link&&d()}return(N,E)=>{const U=G("VPSidebarItem",!0);return o(),$(H(h.value),{class:T(["VPSidebarItem",L.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,Vo)):m("",!0),N.item.items&&N.item.items.length?(o(),l("div",So,[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"])}}}),No=k(Io,[["__scopeId","data-v-196b2e5f"]]),To=b({__name:"VPSidebarGroup",props:{items:{}},setup(a){const e=S(!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(No,{item:r,depth:0},null,8,["item"])],2))),128))}}),Co=k(To,[["__scopeId","data-v-9e426adc"]]),wo={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Mo=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(a){const{sidebarGroups:e,hasSidebar:t}=D(),n=a,s=S(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=S(0);return W(e,()=>{c.value+=1},{deep:!0}),(v,d)=>i(t)?(o(),l("aside",{key:0,class:T(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:s,onClick:d[0]||(d[0]=st(()=>{},["stop"]))},[d[2]||(d[2]=p("div",{class:"curtain"},null,-1)),p("nav",wo,[d[1]||(d[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(v.$slots,"sidebar-nav-before",{},void 0,!0),(o(),$(Co,{items:i(e),key:c.value},null,8,["items"])),u(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Bo=k(Mo,[["__scopeId","data-v-18756405"]]),Eo=b({__name:"VPSkipLink",setup(a){const e=ee(),t=S();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))}}),Qo=k(Eo,[["__scopeId","data-v-c3508ec8"]]),Ho=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}=V(),c=Me(),v=y(()=>!!c["home-hero-image"]);return _e("hero-image-slot-exists",v),(d,h)=>{const A=G("Content");return i(r).layout!==!1?(o(),l("div",{key:0,class:T(["Layout",i(r).pageClass])},[u(d.$slots,"layout-top",{},void 0,!0),g(Qo),g(ct,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),g(Lo,null,{"nav-bar-title-before":f(()=>[u(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[u(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(gn,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(Bo,{open:i(e)},{"sidebar-nav-before":f(()=>[u(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[u(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(sn,null,{"page-top":f(()=>[u(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[u(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[u(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[u(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[u(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[u(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(ln),u(d.$slots,"layout-bottom",{},void 0,!0)],2)):(o(),$(A,{key:1}))}}}),Fo=k(Ho,[["__scopeId","data-v-a9a9e638"]]),Wo={},Oo={class:"VPTeamPage"};function Do(a,e){return o(),l("div",Oo,[u(a.$slots,"default")])}const Fr=k(Wo,[["render",Do],["__scopeId","data-v-c2f8e101"]]),Uo={},Ro={class:"VPTeamPageTitle"},Go={key:0,class:"title"},Jo={key:1,class:"lead"};function Ko(a,e){return o(),l("div",Ro,[a.$slots.title?(o(),l("h1",Go,[u(a.$slots,"title",{},void 0,!0)])):m("",!0),a.$slots.lead?(o(),l("p",Jo,[u(a.$slots,"lead",{},void 0,!0)])):m("",!0)])}const Wr=k(Uo,[["render",Ko],["__scopeId","data-v-e277e15c"]]),jo={},zo={class:"VPTeamPageSection"},Zo={class:"title"},Yo={key:0,class:"title-text"},Xo={key:0,class:"lead"},qo={key:1,class:"members"};function xo(a,e){return o(),l("section",zo,[p("div",Zo,[e[0]||(e[0]=p("div",{class:"title-line"},null,-1)),a.$slots.title?(o(),l("h2",Yo,[u(a.$slots,"title",{},void 0,!0)])):m("",!0)]),a.$slots.lead?(o(),l("p",Xo,[u(a.$slots,"lead",{},void 0,!0)])):m("",!0),a.$slots.members?(o(),l("div",qo,[u(a.$slots,"members",{},void 0,!0)])):m("",!0)])}const Or=k(jo,[["render",xo],["__scopeId","data-v-d43bc49d"]]),er={class:"profile"},tr={class:"avatar"},sr=["src","alt"],nr={class:"data"},ar={class:"name"},or={key:0,class:"affiliation"},rr={key:0,class:"title"},ir={key:1,class:"at"},lr=["innerHTML"],cr={key:2,class:"links"},ur={key:0,class:"sp"},dr=b({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(a){return(e,t)=>(o(),l("article",{class:T(["VPTeamMembersItem",[e.size]])},[p("div",er,[p("figure",tr,[p("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,sr)]),p("div",nr,[p("h1",ar,I(e.member.name),1),e.member.title||e.member.org?(o(),l("p",or,[e.member.title?(o(),l("span",rr,I(e.member.title),1)):m("",!0),e.member.title&&e.member.org?(o(),l("span",ir," @ ")):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,lr)):m("",!0),e.member.links?(o(),l("div",cr,[g(ne,{links:e.member.links},null,8,["links"])])):m("",!0)])]),e.member.sponsor?(o(),l("div",ur,[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))}}),pr=k(dr,[["__scopeId","data-v-f9987cb6"]]),vr={class:"container"},fr=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",vr,[(o(!0),l(C,null,B(n.members,r=>(o(),l("div",{key:r.name,class:"item"},[g(pr,{size:n.size,member:r},null,8,["size","member"])]))),128))])],2))}}),Dr=k(fr,[["__scopeId","data-v-fba19bad"]]),Le={Layout:Fo,enhanceApp:({app:a})=>{a.component("Badge",rt)}},mr={},hr={style:{"text-align":"center"}};function _r(a,e){const t=G("font");return o(),l(C,null,[e[1]||(e[1]=p("br",null,null,-1)),p("h1",hr,[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 br=k(mr,[["render",_r]]),gr=b({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(a){const e=S([]),t=S("Versions"),n=S(!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:d,pathname:h}=window.location;if(d.includes("github.io")){const A=h.split("/").filter(Boolean),_=A.length>0?`/${A[0]}/`:"/";return`${d}${_}`}else return d},c=()=>new Promise(d=>{if(s()){d(!1);return}const h=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(h),d(!0))},100);setTimeout(()=>{clearInterval(h),d(!1)},5e3)});return O(async()=>{if(!(typeof window>"u")){try{if(s()){const d=["dev"];e.value=d.map(h=>({text:h,link:"/"})),t.value="dev"}else{const d=await c(),h=y(()=>r());if(d&&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(d){console.warn("Error loading versions:",d);const h=["dev"],A=y(()=>r());e.value=h.map(_=>({text:_,link:`${A.value}/${_}/`})),t.value="dev"}n.value=!0}}),(d,h)=>n.value?(o(),l(C,{key:0},[!d.screenMenu&&e.value.length>0?(o(),$(We,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):d.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)}}),kr=k(gr,[["__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 he(),e.scrollTop=c.offsetTop-v,r}}},Ue="vitepress:tabSharedState",z=typeof localStorage<"u"?localStorage:null,Re="vitepress:tabsSharedState",yr=()=>{const a=z==null?void 0:z.getItem(Re);if(a)try{return JSON.parse(a)}catch{}return{}},Ar=a=>{z&&z.setItem(Re,JSON.stringify(a))},Pr=a=>{const e=at({});W(()=>e.content,(t,n)=>{t&&n&&Ar(t)},{deep:!0}),a.provide(Ue,e)},Lr=(a,e)=>{const t=j(Ue);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");O(()=>{t.content||(t.content=yr())});const n=S(),s=y({get(){var d;const c=e.value,v=a.value;if(c){const h=(d=t.content)==null?void 0:d[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 Vr=()=>(Ve++,""+Ve);function Sr(){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",Ir=a=>{_e(Ge,a)},Nr=()=>{const a=j(Ge);if(!a)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return a},Tr={class:"plugin-tabs"},Cr=["id","aria-selected","aria-controls","tabindex","onClick"],wr=b({__name:"PluginTabs",props:{sharedStateKey:{}},setup(a){const e=a,t=Sr(),{selected:n,select:s}=Lr(t,ot(e,"sharedStateKey")),r=S(),{stabilizeScrollPosition:c}=$r(r),v=c(s),d=S([]),h=_=>{var w;const P=t.value.indexOf(n.value);let L;_.key==="ArrowLeft"?L=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(L=P(o(),l("div",Tr,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:h},[(o(!0),l(C,null,B(i(t),L=>(o(),l("button",{id:`tab-${L}-${i(A)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:L,role:"tab",class:"plugin-tabs--tab","aria-selected":L===i(n),"aria-controls":`panel-${L}-${i(A)}`,tabindex:L===i(n)?0:-1,onClick:()=>i(v)(L)},I(L),9,Cr))),128))],544),u(_.$slots,"default")]))}}),Mr=["id","aria-labelledby"],Br=b({__name:"PluginTabsTab",props:{label:{}},setup(a){const{uid:e,selected:t}=Nr();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)}`},[u(n.$slots,"default",{},void 0,!0)],8,Mr)):m("",!0)}}),Er=k(Br,[["__scopeId","data-v-9b0d03d2"]]),Qr=a=>{Pr(a),a.component("PluginTabs",wr),a.component("PluginTabsTab",Er)},Ur={extends:Le,Layout(){return Ae(Le.Layout,null,{"aside-ads-before":()=>Ae(br)})},enhanceApp({app:a,router:e,siteData:t}){Qr(a),a.component("VersionPicker",kr)}};export{Ur as R,Wr as V,Dr as a,Or as b,Fr as c,$a as d,V as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.FXHmopTJ.js","assets/chunks/framework.DYY3HcdR.js"])))=>i.map(i=>d[i]); +import{d as b,o,c as l,r as u,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 S,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 Ie,E as x,G as g,H,I as Ne,J as ee,K as R,L as j,M as Ze,N as Te,O as le,P as he,Q as Ce,R as te,S as Ye,U as Xe,V as qe,W as we,X as _e,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 Ae}from"./framework.DYY3HcdR.js";const rt=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(a){return(e,t)=>(o(),l("span",{class:T(["VPBadge",e.type])},[u(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"]]),V=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 be(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}=V(),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}=V(),c=y(()=>{var d,h;return{label:(d=e.value.locales[t.value])==null?void 0:d.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(([d,h])=>c.value.label===h.label?[]:{text:h.label,link:dt(h.link||(d==="root"?"/":`/${d}/`),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}=V(),{currentLang:t}=Z();return(n,s)=>{var r,c,v,d,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":((d=i(e).notFound)==null?void 0:d.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}=V(),n=ie("(min-width: 960px)"),s=S(!1),r=y(()=>{const M=t.value.sidebar,N=e.value.relativePath;return M?Be(M,N):[]}),c=S(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"),d=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 L(){s.value=!1}function w(){s.value?L():P()}return{isOpen:s,sidebar:c,sidebarGroups:_,hasSidebar:v,hasAside:h,leftAside:d,isSidebarEnabled:A,open:P,close:L,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}=V(),n=S(!1),s=y(()=>a.value.collapsed!=null),r=y(()=>!!a.value.link),c=S(!1),v=()=>{c.value=J(e.value.relativePath,a.value.link)};W([e,a,t],v),O(v);const d=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||d.value)&&(n.value=!1)});function A(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:r,isActiveLink:c,hasActiveLink:d,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 ge(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:Lt(t),link:"#"+t.id,level:n}});return Vt(e,a)}function Lt(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 Vt(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;return Nt(a,n,s)}function St(a,e){const{isAsideEnabled:t}=Pt(),n=ut(r,100);let s=null;O(()=>{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,d=window.innerHeight,h=document.body.offsetHeight,A=Math.abs(v+d-h)<1,_=de.map(({element:L,link:w})=>({link:w,top:It(L)})).filter(({top:L})=>!Number.isNaN(L)).sort((L,w)=>L.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:L,top:w}of _){if(w>v+ze()+4)break;P=L}c(P)}function c(v){s&&s.classList.remove("active"),v==null?s=null:s=a.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const d=s;d?(d.classList.add("active"),e.value.style.top=d.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}function Nt(a,e,t){de.length=0;const n=[],s=[];return a.forEach(r=>{const c={...r,children:[]};let v=s[s.length-1];for(;v&&v.level>=c.level;)s.pop(),v=s[s.length-1];if(c.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){s.push({level:c.level,shouldIgnore:!0});return}c.level>t||c.level{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,Tt),r!=null&&r.length?(o(),$(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),Qe=k(Ct,[["__scopeId","data-v-3f927ebe"]]),wt={class:"content"},Mt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Bt=b({__name:"VPDocAsideOutline",setup(a){const{frontmatter:e,theme:t}=V(),n=Ie([]);x(()=>{n.value=ge(e.value.outline??t.value.outline)});const s=S(),r=S();return St(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",wt,[p("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),p("div",Mt,I(i(Ee)(i(t))),1),g(Qe,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Et=k(Bt,[["__scopeId","data-v-b38bf2ff"]]),Qt={class:"VPDocAsideCarbonAds"},Ht=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(a){const e=()=>null;return(t,n)=>(o(),l("div",Qt,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ft={class:"VPDocAside"},Wt=b({__name:"VPDocAside",setup(a){const{theme:e}=V();return(t,n)=>(o(),l("div",Ft,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),g(Et),u(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=p("div",{class:"spacer"},null,-1)),u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(o(),$(Ht,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ot=k(Wt,[["__scopeId","data-v-6d7b3c46"]]);function Dt(){const{theme:a,page:e}=V();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 Ut(){const{page:a,theme:e,frontmatter:t}=V();return y(()=>{var h,A,_,P,L,w,M,N;const n=Be(e.value.sidebar,a.value.relativePath),s=$t(n),r=Rt(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,d=((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)??((L=r[c-1])==null?void 0:L.link)},next:d?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 Rt(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&&Ne.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(be)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:f(()=>[u(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Gt={class:"VPLastUpdated"},Jt=["datetime"],Kt=b({__name:"VPDocFooterLastUpdated",setup(a){const{theme:e,page:t,lang:n}=V(),s=y(()=>new Date(t.value.lastUpdated)),r=y(()=>s.value.toISOString()),c=S("");return O(()=>{q(()=>{var v,d,h;c.value=new Intl.DateTimeFormat((d=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&d.forceLocale?n.value:void 0,((h=e.value.lastUpdated)==null?void 0:h.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(v,d)=>{var h;return o(),l("p",Gt,[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,Jt)])}}}),jt=k(Kt,[["__scopeId","data-v-475f71b8"]]),zt={key:0,class:"VPDocFooter"},Zt={key:0,class:"edit-info"},Yt={key:0,class:"edit-link"},Xt={key:1,class:"last-updated"},qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},xt={class:"pager"},es=["innerHTML"],ts=["innerHTML"],ss={class:"pager"},ns=["innerHTML"],as=["innerHTML"],os=b({__name:"VPDocFooter",setup(a){const{theme:e,page:t,frontmatter:n}=V(),s=Dt(),r=Ut(),c=y(()=>e.value.editLink&&n.value.editLink!==!1),v=y(()=>t.value.lastUpdated),d=y(()=>c.value||v.value||r.value.prev||r.value.next);return(h,A)=>{var _,P,L,w;return d.value?(o(),l("footer",zt,[u(h.$slots,"doc-footer-before",{},void 0,!0),c.value||v.value?(o(),l("div",Zt,[c.value?(o(),l("div",Yt,[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",Xt,[g(jt)])):m("",!0)])):m("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(o(),l("nav",qt,[A[1]||(A[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",xt,[(L=i(r).prev)!=null&&L.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,es),p("span",{class:"title",innerHTML:i(r).prev.text},null,8,ts)]}),_:1},8,["href"])):m("",!0)]),p("div",ss,[(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,ns),p("span",{class:"title",innerHTML:i(r).next.text},null,8,as)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),rs=k(os,[["__scopeId","data-v-4f9813fa"]]),is={class:"container"},ls={class:"aside-container"},cs={class:"aside-content"},us={class:"content"},ds={class:"content-container"},ps={class:"main"},vs=b({__name:"VPDoc",setup(a){const{theme:e}=V(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:r}=D(),c=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,d)=>{const h=G("Content");return o(),l("div",{class:T(["VPDoc",{"has-sidebar":i(n),"has-aside":i(s)}])},[u(v.$slots,"doc-top",{},void 0,!0),p("div",is,[i(s)?(o(),l("div",{key:0,class:T(["aside",{"left-aside":i(r)}])},[d[0]||(d[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",ls,[p("div",cs,[g(Ot,null,{"aside-top":f(()=>[u(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),p("div",us,[p("div",ds,[u(v.$slots,"doc-before",{},void 0,!0),p("main",ps,[g(h,{class:T(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(rs,null,{"doc-footer-before":f(()=>[u(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(v.$slots,"doc-after",{},void 0,!0)])])]),u(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),fs=k(vs,[["__scopeId","data-v-83890dd9"]]),ms=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(a){const e=a,t=y(()=>e.href&&Ne.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(be)(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"]))}}),hs=k(ms,[["__scopeId","data-v-906d7fb4"]]),_s=["src","alt"],bs=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,_s)):(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(bs,[["__scopeId","data-v-35a7d0b8"]]),gs={class:"container"},ks={class:"main"},$s={key:0,class:"name"},ys=["innerHTML"],As=["innerHTML"],Ps=["innerHTML"],Ls={key:0,class:"actions"},Vs={key:0,class:"image"},Ss={class:"image-container"},Is=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",gs,[p("div",ks,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(o(),l("h1",$s,[p("span",{innerHTML:t.name,class:"clip"},null,8,ys)])):m("",!0),t.text?(o(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,As)):m("",!0),t.tagline?(o(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Ps)):m("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(o(),l("div",Ls,[(o(!0),l(C,null,B(t.actions,s=>(o(),l("div",{key:s.link,class:"action"},[g(hs,{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),u(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)),u(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))}}),Ns=k(Is,[["__scopeId","data-v-955009fc"]]),Ts=b({__name:"VPHomeHero",setup(a){const{frontmatter:e}=V();return(t,n)=>i(e).hero?(o(),$(Ns,{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(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Cs={class:"box"},ws={key:0,class:"icon"},Ms=["innerHTML"],Bs=["innerHTML"],Es=["innerHTML"],Qs={key:4,class:"link-text"},Hs={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",Cs,[typeof e.icon=="object"&&e.icon.wrap?(o(),l("div",ws,[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,Ms)):m("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Bs),e.details?(o(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Es)):m("",!0),e.linkText?(o(),l("div",Qs,[p("p",Hs,[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"]))}}),Ws=k(Fs,[["__scopeId","data-v-f5e9645b"]]),Os={key:0,class:"VPFeatures"},Ds={class:"container"},Us={class:"items"},Rs=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",Os,[p("div",Ds,[p("div",Us,[(o(!0),l(C,null,B(n.features,r=>(o(),l("div",{key:r.title,class:T(["item",[t.value]])},[g(Ws,{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)}}),Gs=k(Rs,[["__scopeId","data-v-d0a190d7"]]),Js=b({__name:"VPHomeFeatures",setup(a){const{frontmatter:e}=V();return(t,n)=>i(e).features?(o(),$(Gs,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),Ks=b({__name:"VPHomeContent",setup(a){const{width:e}=Ze({initialWidth:0,includeScrollbar:!1});return(t,n)=>(o(),l("div",{class:"vp-doc container",style:Te(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[u(t.$slots,"default",{},void 0,!0)],4))}}),js=k(Ks,[["__scopeId","data-v-7a48a447"]]),zs={class:"VPHome"},Zs=b({__name:"VPHome",setup(a){const{frontmatter:e}=V();return(t,n)=>{const s=G("Content");return o(),l("div",zs,[u(t.$slots,"home-hero-before",{},void 0,!0),g(Ts,null,{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(t.$slots,"home-hero-after",{},void 0,!0),u(t.$slots,"home-features-before",{},void 0,!0),g(Js),u(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(o(),$(js,{key:0},{default:f(()=>[g(s)]),_:1})):(o(),$(s,{key:1}))])}}}),Ys=k(Zs,[["__scopeId","data-v-cbb6ec48"]]),Xs={},qs={class:"VPPage"};function xs(a,e){const t=G("Content");return o(),l("div",qs,[u(a.$slots,"page-top"),g(t),u(a.$slots,"page-bottom")])}const en=k(Xs,[["render",xs]]),tn=b({__name:"VPContent",setup(a){const{page:e,frontmatter:t}=V(),{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?u(s.$slots,"not-found",{key:0},()=>[g(gt)],!0):i(t).layout==="page"?(o(),$(en,{key:1},{"page-top":f(()=>[u(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(o(),$(Ys,{key:2},{"home-hero-before":f(()=>[u(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(o(),$(H(i(t).layout),{key:3})):(o(),$(fs,{key:4},{"doc-top":f(()=>[u(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[u(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[u(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[u(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[u(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),sn=k(tn,[["__scopeId","data-v-91765379"]]),nn={class:"container"},an=["innerHTML"],on=["innerHTML"],rn=b({__name:"VPFooter",setup(a){const{theme:e,frontmatter:t}=V(),{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",nn,[i(e).footer.message?(o(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,an)):m("",!0),i(e).footer.copyright?(o(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,on)):m("",!0)])],2)):m("",!0)}}),ln=k(rn,[["__scopeId","data-v-c970a860"]]);function cn(){const{theme:a,frontmatter:e}=V(),t=Ie([]),n=y(()=>t.value.length>0);return x(()=>{t.value=ge(e.value.outline??a.value.outline)}),{headers:t,hasLocalNav:n}}const un={class:"menu-text"},dn={class:"header"},pn={class:"outline"},vn=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(a){const e=a,{theme:t}=V(),n=S(!1),s=S(0),r=S(),c=S();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 d(){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"),he(()=>{n.value=!1}))}function A(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(o(),l("div",{class:"VPLocalNavOutlineDropdown",style:Te({"--vp-vh":s.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(o(),l("button",{key:0,onClick:d,class:T({open:n.value})},[p("span",un,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",dn,[p("a",{class:"top-link",href:"#",onClick:A},I(i(t).returnToTopLabel||"Return to top"),1)]),p("div",pn,[g(Qe,{headers:_.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),fn=k(vn,[["__scopeId","data-v-bc9dc845"]]),mn={class:"container"},hn=["aria-expanded"],_n={class:"menu-text"},bn=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(a){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=D(),{headers:s}=cn(),{y:r}=Ce(),c=S(0);O(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=ge(t.value.outline??e.value.outline)});const v=y(()=>s.value.length===0),d=y(()=>v.value&&!n.value),h=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:v.value,fixed:d.value}));return(A,_)=>i(t).layout!=="home"&&(!d.value||i(r)>=c.value)?(o(),l("div",{key:0,class:T(h.value)},[p("div",mn,[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",_n,I(i(e).sidebarMenuLabel||"Menu"),1)],8,hn)):m("",!0),g(fn,{headers:i(s),navHeight:c.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),gn=k(bn,[["__scopeId","data-v-070ab83d"]]);function kn(){const a=S(!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 $n={},yn={class:"VPSwitch",type:"button",role:"switch"},An={class:"check"},Pn={key:0,class:"icon"};function Ln(a,e){return o(),l("button",yn,[p("span",An,[a.$slots.default?(o(),l("span",Pn,[u(a.$slots,"default",{},void 0,!0)])):m("",!0)])])}const Vn=k($n,[["render",Ln],["__scopeId","data-v-4a1c76db"]]),Sn=b({__name:"VPSwitchAppearance",setup(a){const{isDark:e,theme:t}=V(),n=j("toggle-appearance",()=>{e.value=!e.value}),s=S("");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"]))}}),ke=k(Sn,[["__scopeId","data-v-e40a8bb6"]]),In={key:0,class:"VPNavBarAppearance"},Nn=b({__name:"VPNavBarAppearance",setup(a){const{site:e}=V();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",In,[g(ke)])):m("",!0)}}),Tn=k(Nn,[["__scopeId","data-v-af096f4a"]]),$e=S();let He=!1,re=0;function Cn(a){const e=S(!1);if(te){!He&&wn(),re++;const t=W($e,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||Mn()})}return Ye(e)}function wn(){document.addEventListener("focusin",Fe),He=!0,$e.value=document.activeElement}function Mn(){document.removeEventListener("focusin",Fe)}function Fe(){$e.value=document.activeElement}const Bn={class:"VPMenuLink"},En=["innerHTML"],Qn=b({__name:"VPMenuLink",props:{item:{}},setup(a){const{page:e}=V();return(t,n)=>(o(),l("div",Bn,[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,"no-icon":t.item.noIcon},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,En)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),se=k(Qn,[["__scopeId","data-v-acbfed09"]]),Hn={class:"VPMenuGroup"},Fn={key:0,class:"title"},Wn=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",Hn,[e.text?(o(),l("p",Fn,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))]))}}),On=k(Wn,[["__scopeId","data-v-48c802d0"]]),Dn={class:"VPMenu"},Un={key:0,class:"items"},Rn=b({__name:"VPMenu",props:{items:{}},setup(a){return(e,t)=>(o(),l("div",Dn,[e.items?(o(),l("div",Un,[(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(),$(On,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),Gn=k(Rn,[["__scopeId","data-v-7dd3104a"]]),Jn=["aria-expanded","aria-label"],Kn={key:0,class:"text"},jn=["innerHTML"],zn={key:1,class:"vpi-more-horizontal icon"},Zn={class:"menu"},Yn=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(a){const e=S(!1),t=S();Cn({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",Kn,[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",zn))],8,Jn),p("div",Zn,[g(Gn,{items:s.items},{default:f(()=>[u(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=k(Yn,[["__scopeId","data-v-04f5c5e9"]]),Xn=["href","aria-label","innerHTML"],qn=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(a){const e=a,t=S();O(async()=>{var r;await he();const s=(r=t.value)==null?void 0:r.children[0];s instanceof HTMLElement&&s.className.startsWith("vpi-social-")&&(getComputedStyle(s).maskImage||getComputedStyle(s).webkitMaskImage)==="none"&&s.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const n=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,r)=>(o(),l("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,Xn))}}),xn=k(qn,[["__scopeId","data-v-d26d30cb"]]),ea={class:"VPSocialLinks"},ta=b({__name:"VPSocialLinks",props:{links:{}},setup(a){return(e,t)=>(o(),l("div",ea,[(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(ta,[["__scopeId","data-v-ee7a9424"]]),sa={key:0,class:"group translations"},na={class:"trans-title"},aa={key:1,class:"group"},oa={class:"item appearance"},ra={class:"label"},ia={class:"appearance-action"},la={key:2,class:"group"},ca={class:"item social-links"},ua=b({__name:"VPNavBarExtra",setup(a){const{site:e,theme:t}=V(),{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(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(n).length&&i(s).label?(o(),l("div",sa,[p("p",na,I(i(s).label),1),(o(!0),l(C,null,B(i(n),d=>(o(),$(se,{key:d.link,item:d},null,8,["item"]))),128))])):m("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",aa,[p("div",oa,[p("p",ra,I(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",ia,[g(ke)])])])):m("",!0),i(t).socialLinks?(o(),l("div",la,[p("div",ca,[g(ne,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),da=k(ua,[["__scopeId","data-v-925effce"]]),pa=["aria-expanded"],va=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,pa))}}),fa=k(va,[["__scopeId","data-v-5dea55bf"]]),ma=["innerHTML"],ha=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(a){const{page:e}=V();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,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,ma)]),_:1},8,["class","href","target","rel","no-icon"]))}}),_a=k(ha,[["__scopeId","data-v-956ec74c"]]),We=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(a){const e=a,{page:t}=V(),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(),$(ye,{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"]))}}),ba={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ga=b({__name:"VPNavBarMenu",setup(a){const{theme:e}=V();return(t,n)=>i(e).nav?(o(),l("nav",ba,[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(),$(_a,{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)}}),ka=k(ga,[["__scopeId","data-v-e6d46098"]]);function $a(a){const{localeIndex:e,theme:t}=V();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",d=v&&((N=(M=c.locales)==null?void 0:M[e.value])==null?void 0:N.translations)||null,h=v&&c.translations||null;let A=d,_=h,P=a;const L=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[L])??(_==null?void 0:_[L])??(P==null?void 0:P[L])??""}return n}const ya=["aria-label"],Aa={class:"DocSearch-Button-Container"},Pa={class:"DocSearch-Button-Placeholder"},Pe=b({__name:"VPNavBarSearchButton",setup(a){const t=$a({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",Aa,[s[0]||(s[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",Pa,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,ya))}}),La={class:"VPNavBarSearch"},Va={id:"local-search"},Sa={key:1,id:"docsearch"},Ia=b({__name:"VPNavBarSearch",setup(a){const e=Xe(()=>qe(()=>import("./VPLocalSearchBox.FXHmopTJ.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=V(),s=S(!1),r=S(!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 d(_){const P=_.target,L=P.tagName;return P.isContentEditable||L==="INPUT"||L==="SELECT"||L==="TEXTAREA"}const h=S(!1);le("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),h.value=!0)}),le("/",_=>{d(_)||(_.preventDefault(),h.value=!0)});const A="local";return(_,P)=>{var L;return o(),l("div",La,[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",Va,[g(Pe,{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:((L=i(n).search)==null?void 0:L.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",Sa,[g(Pe,{onClick:c})]))],64)):m("",!0)])}}}),Na=b({__name:"VPNavBarSocialLinks",setup(a){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Ta=k(Na,[["__scopeId","data-v-164c457f"]]),Ca=["href","rel","target"],wa=["innerHTML"],Ma={key:2},Ba=b({__name:"VPNavBarTitle",setup(a){const{site:e,theme:t}=V(),{hasSidebar:n}=D(),{currentLang:s}=Z(),r=y(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),c=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),v=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,h)=>(o(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(n)}])},[p("a",{class:"title",href:r.value??i(be)(i(s).link),rel:c.value,target:v.value},[u(d.$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",{key:1,innerHTML:i(t).siteTitle},null,8,wa)):i(t).siteTitle===void 0?(o(),l("span",Ma,I(i(e).title),1)):m("",!0),u(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ca)],2))}}),Ea=k(Ba,[["__scopeId","data-v-0f4f798b"]]),Qa={class:"items"},Ha={class:"title"},Fa=b({__name:"VPNavBarTranslations",setup(a){const{theme:e}=V(),{localeLinks:t,currentLang:n}=Z({correspondingLink:!0});return(s,r)=>i(t).length&&i(n).label?(o(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Qa,[p("p",Ha,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)}}),Wa=k(Fa,[["__scopeId","data-v-c80d9ad0"]]),Oa={class:"wrapper"},Da={class:"container"},Ua={class:"title"},Ra={class:"content"},Ga={class:"content-body"},Ja=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(a){const e=a,{y:t}=Ce(),{hasSidebar:n}=D(),{frontmatter:s}=V(),r=S({});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",Oa,[p("div",Da,[p("div",Ua,[g(Ea,null,{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",Ra,[p("div",Ga,[u(c.$slots,"nav-bar-content-before",{},void 0,!0),g(Ia,{class:"search"}),g(ka,{class:"menu"}),g(Wa,{class:"translations"}),g(Tn,{class:"appearance"}),g(Ta,{class:"social-links"}),g(da,{class:"extra"}),u(c.$slots,"nav-bar-content-after",{},void 0,!0),g(fa,{class:"hamburger",active:c.isScreenOpen,onClick:v[0]||(v[0]=d=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Ka=k(Ja,[["__scopeId","data-v-822684d1"]]),ja={key:0,class:"VPNavScreenAppearance"},za={class:"text"},Za=b({__name:"VPNavScreenAppearance",setup(a){const{site:e,theme:t}=V();return(n,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",ja,[p("p",za,I(i(t).darkModeSwitchLabel||"Appearance"),1),g(ke)])):m("",!0)}}),Ya=k(Za,[["__scopeId","data-v-ffb44008"]]),Xa=["innerHTML"],qa=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,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Xa)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),xa=k(qa,[["__scopeId","data-v-735512b8"]]),eo=["innerHTML"],to=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,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,eo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Oe=k(to,[["__scopeId","data-v-372ae7c0"]]),so={class:"VPNavScreenMenuGroupSection"},no={key:0,class:"title"},ao=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",so,[e.text?(o(),l("p",no,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))]))}}),oo=k(ao,[["__scopeId","data-v-4b8941ac"]]),ro=["aria-controls","aria-expanded"],io=["innerHTML"],lo=["id"],co={key:0,class:"item"},uo={key:1,class:"item"},po={key:2,class:"group"},vo=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(a){const e=a,t=S(!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,io),c[0]||(c[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,ro),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",co,[g(Oe,{item:v},null,8,["item"])])):"component"in v?(o(),l("div",uo,[(o(),$(H(v.component),R({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(o(),l("div",po,[g(oo,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,lo)],2))}}),De=k(vo,[["__scopeId","data-v-875057a5"]]),fo={key:0,class:"VPNavScreenMenu"},mo=b({__name:"VPNavScreenMenu",setup(a){const{theme:e}=V();return(t,n)=>i(e).nav?(o(),l("nav",fo,[(o(!0),l(C,null,B(i(e).nav,s=>(o(),l(C,{key:JSON.stringify(s)},["link"in s?(o(),$(xa,{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)}}),ho=b({__name:"VPNavScreenSocialLinks",setup(a){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),_o={class:"list"},bo=b({__name:"VPNavScreenTranslations",setup(a){const{localeLinks:e,currentLang:t}=Z({correspondingLink:!0}),n=S(!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",_o,[(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)}}),go=k(bo,[["__scopeId","data-v-362991c2"]]),ko={class:"container"},$o=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(a){const e=S(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",ko,[u(n.$slots,"nav-screen-content-before",{},void 0,!0),g(mo,{class:"menu"}),g(go,{class:"translations"}),g(Ya,{class:"appearance"}),g(ho,{class:"social-links"}),u(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),yo=k($o,[["__scopeId","data-v-833aabba"]]),Ao={key:0,class:"VPNav"},Po=b({__name:"VPNav",setup(a){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=kn(),{frontmatter:s}=V(),r=y(()=>s.value.navbar!==!1);return _e("close-screen",t),q(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,v)=>r.value?(o(),l("header",Ao,[g(Ka,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g(yo,{open:i(e)},{"nav-screen-content-before":f(()=>[u(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),Lo=k(Po,[["__scopeId","data-v-f1e365da"]]),Vo=["role","tabindex"],So={key:1,class:"items"},Io=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(a){const e=a,{collapsed:t,collapsible:n,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:v,toggle:d}=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"),L=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&&d()}function M(){e.item.link&&d()}return(N,E)=>{const U=G("VPSidebarItem",!0);return o(),$(H(h.value),{class:T(["VPSidebarItem",L.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,Vo)):m("",!0),N.item.items&&N.item.items.length?(o(),l("div",So,[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"])}}}),No=k(Io,[["__scopeId","data-v-196b2e5f"]]),To=b({__name:"VPSidebarGroup",props:{items:{}},setup(a){const e=S(!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(No,{item:r,depth:0},null,8,["item"])],2))),128))}}),Co=k(To,[["__scopeId","data-v-9e426adc"]]),wo={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Mo=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(a){const{sidebarGroups:e,hasSidebar:t}=D(),n=a,s=S(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=S(0);return W(e,()=>{c.value+=1},{deep:!0}),(v,d)=>i(t)?(o(),l("aside",{key:0,class:T(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:s,onClick:d[0]||(d[0]=st(()=>{},["stop"]))},[d[2]||(d[2]=p("div",{class:"curtain"},null,-1)),p("nav",wo,[d[1]||(d[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(v.$slots,"sidebar-nav-before",{},void 0,!0),(o(),$(Co,{items:i(e),key:c.value},null,8,["items"])),u(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Bo=k(Mo,[["__scopeId","data-v-18756405"]]),Eo=b({__name:"VPSkipLink",setup(a){const e=ee(),t=S();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))}}),Qo=k(Eo,[["__scopeId","data-v-c3508ec8"]]),Ho=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}=V(),c=Me(),v=y(()=>!!c["home-hero-image"]);return _e("hero-image-slot-exists",v),(d,h)=>{const A=G("Content");return i(r).layout!==!1?(o(),l("div",{key:0,class:T(["Layout",i(r).pageClass])},[u(d.$slots,"layout-top",{},void 0,!0),g(Qo),g(ct,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),g(Lo,null,{"nav-bar-title-before":f(()=>[u(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[u(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(gn,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(Bo,{open:i(e)},{"sidebar-nav-before":f(()=>[u(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[u(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(sn,null,{"page-top":f(()=>[u(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[u(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[u(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[u(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[u(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[u(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(ln),u(d.$slots,"layout-bottom",{},void 0,!0)],2)):(o(),$(A,{key:1}))}}}),Fo=k(Ho,[["__scopeId","data-v-a9a9e638"]]),Wo={},Oo={class:"VPTeamPage"};function Do(a,e){return o(),l("div",Oo,[u(a.$slots,"default")])}const Fr=k(Wo,[["render",Do],["__scopeId","data-v-c2f8e101"]]),Uo={},Ro={class:"VPTeamPageTitle"},Go={key:0,class:"title"},Jo={key:1,class:"lead"};function Ko(a,e){return o(),l("div",Ro,[a.$slots.title?(o(),l("h1",Go,[u(a.$slots,"title",{},void 0,!0)])):m("",!0),a.$slots.lead?(o(),l("p",Jo,[u(a.$slots,"lead",{},void 0,!0)])):m("",!0)])}const Wr=k(Uo,[["render",Ko],["__scopeId","data-v-e277e15c"]]),jo={},zo={class:"VPTeamPageSection"},Zo={class:"title"},Yo={key:0,class:"title-text"},Xo={key:0,class:"lead"},qo={key:1,class:"members"};function xo(a,e){return o(),l("section",zo,[p("div",Zo,[e[0]||(e[0]=p("div",{class:"title-line"},null,-1)),a.$slots.title?(o(),l("h2",Yo,[u(a.$slots,"title",{},void 0,!0)])):m("",!0)]),a.$slots.lead?(o(),l("p",Xo,[u(a.$slots,"lead",{},void 0,!0)])):m("",!0),a.$slots.members?(o(),l("div",qo,[u(a.$slots,"members",{},void 0,!0)])):m("",!0)])}const Or=k(jo,[["render",xo],["__scopeId","data-v-d43bc49d"]]),er={class:"profile"},tr={class:"avatar"},sr=["src","alt"],nr={class:"data"},ar={class:"name"},or={key:0,class:"affiliation"},rr={key:0,class:"title"},ir={key:1,class:"at"},lr=["innerHTML"],cr={key:2,class:"links"},ur={key:0,class:"sp"},dr=b({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(a){return(e,t)=>(o(),l("article",{class:T(["VPTeamMembersItem",[e.size]])},[p("div",er,[p("figure",tr,[p("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,sr)]),p("div",nr,[p("h1",ar,I(e.member.name),1),e.member.title||e.member.org?(o(),l("p",or,[e.member.title?(o(),l("span",rr,I(e.member.title),1)):m("",!0),e.member.title&&e.member.org?(o(),l("span",ir," @ ")):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,lr)):m("",!0),e.member.links?(o(),l("div",cr,[g(ne,{links:e.member.links},null,8,["links"])])):m("",!0)])]),e.member.sponsor?(o(),l("div",ur,[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))}}),pr=k(dr,[["__scopeId","data-v-f9987cb6"]]),vr={class:"container"},fr=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",vr,[(o(!0),l(C,null,B(n.members,r=>(o(),l("div",{key:r.name,class:"item"},[g(pr,{size:n.size,member:r},null,8,["size","member"])]))),128))])],2))}}),Dr=k(fr,[["__scopeId","data-v-fba19bad"]]),Le={Layout:Fo,enhanceApp:({app:a})=>{a.component("Badge",rt)}},mr={},hr={style:{"text-align":"center"}};function _r(a,e){const t=G("font");return o(),l(C,null,[e[1]||(e[1]=p("br",null,null,-1)),p("h1",hr,[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 br=k(mr,[["render",_r]]),gr=b({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(a){const e=S([]),t=S("Versions"),n=S(!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:d,pathname:h}=window.location;if(d.includes("github.io")){const A=h.split("/").filter(Boolean),_=A.length>0?`/${A[0]}/`:"/";return`${d}${_}`}else return d},c=()=>new Promise(d=>{if(s()){d(!1);return}const h=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(h),d(!0))},100);setTimeout(()=>{clearInterval(h),d(!1)},5e3)});return O(async()=>{if(!(typeof window>"u")){try{if(s()){const d=["dev"];e.value=d.map(h=>({text:h,link:"/"})),t.value="dev"}else{const d=await c(),h=y(()=>r());if(d&&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(d){console.warn("Error loading versions:",d);const h=["dev"],A=y(()=>r());e.value=h.map(_=>({text:_,link:`${A.value}/${_}/`})),t.value="dev"}n.value=!0}}),(d,h)=>n.value?(o(),l(C,{key:0},[!d.screenMenu&&e.value.length>0?(o(),$(We,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):d.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)}}),kr=k(gr,[["__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 he(),e.scrollTop=c.offsetTop-v,r}}},Ue="vitepress:tabSharedState",z=typeof localStorage<"u"?localStorage:null,Re="vitepress:tabsSharedState",yr=()=>{const a=z==null?void 0:z.getItem(Re);if(a)try{return JSON.parse(a)}catch{}return{}},Ar=a=>{z&&z.setItem(Re,JSON.stringify(a))},Pr=a=>{const e=at({});W(()=>e.content,(t,n)=>{t&&n&&Ar(t)},{deep:!0}),a.provide(Ue,e)},Lr=(a,e)=>{const t=j(Ue);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");O(()=>{t.content||(t.content=yr())});const n=S(),s=y({get(){var d;const c=e.value,v=a.value;if(c){const h=(d=t.content)==null?void 0:d[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 Vr=()=>(Ve++,""+Ve);function Sr(){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",Ir=a=>{_e(Ge,a)},Nr=()=>{const a=j(Ge);if(!a)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return a},Tr={class:"plugin-tabs"},Cr=["id","aria-selected","aria-controls","tabindex","onClick"],wr=b({__name:"PluginTabs",props:{sharedStateKey:{}},setup(a){const e=a,t=Sr(),{selected:n,select:s}=Lr(t,ot(e,"sharedStateKey")),r=S(),{stabilizeScrollPosition:c}=$r(r),v=c(s),d=S([]),h=_=>{var w;const P=t.value.indexOf(n.value);let L;_.key==="ArrowLeft"?L=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(L=P(o(),l("div",Tr,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:h},[(o(!0),l(C,null,B(i(t),L=>(o(),l("button",{id:`tab-${L}-${i(A)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:L,role:"tab",class:"plugin-tabs--tab","aria-selected":L===i(n),"aria-controls":`panel-${L}-${i(A)}`,tabindex:L===i(n)?0:-1,onClick:()=>i(v)(L)},I(L),9,Cr))),128))],544),u(_.$slots,"default")]))}}),Mr=["id","aria-labelledby"],Br=b({__name:"PluginTabsTab",props:{label:{}},setup(a){const{uid:e,selected:t}=Nr();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)}`},[u(n.$slots,"default",{},void 0,!0)],8,Mr)):m("",!0)}}),Er=k(Br,[["__scopeId","data-v-9b0d03d2"]]),Qr=a=>{Pr(a),a.component("PluginTabs",wr),a.component("PluginTabsTab",Er)},Ur={extends:Le,Layout(){return Ae(Le.Layout,null,{"aside-ads-before":()=>Ae(br)})},enhanceApp({app:a,router:e,siteData:t}){Qr(a),a.component("VersionPicker",kr)}};export{Ur as R,Wr as V,Dr as a,Or as b,Fr as c,$a as d,V as u}; diff --git a/previews/PR479/assets/development_contributors.md.LufL7IA0.js b/previews/PR479/assets/development_contributors.md.CBWqoCWc.js similarity index 98% rename from previews/PR479/assets/development_contributors.md.LufL7IA0.js rename to previews/PR479/assets/development_contributors.md.CBWqoCWc.js index f72d4253..31f1b3ba 100644 --- a/previews/PR479/assets/development_contributors.md.LufL7IA0.js +++ b/previews/PR479/assets/development_contributors.md.CBWqoCWc.js @@ -1 +1 @@ -import{V as u,a as l,b as m,c as g}from"./chunks/theme.DSoAjSjU.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.DYY3HcdR.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}; +import{V as u,a as l,b as m,c as g}from"./chunks/theme.Cb66Hod8.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.DYY3HcdR.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/PR479/assets/development_contributors.md.LufL7IA0.lean.js b/previews/PR479/assets/development_contributors.md.CBWqoCWc.lean.js similarity index 98% rename from previews/PR479/assets/development_contributors.md.LufL7IA0.lean.js rename to previews/PR479/assets/development_contributors.md.CBWqoCWc.lean.js index f72d4253..31f1b3ba 100644 --- a/previews/PR479/assets/development_contributors.md.LufL7IA0.lean.js +++ b/previews/PR479/assets/development_contributors.md.CBWqoCWc.lean.js @@ -1 +1 @@ -import{V as u,a as l,b as m,c as g}from"./chunks/theme.DSoAjSjU.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.DYY3HcdR.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}; +import{V as u,a as l,b as m,c as g}from"./chunks/theme.Cb66Hod8.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.DYY3HcdR.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/PR479/assets/deycsiw.m9Tg4llE.png b/previews/PR479/assets/deycsiw.m9Tg4llE.png new file mode 100644 index 00000000..5e261c52 Binary files /dev/null and b/previews/PR479/assets/deycsiw.m9Tg4llE.png differ diff --git a/previews/PR479/assets/get_started.md.Dn74F0WO.js b/previews/PR479/assets/get_started.md.D4AEcaZh.js similarity index 70% rename from previews/PR479/assets/get_started.md.Dn74F0WO.js rename to previews/PR479/assets/get_started.md.D4AEcaZh.js index 9b65c5ee..f8ad07b2 100644 --- a/previews/PR479/assets/get_started.md.Dn74F0WO.js +++ b/previews/PR479/assets/get_started.md.D4AEcaZh.js @@ -1,4 +1,5 @@ -import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.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.DYY3HcdR.js";const E=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
+using YAXArrays: YAXArrays as YAX
 
 a = YAXArray(rand(2,3))
╭─────────────────────────╮
 │ 2×3 YAXArray{Float64,2} │
@@ -9,14 +10,12 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   Dict{String, Any}()
 ├─────────────────────────────────────────────────── loaded in memory ┤
   data size: 48.0 bytes
-└─────────────────────────────────────────────────────────────────────┘

Assemble a more complex YAXArray with 4 dimensions, i.e. time, x, y and a variable type:

julia
using DimensionalData
-
-# axes or dimensions with name and tick values
+└─────────────────────────────────────────────────────────────────────┘

Assemble a more complex YAXArray with 4 dimensions, i.e. time, x, y and a variable type:

julia
# axes or dimensions with name and tick values
 axlist = (
-    Dim{:time}(range(1, 20, length=20)),
-    X(range(1, 10, length=10)),
-    Y(range(1, 5, length=15)),
-    Dim{:variable}(["temperature", "precipitation"])
+    YAX.time(range(1, 20, length=20)),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
+    Variables(["temperature", "precipitation"])
 )
 
 # the actual data matching the dimensions defined in axlist
@@ -32,10 +31,10 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 a2 = YAXArray(axlist, data, props)
╭────────────────────────────────╮
 │ 20×10×15×2 YAXArray{Float64,4} │
 ├────────────────────────────────┴─────────────────────────────────────── dims ┐
-  ↓ time     Sampled{Float64} 1.0:1.0:20.0 ForwardOrdered Regular Points,
-  → X        Sampled{Float64} 1.0:1.0:10.0 ForwardOrdered Regular Points,
-  ↗ Y        Sampled{Float64} 1.0:0.2857142857142857:5.0 ForwardOrdered Regular Points,
-  ⬔ variable Categorical{String} ["temperature", "precipitation"] ReverseOrdered
+  ↓ time      Sampled{Float64} 1.0:1.0:20.0 ForwardOrdered Regular Points,
+  → lon       Sampled{Float64} 1.0:1.0:10.0 ForwardOrdered Regular Points,
+  ↗ lat       Sampled{Float64} 1.0:0.2857142857142857:5.0 ForwardOrdered Regular Points,
+  ⬔ Variables Categorical{String} ["temperature", "precipitation"] ReverseOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 3 entries:
   "y"      => "latitude"
@@ -43,14 +42,14 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   "origin" => "YAXArrays.jl example"
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data 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.325997   0.624506   0.655204  0.142733  …  0.587477   0.626919  0.606561
- 0.0972941  0.0693719  0.828299  0.531092     0.884949   0.060422  0.265107
- 0.393083   0.0776029  0.157268  0.339529     0.976187   0.811959  0.0302534
- 0.928614   0.52908    0.902979  0.746804     0.0353507  0.634856  0.92491
- 0.720352   0.825766   0.235707  0.245867     0.0474875  0.552072  0.607478
- 0.240588   0.875981   0.755932  0.696114  …  0.542309   0.705063  0.902991
- 0.507176   0.0512364  0.628915  0.935959     0.874428   0.812577  0.183083
- 0.853962   0.461652   0.438885  0.665833     0.0743642  0.81705   0.00997173
- 0.515079   0.283788   0.258509  0.807171     0.234116   0.404819  0.3785
- 0.864937   0.0916764  0.235899  0.047283     0.768363   0.937012  0.732556

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}; +└──────────────────────────────────────────────────────────────────────────────┘

Get the temperature map at the first point in time:

julia
a2[Variables=At("temperature"), time=1].data
10×15 view(::Array{Float64, 4}, 1, :, :, 1) with eltype Float64:
+ 0.839919  0.166982  0.148753   0.553602  …  0.678562  0.939296   0.046745
+ 0.32876   0.400731  0.738327   0.531649     0.391546  0.961913   0.709999
+ 0.18507   0.409244  0.0893687  0.671473     0.395451  0.935884   0.816865
+ 0.990276  0.778954  0.0118366  0.580668     0.783581  0.0766027  0.191654
+ 0.271921  0.733172  0.9538     0.58548      0.582329  0.922125   0.360748
+ 0.536094  0.630988  0.8256     0.284649  …  0.855984  0.230869   0.971131
+ 0.749822  0.427021  0.182827   0.735264     0.253963  0.45354    0.00372526
+ 0.647058  0.657324  0.475594   0.63291      0.405317  0.263789   0.641411
+ 0.223412  0.771583  0.119937   0.771179     0.45015   0.991786   0.663392
+ 0.607943  0.13068   0.711506   0.629872     0.457345  0.319698   0.0900259

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 g=a(p,[["render",l]]);export{E as __pageData,g as default}; diff --git a/previews/PR479/assets/get_started.md.Dn74F0WO.lean.js b/previews/PR479/assets/get_started.md.D4AEcaZh.lean.js similarity index 70% rename from previews/PR479/assets/get_started.md.Dn74F0WO.lean.js rename to previews/PR479/assets/get_started.md.D4AEcaZh.lean.js index 9b65c5ee..f8ad07b2 100644 --- a/previews/PR479/assets/get_started.md.Dn74F0WO.lean.js +++ b/previews/PR479/assets/get_started.md.D4AEcaZh.lean.js @@ -1,4 +1,5 @@ -import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.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.DYY3HcdR.js";const E=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
+using YAXArrays: YAXArrays as YAX
 
 a = YAXArray(rand(2,3))
╭─────────────────────────╮
 │ 2×3 YAXArray{Float64,2} │
@@ -9,14 +10,12 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   Dict{String, Any}()
 ├─────────────────────────────────────────────────── loaded in memory ┤
   data size: 48.0 bytes
-└─────────────────────────────────────────────────────────────────────┘

Assemble a more complex YAXArray with 4 dimensions, i.e. time, x, y and a variable type:

julia
using DimensionalData
-
-# axes or dimensions with name and tick values
+└─────────────────────────────────────────────────────────────────────┘

Assemble a more complex YAXArray with 4 dimensions, i.e. time, x, y and a variable type:

julia
# axes or dimensions with name and tick values
 axlist = (
-    Dim{:time}(range(1, 20, length=20)),
-    X(range(1, 10, length=10)),
-    Y(range(1, 5, length=15)),
-    Dim{:variable}(["temperature", "precipitation"])
+    YAX.time(range(1, 20, length=20)),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
+    Variables(["temperature", "precipitation"])
 )
 
 # the actual data matching the dimensions defined in axlist
@@ -32,10 +31,10 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
 a2 = YAXArray(axlist, data, props)
╭────────────────────────────────╮
 │ 20×10×15×2 YAXArray{Float64,4} │
 ├────────────────────────────────┴─────────────────────────────────────── dims ┐
-  ↓ time     Sampled{Float64} 1.0:1.0:20.0 ForwardOrdered Regular Points,
-  → X        Sampled{Float64} 1.0:1.0:10.0 ForwardOrdered Regular Points,
-  ↗ Y        Sampled{Float64} 1.0:0.2857142857142857:5.0 ForwardOrdered Regular Points,
-  ⬔ variable Categorical{String} ["temperature", "precipitation"] ReverseOrdered
+  ↓ time      Sampled{Float64} 1.0:1.0:20.0 ForwardOrdered Regular Points,
+  → lon       Sampled{Float64} 1.0:1.0:10.0 ForwardOrdered Regular Points,
+  ↗ lat       Sampled{Float64} 1.0:0.2857142857142857:5.0 ForwardOrdered Regular Points,
+  ⬔ Variables Categorical{String} ["temperature", "precipitation"] ReverseOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 3 entries:
   "y"      => "latitude"
@@ -43,14 +42,14 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DYY3HcdR.js";const g
   "origin" => "YAXArrays.jl example"
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data 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.325997   0.624506   0.655204  0.142733  …  0.587477   0.626919  0.606561
- 0.0972941  0.0693719  0.828299  0.531092     0.884949   0.060422  0.265107
- 0.393083   0.0776029  0.157268  0.339529     0.976187   0.811959  0.0302534
- 0.928614   0.52908    0.902979  0.746804     0.0353507  0.634856  0.92491
- 0.720352   0.825766   0.235707  0.245867     0.0474875  0.552072  0.607478
- 0.240588   0.875981   0.755932  0.696114  …  0.542309   0.705063  0.902991
- 0.507176   0.0512364  0.628915  0.935959     0.874428   0.812577  0.183083
- 0.853962   0.461652   0.438885  0.665833     0.0743642  0.81705   0.00997173
- 0.515079   0.283788   0.258509  0.807171     0.234116   0.404819  0.3785
- 0.864937   0.0916764  0.235899  0.047283     0.768363   0.937012  0.732556

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}; +└──────────────────────────────────────────────────────────────────────────────┘

Get the temperature map at the first point in time:

julia
a2[Variables=At("temperature"), time=1].data
10×15 view(::Array{Float64, 4}, 1, :, :, 1) with eltype Float64:
+ 0.839919  0.166982  0.148753   0.553602  …  0.678562  0.939296   0.046745
+ 0.32876   0.400731  0.738327   0.531649     0.391546  0.961913   0.709999
+ 0.18507   0.409244  0.0893687  0.671473     0.395451  0.935884   0.816865
+ 0.990276  0.778954  0.0118366  0.580668     0.783581  0.0766027  0.191654
+ 0.271921  0.733172  0.9538     0.58548      0.582329  0.922125   0.360748
+ 0.536094  0.630988  0.8256     0.284649  …  0.855984  0.230869   0.971131
+ 0.749822  0.427021  0.182827   0.735264     0.253963  0.45354    0.00372526
+ 0.647058  0.657324  0.475594   0.63291      0.405317  0.263789   0.641411
+ 0.223412  0.771583  0.119937   0.771179     0.45015   0.991786   0.663392
+ 0.607943  0.13068   0.711506   0.629872     0.457345  0.319698   0.0900259

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 g=a(p,[["render",l]]);export{E as __pageData,g as default}; diff --git a/previews/PR479/assets/index.md.D1y_AG6k.js b/previews/PR479/assets/index.md.C6f_t179.js similarity index 94% rename from previews/PR479/assets/index.md.D1y_AG6k.js rename to previews/PR479/assets/index.md.C6f_t179.js index 8b7b396d..365c2d26 100644 --- a/previews/PR479/assets/index.md.D1y_AG6k.js +++ b/previews/PR479/assets/index.md.C6f_t179.js @@ -2,7 +2,7 @@ import{_ as s,c as a,a2 as t,o as e}from"./chunks/framework.DYY3HcdR.js";const g julia> Pkg.add("YAXArrays.jl") # or julia> ] # ']' should be pressed -pkg> add YAXArrays

If you want to use the latest unreleased version, you can run the following command:

julia
pkg> add YAXArrays#master

Want interoperability?

Install the following package(s) for:

julia
using Pkg
+pkg> add YAXArrays

If you want to use the latest unreleased version, you can run the following command:

julia
pkg> add YAXArrays#master

Want interoperability?

Install the following package(s) for:

julia
using Pkg
 Pkg.add("ArchGDAL")
julia
using Pkg
 Pkg.add("NetCDF")
julia
using Pkg
 Pkg.add("Zarr")
julia
using Pkg
diff --git a/previews/PR479/assets/index.md.D1y_AG6k.lean.js b/previews/PR479/assets/index.md.C6f_t179.lean.js
similarity index 94%
rename from previews/PR479/assets/index.md.D1y_AG6k.lean.js
rename to previews/PR479/assets/index.md.C6f_t179.lean.js
index 8b7b396d..365c2d26 100644
--- a/previews/PR479/assets/index.md.D1y_AG6k.lean.js
+++ b/previews/PR479/assets/index.md.C6f_t179.lean.js
@@ -2,7 +2,7 @@ import{_ as s,c as a,a2 as t,o as e}from"./chunks/framework.DYY3HcdR.js";const g
 julia> Pkg.add("YAXArrays.jl")
 # or
 julia> ] # ']' should be pressed
-pkg> add YAXArrays

If you want to use the latest unreleased version, you can run the following command:

julia
pkg> add YAXArrays#master

Want interoperability?

Install the following package(s) for:

julia
using Pkg
+pkg> add YAXArrays

If you want to use the latest unreleased version, you can run the following command:

julia
pkg> add YAXArrays#master

Want interoperability?

Install the following package(s) for:

julia
using Pkg
 Pkg.add("ArchGDAL")
julia
using Pkg
 Pkg.add("NetCDF")
julia
using Pkg
 Pkg.add("Zarr")
julia
using Pkg
diff --git a/previews/PR479/assets/dadyujg.BJNzQY3Z.png b/previews/PR479/assets/lhmmpxn.BJNzQY3Z.png
similarity index 100%
rename from previews/PR479/assets/dadyujg.BJNzQY3Z.png
rename to previews/PR479/assets/lhmmpxn.BJNzQY3Z.png
diff --git a/previews/PR479/assets/eycsiwg.B7KFIfDV.jpeg b/previews/PR479/assets/ltjmjei.B7KFIfDV.jpeg
similarity index 100%
rename from previews/PR479/assets/eycsiwg.B7KFIfDV.jpeg
rename to previews/PR479/assets/ltjmjei.B7KFIfDV.jpeg
diff --git a/previews/PR479/assets/lwcvkom.CBIWEbop.png b/previews/PR479/assets/lwcvkom.CBIWEbop.png
deleted file mode 100644
index 318689c7..00000000
Binary files a/previews/PR479/assets/lwcvkom.CBIWEbop.png and /dev/null differ
diff --git a/previews/PR479/assets/ocamthh.96k_BqPR.jpeg b/previews/PR479/assets/msrdcxv.96k_BqPR.jpeg
similarity index 100%
rename from previews/PR479/assets/ocamthh.96k_BqPR.jpeg
rename to previews/PR479/assets/msrdcxv.96k_BqPR.jpeg
diff --git a/previews/PR479/assets/nrllxra.Dugsq64i.png b/previews/PR479/assets/nrllxra.Dugsq64i.png
new file mode 100644
index 00000000..7c051fa8
Binary files /dev/null and b/previews/PR479/assets/nrllxra.Dugsq64i.png differ
diff --git a/previews/PR479/assets/rllxrad.CQ9uchq9.jpeg b/previews/PR479/assets/poommqw.CQ9uchq9.jpeg
similarity index 100%
rename from previews/PR479/assets/rllxrad.CQ9uchq9.jpeg
rename to previews/PR479/assets/poommqw.CQ9uchq9.jpeg
diff --git a/previews/PR479/assets/pvbkmme.BNwnPvkJ.jpeg b/previews/PR479/assets/pvbkmme.BNwnPvkJ.jpeg
deleted file mode 100644
index 6ebebef3..00000000
Binary files a/previews/PR479/assets/pvbkmme.BNwnPvkJ.jpeg and /dev/null differ
diff --git a/previews/PR479/assets/sdpqlwg.C0lFChV0.png b/previews/PR479/assets/sdpqlwg.C0lFChV0.png
deleted file mode 100644
index 72f7ec08..00000000
Binary files a/previews/PR479/assets/sdpqlwg.C0lFChV0.png and /dev/null differ
diff --git a/previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DZ9Oi0Ol.js b/previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DY61i3Ri.js
similarity index 82%
rename from previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DZ9Oi0Ol.js
rename to previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DY61i3Ri.js
index 4665cb12..c5ccc020 100644
--- a/previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DZ9Oi0Ol.js
+++ b/previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DY61i3Ri.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DYY3HcdR.js";const l="/YAXArrays.jl/previews/PR479/assets/lwcvkom.CBIWEbop.png",k="/YAXArrays.jl/previews/PR479/assets/sdpqlwg.C0lFChV0.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.DYY3HcdR.js";const l="/YAXArrays.jl/previews/PR479/assets/nrllxra.Dugsq64i.png",k="/YAXArrays.jl/previews/PR479/assets/deycsiw.m9Tg4llE.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")
@@ -11,7 +11,9 @@ import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DYY3HcdR.js";const l
 ax.xticklabelalign = (:right, :center)
 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)
╭──────────────────────────────────╮
+julia> using YAXArrays: YAXArrays as YAX
+
+julia> axes = (YAX.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}
 ├──────────────────────────────────┴───────────────────────────────────── dims ┐
 Time Sampled{Date} Date("2021-01-01"):Dates.Day(1):Date("2023-12-31") ForwardOrdered Regular Points
@@ -37,26 +39,26 @@ import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DYY3HcdR.js";const l
 end
 
 msc = mean_seasonal_cycle(c);
365×1 Matrix{Float64}:
- -0.12320189493957617
-  0.09317591352691727
-  0.06183225090497175
-  0.028497582895211832
-  0.25526503219661817
-  0.13853500608021024
- -0.02627341416046051
-  0.18554488323324722
-  0.05344184427965779
-  0.09470732715757708
+  0.006364171431821925
+  0.10986528577255357
+ -0.030090414984429516
+  0.11037641658890784
+ -0.0012862484521267356
+  0.1373199053065047
+  0.07565180270644235
+  0.1850454989838767
+  0.10850864324777372
+  0.12673714160438732
 
- -0.0063020041736240135
- -0.03856393968274492
- -0.08383207080301504
-  0.05116592548280876
- -0.07111923498269067
- -0.07400365941169999
- -0.05345455485976908
- -0.08964458904045909
- -0.013646215450068194

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.1578236499134987
+ -0.1851357399351781
+ -0.08536931940151503
+ -0.13102300858571433
+ -0.0617443331324013
+  0.09779224328472132
+ -0.0586963181904983
+ -0.019199882044045064
+ -0.05203842202056678

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/PR479/assets/tutorials_mean_seasonal_cycle.md.DZ9Oi0Ol.lean.js b/previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DY61i3Ri.lean.js
similarity index 82%
rename from previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DZ9Oi0Ol.lean.js
rename to previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DY61i3Ri.lean.js
index 4665cb12..c5ccc020 100644
--- a/previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DZ9Oi0Ol.lean.js
+++ b/previews/PR479/assets/tutorials_mean_seasonal_cycle.md.DY61i3Ri.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DYY3HcdR.js";const l="/YAXArrays.jl/previews/PR479/assets/lwcvkom.CBIWEbop.png",k="/YAXArrays.jl/previews/PR479/assets/sdpqlwg.C0lFChV0.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.DYY3HcdR.js";const l="/YAXArrays.jl/previews/PR479/assets/nrllxra.Dugsq64i.png",k="/YAXArrays.jl/previews/PR479/assets/deycsiw.m9Tg4llE.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")
@@ -11,7 +11,9 @@ import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DYY3HcdR.js";const l
 ax.xticklabelalign = (:right, :center)
 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)
╭──────────────────────────────────╮
+julia> using YAXArrays: YAXArrays as YAX
+
+julia> axes = (YAX.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}
 ├──────────────────────────────────┴───────────────────────────────────── dims ┐
 Time Sampled{Date} Date("2021-01-01"):Dates.Day(1):Date("2023-12-31") ForwardOrdered Regular Points
@@ -37,26 +39,26 @@ import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DYY3HcdR.js";const l
 end
 
 msc = mean_seasonal_cycle(c);
365×1 Matrix{Float64}:
- -0.12320189493957617
-  0.09317591352691727
-  0.06183225090497175
-  0.028497582895211832
-  0.25526503219661817
-  0.13853500608021024
- -0.02627341416046051
-  0.18554488323324722
-  0.05344184427965779
-  0.09470732715757708
+  0.006364171431821925
+  0.10986528577255357
+ -0.030090414984429516
+  0.11037641658890784
+ -0.0012862484521267356
+  0.1373199053065047
+  0.07565180270644235
+  0.1850454989838767
+  0.10850864324777372
+  0.12673714160438732
 
- -0.0063020041736240135
- -0.03856393968274492
- -0.08383207080301504
-  0.05116592548280876
- -0.07111923498269067
- -0.07400365941169999
- -0.05345455485976908
- -0.08964458904045909
- -0.013646215450068194

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.1578236499134987
+ -0.1851357399351781
+ -0.08536931940151503
+ -0.13102300858571433
+ -0.0617443331324013
+  0.09779224328472132
+ -0.0586963181904983
+ -0.019199882044045064
+ -0.05203842202056678

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/PR479/assets/tutorials_plottingmaps.md.CuCLSo0e.js b/previews/PR479/assets/tutorials_plottingmaps.md.DfxpCqPP.js
similarity index 95%
rename from previews/PR479/assets/tutorials_plottingmaps.md.CuCLSo0e.js
rename to previews/PR479/assets/tutorials_plottingmaps.md.DfxpCqPP.js
index 11d18c94..d31d4828 100644
--- a/previews/PR479/assets/tutorials_plottingmaps.md.CuCLSo0e.js
+++ b/previews/PR479/assets/tutorials_plottingmaps.md.DfxpCqPP.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/rllxrad.CQ9uchq9.jpeg",k="/YAXArrays.jl/previews/PR479/assets/eycsiwg.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR479/assets/ocamthh.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.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/poommqw.CQ9uchq9.jpeg",k="/YAXArrays.jl/previews/PR479/assets/ltjmjei.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR479/assets/msrdcxv.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
@@ -17,7 +17,7 @@ import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.DYY3HcdR.js";const t
   Variables: 
   tas
 
-Properties: Dict{String, Any}("initialization_index" => 1, "realm" => "atmos", "variable_id" => "tas", "external_variables" => "areacella", "branch_time_in_child" => 60265.0, "data_specs_version" => "01.00.30", "history" => "2019-07-21T06:26:13Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards.", "forcing_index" => 1, "parent_variant_label" => "r1i1p1f1", "table_id" => "3hr"…)
julia
julia> c = g["tas"];

Subset, first time step

julia
julia> ct1_slice = c[Ti = Near(Date("2015-01-01"))];

use lookup to get axis values

julia
lon = lookup(ct1_slice, :lon)
+Properties: Dict{String, Any}("initialization_index" => 1, "realm" => "atmos", "variable_id" => "tas", "external_variables" => "areacella", "branch_time_in_child" => 60265.0, "data_specs_version" => "01.00.30", "history" => "2019-07-21T06:26:13Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards.", "forcing_index" => 1, "parent_variant_label" => "r1i1p1f1", "table_id" => "3hr"…)
julia
julia> c = g["tas"];

Subset, first time step

julia
julia> ct1_slice = c[time = Near(Date("2015-01-01"))];

use lookup to get axis values

julia
lon = lookup(ct1_slice, :lon)
 lat = lookup(ct1_slice, :lat)
 data = ct1_slice.data[:,:];

Heatmap plot

julia
GLMakie.activate!()
 
diff --git a/previews/PR479/assets/tutorials_plottingmaps.md.CuCLSo0e.lean.js b/previews/PR479/assets/tutorials_plottingmaps.md.DfxpCqPP.lean.js
similarity index 95%
rename from previews/PR479/assets/tutorials_plottingmaps.md.CuCLSo0e.lean.js
rename to previews/PR479/assets/tutorials_plottingmaps.md.DfxpCqPP.lean.js
index 11d18c94..d31d4828 100644
--- a/previews/PR479/assets/tutorials_plottingmaps.md.CuCLSo0e.lean.js
+++ b/previews/PR479/assets/tutorials_plottingmaps.md.DfxpCqPP.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/rllxrad.CQ9uchq9.jpeg",k="/YAXArrays.jl/previews/PR479/assets/eycsiwg.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR479/assets/ocamthh.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.DYY3HcdR.js";const t="/YAXArrays.jl/previews/PR479/assets/poommqw.CQ9uchq9.jpeg",k="/YAXArrays.jl/previews/PR479/assets/ltjmjei.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR479/assets/msrdcxv.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
@@ -17,7 +17,7 @@ import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.DYY3HcdR.js";const t
   Variables: 
   tas
 
-Properties: Dict{String, Any}("initialization_index" => 1, "realm" => "atmos", "variable_id" => "tas", "external_variables" => "areacella", "branch_time_in_child" => 60265.0, "data_specs_version" => "01.00.30", "history" => "2019-07-21T06:26:13Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards.", "forcing_index" => 1, "parent_variant_label" => "r1i1p1f1", "table_id" => "3hr"…)
julia
julia> c = g["tas"];

Subset, first time step

julia
julia> ct1_slice = c[Ti = Near(Date("2015-01-01"))];

use lookup to get axis values

julia
lon = lookup(ct1_slice, :lon)
+Properties: Dict{String, Any}("initialization_index" => 1, "realm" => "atmos", "variable_id" => "tas", "external_variables" => "areacella", "branch_time_in_child" => 60265.0, "data_specs_version" => "01.00.30", "history" => "2019-07-21T06:26:13Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards.", "forcing_index" => 1, "parent_variant_label" => "r1i1p1f1", "table_id" => "3hr"…)
julia
julia> c = g["tas"];

Subset, first time step

julia
julia> ct1_slice = c[time = Near(Date("2015-01-01"))];

use lookup to get axis values

julia
lon = lookup(ct1_slice, :lon)
 lat = lookup(ct1_slice, :lat)
 data = ct1_slice.data[:,:];

Heatmap plot

julia
GLMakie.activate!()
 
diff --git a/previews/PR479/assets/utzwahn.DldUI1n7.jpeg b/previews/PR479/assets/utzwahn.DldUI1n7.jpeg
new file mode 100644
index 00000000..b4577158
Binary files /dev/null and b/previews/PR479/assets/utzwahn.DldUI1n7.jpeg differ
diff --git a/previews/PR479/development/contribute.html b/previews/PR479/development/contribute.html
index 1b66e3bb..5063dcde 100644
--- a/previews/PR479/development/contribute.html
+++ b/previews/PR479/development/contribute.html
@@ -9,9 +9,9 @@
     
     
     
-    
+    
     
-    
+    
     
     
     
@@ -24,7 +24,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/PR479/development/contributors.html b/previews/PR479/development/contributors.html index 7b463885..63172fec 100644 --- a/previews/PR479/development/contributors.html +++ b/previews/PR479/development/contributors.html @@ -9,11 +9,11 @@ - + - + - + @@ -22,7 +22,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/PR479/get_started.html b/previews/PR479/get_started.html index f568b937..4ff19012 100644 --- a/previews/PR479/get_started.html +++ b/previews/PR479/get_started.html @@ -9,11 +9,11 @@ - + - + - + @@ -22,6 +22,7 @@
Skip to content

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
+using YAXArrays: YAXArrays as YAX
 
 a = YAXArray(rand(2,3))
╭─────────────────────────╮
 │ 2×3 YAXArray{Float64,2} │
@@ -32,14 +33,12 @@
   Dict{String, Any}()
 ├─────────────────────────────────────────────────── loaded in memory ┤
   data size: 48.0 bytes
-└─────────────────────────────────────────────────────────────────────┘

Assemble a more complex YAXArray with 4 dimensions, i.e. time, x, y and a variable type:

julia
using DimensionalData
-
-# axes or dimensions with name and tick values
+└─────────────────────────────────────────────────────────────────────┘

Assemble a more complex YAXArray with 4 dimensions, i.e. time, x, y and a variable type:

julia
# axes or dimensions with name and tick values
 axlist = (
-    Dim{:time}(range(1, 20, length=20)),
-    X(range(1, 10, length=10)),
-    Y(range(1, 5, length=15)),
-    Dim{:variable}(["temperature", "precipitation"])
+    YAX.time(range(1, 20, length=20)),
+    lon(range(1, 10, length=10)),
+    lat(range(1, 5, length=15)),
+    Variables(["temperature", "precipitation"])
 )
 
 # the actual data matching the dimensions defined in axlist
@@ -55,10 +54,10 @@
 a2 = YAXArray(axlist, data, props)
╭────────────────────────────────╮
 │ 20×10×15×2 YAXArray{Float64,4} │
 ├────────────────────────────────┴─────────────────────────────────────── dims ┐
-  ↓ time     Sampled{Float64} 1.0:1.0:20.0 ForwardOrdered Regular Points,
-  → X        Sampled{Float64} 1.0:1.0:10.0 ForwardOrdered Regular Points,
-  ↗ Y        Sampled{Float64} 1.0:0.2857142857142857:5.0 ForwardOrdered Regular Points,
-  ⬔ variable Categorical{String} ["temperature", "precipitation"] ReverseOrdered
+  ↓ time      Sampled{Float64} 1.0:1.0:20.0 ForwardOrdered Regular Points,
+  → lon       Sampled{Float64} 1.0:1.0:10.0 ForwardOrdered Regular Points,
+  ↗ lat       Sampled{Float64} 1.0:0.2857142857142857:5.0 ForwardOrdered Regular Points,
+  ⬔ Variables Categorical{String} ["temperature", "precipitation"] ReverseOrdered
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, String} with 3 entries:
   "y"      => "latitude"
@@ -66,18 +65,18 @@
   "origin" => "YAXArrays.jl example"
 ├──────────────────────────────────────────────────────────── loaded in memory ┤
   data 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.325997   0.624506   0.655204  0.142733  …  0.587477   0.626919  0.606561
- 0.0972941  0.0693719  0.828299  0.531092     0.884949   0.060422  0.265107
- 0.393083   0.0776029  0.157268  0.339529     0.976187   0.811959  0.0302534
- 0.928614   0.52908    0.902979  0.746804     0.0353507  0.634856  0.92491
- 0.720352   0.825766   0.235707  0.245867     0.0474875  0.552072  0.607478
- 0.240588   0.875981   0.755932  0.696114  …  0.542309   0.705063  0.902991
- 0.507176   0.0512364  0.628915  0.935959     0.874428   0.812577  0.183083
- 0.853962   0.461652   0.438885  0.665833     0.0743642  0.81705   0.00997173
- 0.515079   0.283788   0.258509  0.807171     0.234116   0.404819  0.3785
- 0.864937   0.0916764  0.235899  0.047283     0.768363   0.937012  0.732556

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.

- +└──────────────────────────────────────────────────────────────────────────────┘

Get the temperature map at the first point in time:

julia
a2[Variables=At("temperature"), time=1].data
10×15 view(::Array{Float64, 4}, 1, :, :, 1) with eltype Float64:
+ 0.839919  0.166982  0.148753   0.553602  …  0.678562  0.939296   0.046745
+ 0.32876   0.400731  0.738327   0.531649     0.391546  0.961913   0.709999
+ 0.18507   0.409244  0.0893687  0.671473     0.395451  0.935884   0.816865
+ 0.990276  0.778954  0.0118366  0.580668     0.783581  0.0766027  0.191654
+ 0.271921  0.733172  0.9538     0.58548      0.582329  0.922125   0.360748
+ 0.536094  0.630988  0.8256     0.284649  …  0.855984  0.230869   0.971131
+ 0.749822  0.427021  0.182827   0.735264     0.253963  0.45354    0.00372526
+ 0.647058  0.657324  0.475594   0.63291      0.405317  0.263789   0.641411
+ 0.223412  0.771583  0.119937   0.771179     0.45015   0.991786   0.663392
+ 0.607943  0.13068   0.711506   0.629872     0.457345  0.319698   0.0900259

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/PR479/hashmap.json b/previews/PR479/hashmap.json index c1fe5553..22659b30 100644 --- a/previews/PR479/hashmap.json +++ b/previews/PR479/hashmap.json @@ -1 +1 @@ -{"api.md":"Bfipf1hV","development_contribute.md":"CkpgxKi9","development_contributors.md":"LufL7IA0","get_started.md":"Dn74F0WO","index.md":"D1y_AG6k","tutorials_mean_seasonal_cycle.md":"DZ9Oi0Ol","tutorials_other_tutorials.md":"k1cIf9TO","tutorials_plottingmaps.md":"CuCLSo0e","userguide_cache.md":"BPLL4v-g","userguide_chunk.md":"BmJaxpwh","userguide_combine.md":"mA6U1NW5","userguide_compute.md":"DigNHVwR","userguide_convert.md":"BoWk4XSr","userguide_create.md":"hkVdvB3i","userguide_faq.md":"BO-Oajgz","userguide_group.md":"DX5SlgGD","userguide_read.md":"De0OvTWP","userguide_select.md":"rxBehFDA","userguide_types.md":"C9xprOE-","userguide_write.md":"D_JyEE73"} +{"api.md":"LtcwYcT6","development_contribute.md":"CkpgxKi9","development_contributors.md":"CBWqoCWc","get_started.md":"D4AEcaZh","index.md":"C6f_t179","tutorials_mean_seasonal_cycle.md":"DY61i3Ri","tutorials_other_tutorials.md":"k1cIf9TO","tutorials_plottingmaps.md":"DfxpCqPP","userguide_cache.md":"BPLL4v-g","userguide_chunk.md":"BmJaxpwh","userguide_combine.md":"B3kKJwRR","userguide_compute.md":"GnwBFM_7","userguide_convert.md":"CObFCPzI","userguide_create.md":"C7ebbtn2","userguide_faq.md":"C9UN1j4H","userguide_group.md":"C2yVVeKj","userguide_read.md":"De0OvTWP","userguide_select.md":"rxBehFDA","userguide_types.md":"C9xprOE-","userguide_write.md":"CslDCk8B"} diff --git a/previews/PR479/index.html b/previews/PR479/index.html index a8761b6c..5859c13f 100644 --- a/previews/PR479/index.html +++ b/previews/PR479/index.html @@ -9,11 +9,11 @@ - + - + - + @@ -25,12 +25,12 @@ julia> Pkg.add("YAXArrays.jl") # or julia> ] # ']' should be pressed -pkg> add YAXArrays

If you want to use the latest unreleased version, you can run the following command:

julia
pkg> add YAXArrays#master

Want interoperability?

Install the following package(s) for:

julia
using Pkg
+pkg> add YAXArrays

If you want to use the latest unreleased version, you can run the following command:

julia
pkg> add YAXArrays#master

Want interoperability?

Install the following package(s) for:

julia
using Pkg
 Pkg.add("ArchGDAL")
julia
using Pkg
 Pkg.add("NetCDF")
julia
using Pkg
 Pkg.add("Zarr")
julia
using Pkg
 Pkg.add(["GLMakie", "GeoMakie", "AlgebraOfGraphics", "DimensionalData"])
- + \ No newline at end of file diff --git a/previews/PR479/tutorials/mean_seasonal_cycle.html b/previews/PR479/tutorials/mean_seasonal_cycle.html index 90dc7615..c17a1640 100644 --- a/previews/PR479/tutorials/mean_seasonal_cycle.html +++ b/previews/PR479/tutorials/mean_seasonal_cycle.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,9 +32,11 @@ ) 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)
╭──────────────────────────────────╮
+julia> using YAXArrays: YAXArrays as YAX
+
+julia> axes = (YAX.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}
 ├──────────────────────────────────┴───────────────────────────────────── dims ┐
 Time Sampled{Date} Date("2021-01-01"):Dates.Day(1):Date("2023-12-31") ForwardOrdered Regular Points
@@ -60,26 +62,26 @@
 end
 
 msc = mean_seasonal_cycle(c);
365×1 Matrix{Float64}:
- -0.12320189493957617
-  0.09317591352691727
-  0.06183225090497175
-  0.028497582895211832
-  0.25526503219661817
-  0.13853500608021024
- -0.02627341416046051
-  0.18554488323324722
-  0.05344184427965779
-  0.09470732715757708
+  0.006364171431821925
+  0.10986528577255357
+ -0.030090414984429516
+  0.11037641658890784
+ -0.0012862484521267356
+  0.1373199053065047
+  0.07565180270644235
+  0.1850454989838767
+  0.10850864324777372
+  0.12673714160438732
 
- -0.0063020041736240135
- -0.03856393968274492
- -0.08383207080301504
-  0.05116592548280876
- -0.07111923498269067
- -0.07400365941169999
- -0.05345455485976908
- -0.08964458904045909
- -0.013646215450068194

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.1578236499134987
+ -0.1851357399351781
+ -0.08536931940151503
+ -0.13102300858571433
+ -0.0617443331324013
+  0.09779224328472132
+ -0.0586963181904983
+ -0.019199882044045064
+ -0.05203842202056678

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))
@@ -92,8 +94,8 @@
 ax.xticklabelrotation = π / 4
 ax.xticklabelalign = (:right, :center)
 fig
-current_figure()

- +current_figure()

+ \ No newline at end of file diff --git a/previews/PR479/tutorials/other_tutorials.html b/previews/PR479/tutorials/other_tutorials.html index 6ba6fbb1..ad25939d 100644 --- a/previews/PR479/tutorials/other_tutorials.html +++ b/previews/PR479/tutorials/other_tutorials.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,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/PR479/tutorials/plottingmaps.html b/previews/PR479/tutorials/plottingmaps.html index 666bfa37..c80a7bc6 100644 --- a/previews/PR479/tutorials/plottingmaps.html +++ b/previews/PR479/tutorials/plottingmaps.html @@ -9,11 +9,11 @@ - + - + - + @@ -40,26 +40,26 @@ Variables: tas -Properties: Dict{String, Any}("initialization_index" => 1, "realm" => "atmos", "variable_id" => "tas", "external_variables" => "areacella", "branch_time_in_child" => 60265.0, "data_specs_version" => "01.00.30", "history" => "2019-07-21T06:26:13Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards.", "forcing_index" => 1, "parent_variant_label" => "r1i1p1f1", "table_id" => "3hr"…)
julia
julia> c = g["tas"];

Subset, first time step

julia
julia> ct1_slice = c[Ti = Near(Date("2015-01-01"))];

use lookup to get axis values

julia
lon = lookup(ct1_slice, :lon)
+Properties: Dict{String, Any}("initialization_index" => 1, "realm" => "atmos", "variable_id" => "tas", "external_variables" => "areacella", "branch_time_in_child" => 60265.0, "data_specs_version" => "01.00.30", "history" => "2019-07-21T06:26:13Z ; CMOR rewrote data to be consistent with CMIP6, CF-1.7 CMIP-6.2 and CF standards.", "forcing_index" => 1, "parent_variant_label" => "r1i1p1f1", "table_id" => "3hr"…)
julia
julia> c = g["tas"];

Subset, first time step

julia
julia> ct1_slice = c[time = Near(Date("2015-01-01"))];

use lookup to get axis values

julia
lon = lookup(ct1_slice, :lon)
 lat = lookup(ct1_slice, :lat)
 data = ct1_slice.data[:,:];

Heatmap plot

julia
GLMakie.activate!()
 
 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!()
@@ -75,7 +75,7 @@
 zoom!(ax.scene, cameracontrols(ax.scene), 0.5)
 rotate!(ax.scene, 2.5)
 fig
- + \ No newline at end of file