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
[ ]: