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