Reading data from objects

[1]:
import xarray as xr
import numpy as np

import earthkit.data as ekd
[2]:
demo_ndarray = np.random.rand(10,10)*10.
demo_lats = np.arange(0,91,10)
demo_lons = np.arange(0,91,10)
# demo_ndarray
[3]:
demo_da = xr.DataArray(
    demo_ndarray, name="temperature", dims={'latitude':demo_lats, 'longitude': demo_lons},
    attrs={'units': 'Celsius', "standard_name": "air_temperature"}
)
demo_ds = demo_da.to_dataset().assign_attrs({'purpose': 'Demonstration', 'source': 'EarthkitExamples'})

demo_ds
[3]:
<xarray.Dataset> Size: 800B
Dimensions:      (latitude: 10, longitude: 10)
Dimensions without coordinates: latitude, longitude
Data variables:
    temperature  (latitude, longitude) float64 800B 9.924 6.907 ... 9.595 7.987
Attributes:
    purpose:  Demonstration
    source:   EarthkitExamples
[4]:
ek_nd = ekd.from_object(demo_ndarray)
ek_nd.to_numpy()
[4]:
array([[9.92431552, 6.90655349, 5.7868388 , 8.41121321, 1.69326597,
        5.8638489 , 7.88491778, 5.32100601, 2.51267228, 6.40874136],
       [7.20922708, 4.84160044, 3.19112609, 9.86412211, 1.93044519,
        3.21458366, 6.8855625 , 0.89282633, 9.18236597, 9.39104825],
       [8.3800421 , 5.35997137, 9.3995762 , 6.78596141, 0.27519014,
        4.44691476, 4.17433485, 3.90901429, 0.45603054, 8.67484758],
       [0.61742956, 8.75248349, 7.88558635, 9.58852544, 7.3215772 ,
        5.61184126, 9.82122202, 7.91967289, 0.49805722, 2.7364674 ],
       [2.55413561, 6.54633036, 6.05313804, 0.15144518, 1.93220753,
        2.3002996 , 1.44260029, 7.37107842, 7.46102275, 9.88265362],
       [7.97129689, 6.79109449, 5.18966605, 3.93028723, 9.46987938,
        1.29953927, 4.96990227, 0.84910365, 7.41595432, 7.16546269],
       [0.9570322 , 5.11237267, 3.14709369, 9.48180342, 8.72560246,
        3.79490185, 8.82257466, 0.68210994, 0.65729065, 1.13449939],
       [0.81227942, 6.27177992, 9.11285075, 8.06514698, 1.7646168 ,
        4.39226812, 7.39714433, 5.35081803, 9.11160899, 1.12502894],
       [7.62276549, 2.6358015 , 9.85262721, 9.52385975, 5.46631338,
        3.68646726, 8.33371783, 7.36604175, 1.53462783, 0.54594352],
       [3.89025704, 7.51555425, 0.46221449, 3.89854723, 2.44635243,
        0.08044784, 3.79812982, 6.92937516, 9.59464767, 7.98681252]])
[5]:
ek_da = ekd.from_object(demo_da)
ek_da.to_pandas()
[5]:
temperature
latitude longitude
0 0 9.924316
1 6.906553
2 5.786839
3 8.411213
4 1.693266
... ... ...
9 5 0.080448
6 3.798130
7 6.929375
8 9.594648
9 7.986813

100 rows × 1 columns

[6]:
ek_ds = ekd.from_object(demo_ds)
ek_ds.to_pandas()
[6]:
temperature
latitude longitude
0 0 9.924316
1 6.906553
2 5.786839
3 8.411213
4 1.693266
... ... ...
9 5 0.080448
6 3.798130
7 6.929375
8 9.594648
9 7.986813

100 rows × 1 columns

[ ]: