Do not separate climate versus EO
More about about grids and it is more about GIS versus global model grids
Data cubes: base structure of xarray
one assumption is the co-gridding. Alignment of samples.
co-sampled.
Xarray can drive scope.
Examples with some basic DGGS lib data manipulation, coordinate conversions, selecting etc: https://github.com/allixender/dggs_t1
Data tree in Xarray.
Can only interoperate if they shared the same discretisation.
We can resample or interpolation.
But we should not do it too often to make sure we do not have too many uncertainties on the data.
Can we have a data cube which is not xyz? e.g. kee this time dimension.
DGGS part 1 in ISO 19170 abstract specification
quantization of time
Get sample dataset in DGGS
Let's forget about multi-resolution and we focus on mono-resolution.
Let's try to solve it for one resolution.
Original Pangeo DGGS code sprint repo:
https://github.com/pangeo-data/bids2023_codesprint
Benoit nicely explaning stuff:
https://github.com/pangeo-data/bids2023_codesprint/issues/3
We want to work on the cell id.
We can have orthogonal dimensions: time and z.
Repositories of examples:
Tina/Ifremer, Justus/Ifremer Healpix/healpy with notebook (regridding):
Alex, various basic DGGS operations with H3, rHealpix, DGGRID
Ryan: Added an example creating H3:
Base operations:
repository (code + examples): https://github.com/benbovy/xdggs
import xarray as xr
ds = xr.open_dataset("something_healpix.nc")
# ds.temperature.dims == ('time', 'cell_id')
# how to decode the grid?
# if for each lat
ds = ds.dggs.decode()
# select by coordinates
# Q: do we use a custom index?
ds.sel(lon=45, lat=30, time="2023-10-01", method='nearest')
# or an accessor?
ds.dggs.sel(lon=45, lat=30, time="2023-10-01", method='nearest')
# coarsen (to absolute zoom level)
ds.dggs.coarsen(level=3).mean()
# select by bounding box
ds.dggs.bbox((ll_lon, ll_lat, ur_lon, ur_lat))
ds.dggs.query(shapely.bbox(ll_lon, ll_lat, ur_lon, ur_lat))
ds.dggs.query(shapely.Polygon([[lon, lat], ...]))
# visualization?
ds.isel(time=0).temperature.dggs.plot()
(please extend / correct, my memory of our lively discussion is already somewhat hazy)
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing