forked from felixcremer/datacubes_in_julia_workshop
-
Notifications
You must be signed in to change notification settings - Fork 2
/
intro_ndarrays.qmd
58 lines (41 loc) · 1.39 KB
/
intro_ndarrays.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---
engine: julia
title: Basics of multidimensional data analysis
author: "Felix Cremer, Fabian Gans"
institute: "Max Planck Institute for Biogeochemistry
[NFDI4Earth Advancing Tools](https://nfdi4earth.de/2facilitate/advancing-tools)"
format:
revealjs:
logo: images/logo2_mpi_nfdi4earth.png
number-sections: false
footer: "[Datacubes in Julia](https://juliadatacubes.github.io/datacubes_in_julia_workshop/)"
execute:
echo: true
---
## Data cubes
![Earth System Data Cube](images/esdl.png){alt="A three by three layout of data cubes with different data types."}
## Data formats
- Geotiff
- Zarr
- NetCDF
- ...
## Chunking
::: {#fig-chunking layout-ncol=2}
![Spatial chunking](images/img1.png){alt="Representation of the spatial chunking where every map is put together in memory."}
![Box chunking](images/img2.png){alt="Representation of a box chunking where yellow boxes indicate that both temporal and spatial neighbours are close together in memory."}
Different chunking structures
:::
## Pyramids
```{julia}
#| eval: false
using PyramidScheme
using Rasters, RasterDataSources
using ArchGDAL
rastas = Raster(CHELSA{Climate},:tas, lazy=true, month=1)
rastasscale = rastas.metadata["scale"] .* rastas .+ rastas.metadata["offset"]
pyrtas = Pyramid(rastasscale)
using GLMakie
plot(pyrtas, colormap=Reverse(:RdYlBu))
```
## Pyramid example
{{< video images/zoom.mp4 >}}