Using pandas data
[1]:
import pandas as pd
import numpy as np
import earthkit.data as ekd
Construct a sample pandas objects for demonstration
[2]:
t2m_series = pd.Series(np.linspace(273.15,293,20), name='t2m')
lat_series = pd.Series(np.arange(50,52,0.1), name='latitude')
lon_series = pd.Series(np.arange(-1,1,0.1), name='longitude')
date_series = pd.Series(pd.date_range('2022-01-01', '2022-01-20'), name='date')
date_series
t2m_df = pd.concat([t2m_series, lat_series, lon_series], axis=1).set_index(date_series)
t2m_df
[2]:
| t2m | latitude | longitude | |
|---|---|---|---|
| date | |||
| 2022-01-01 | 273.150000 | 50.0 | -1.000000e+00 |
| 2022-01-02 | 274.194737 | 50.1 | -9.000000e-01 |
| 2022-01-03 | 275.239474 | 50.2 | -8.000000e-01 |
| 2022-01-04 | 276.284211 | 50.3 | -7.000000e-01 |
| 2022-01-05 | 277.328947 | 50.4 | -6.000000e-01 |
| 2022-01-06 | 278.373684 | 50.5 | -5.000000e-01 |
| 2022-01-07 | 279.418421 | 50.6 | -4.000000e-01 |
| 2022-01-08 | 280.463158 | 50.7 | -3.000000e-01 |
| 2022-01-09 | 281.507895 | 50.8 | -2.000000e-01 |
| 2022-01-10 | 282.552632 | 50.9 | -1.000000e-01 |
| 2022-01-11 | 283.597368 | 51.0 | -2.220446e-16 |
| 2022-01-12 | 284.642105 | 51.1 | 1.000000e-01 |
| 2022-01-13 | 285.686842 | 51.2 | 2.000000e-01 |
| 2022-01-14 | 286.731579 | 51.3 | 3.000000e-01 |
| 2022-01-15 | 287.776316 | 51.4 | 4.000000e-01 |
| 2022-01-16 | 288.821053 | 51.5 | 5.000000e-01 |
| 2022-01-17 | 289.865789 | 51.6 | 6.000000e-01 |
| 2022-01-18 | 290.910526 | 51.7 | 7.000000e-01 |
| 2022-01-19 | 291.955263 | 51.8 | 8.000000e-01 |
| 2022-01-20 | 293.000000 | 51.9 | 9.000000e-01 |
Create an earthkit object from the pandas object, and use earthkit methods
[3]:
ek_pandas = ekd.from_object(t2m_df)
# iterating behaves as a pandas DF
for thing in ek_pandas[:2]:
print(thing)
# Describe representation is a pandas dataframe
ek_pandas.describe()
t2m
latitude
[3]:
| t2m | latitude | longitude | |
|---|---|---|---|
| date | |||
| 2022-01-01 | 273.150000 | 50.0 | -1.000000e+00 |
| 2022-01-02 | 274.194737 | 50.1 | -9.000000e-01 |
| 2022-01-03 | 275.239474 | 50.2 | -8.000000e-01 |
| 2022-01-04 | 276.284211 | 50.3 | -7.000000e-01 |
| 2022-01-05 | 277.328947 | 50.4 | -6.000000e-01 |
| 2022-01-06 | 278.373684 | 50.5 | -5.000000e-01 |
| 2022-01-07 | 279.418421 | 50.6 | -4.000000e-01 |
| 2022-01-08 | 280.463158 | 50.7 | -3.000000e-01 |
| 2022-01-09 | 281.507895 | 50.8 | -2.000000e-01 |
| 2022-01-10 | 282.552632 | 50.9 | -1.000000e-01 |
| 2022-01-11 | 283.597368 | 51.0 | -2.220446e-16 |
| 2022-01-12 | 284.642105 | 51.1 | 1.000000e-01 |
| 2022-01-13 | 285.686842 | 51.2 | 2.000000e-01 |
| 2022-01-14 | 286.731579 | 51.3 | 3.000000e-01 |
| 2022-01-15 | 287.776316 | 51.4 | 4.000000e-01 |
| 2022-01-16 | 288.821053 | 51.5 | 5.000000e-01 |
| 2022-01-17 | 289.865789 | 51.6 | 6.000000e-01 |
| 2022-01-18 | 290.910526 | 51.7 | 7.000000e-01 |
| 2022-01-19 | 291.955263 | 51.8 | 8.000000e-01 |
| 2022-01-20 | 293.000000 | 51.9 | 9.000000e-01 |
[ ]: