Xarray

Pemrograman Paralel dengan Dask di Python

James Fulton

Climate Informatics Researcher

Xarray - seperti pandas dalam lebih banyak dimensi

 

pandas
  • Menerapkan label indeks pada data tabular

 

Xarray
  • Menerapkan label indeks pada array berdimensi tinggi
Pemrograman Paralel dengan Dask di Python

DataFrame

Sebuah DataFrame yang terdiri dari empat kolom.

Pemrograman Paralel dengan Dask di Python

DataSet

Sebuah DataSet yang terdiri dari tiga DataArray

Pemrograman Paralel dengan Dask di Python

Memuat DataSet dari Zarr

import xarray as xr
ds = xr.open_zarr("data/era_eu.zarr")


print(ds)
<xarray.Dataset>
Dimensions:  (lat: 30, lon: 45, time: 504)
Coordinates:
  * lat      (lat) float64 35.5 36.5 37.5 38.5 39.5 ... 60.5 61.5 62.5 63.5 64.5
  * lon      (lon) float64 -14.5 -13.5 -12.5 -11.5 -10.5 ... 26.5 27.5 28.5 29.5
  * time     (time) datetime64[ns] 1979-05-31 1979-06-30 ... 2021-04-30
Data variables:
    precip   (time, lat, lon) float32 dask.array<chunksize=(12, 15, 15), ... >
    temp     (time, lat, lon) float32 dask.array<chunksize=(12, 15, 15), ... >
Pemrograman Paralel dengan Dask di Python

DataFrame vs. DataSet

pandas DataFrame
# Pilih tanggal tertentu
df.loc['2020-01-01']

# Pilih berdasarkan nomor indeks
df.iloc[0]

# Pilih kolom
df['column1']
Dask DataSet
# Pilih tanggal tertentu
ds.sel(time='2020-01-01')

# Pilih berdasarkan nomor indeks
ds.isel(time=0)

# Pilih variabel
ds['variable1']
Pemrograman Paralel dengan Dask di Python

DataFrame vs. DataSet

pandas DataFrame
# Lakukan operasi matematis
df.mean()




# Groupby dan mean df.groupby(df['time'].dt.year).mean()
# Rolling mean rolling_mean = df.rolling(5).mean()
Dask DataSet
# Lakukan operasi matematis
ds.mean()
ds.mean(dim='dim1')
ds.mean(dim=('dim1', 'dim2'))


# Groupby dan mean ds.groupby(ds['time'].dt.year).mean()
# Rolling mean rolling_mean = ds.rolling(dim1=5).mean()
rolling_mean.compute()
Pemrograman Paralel dengan Dask di Python

Plotting

ds['variable'].plot()
  • Membuat line plot jika 1D
  • Membuat heatmap jika 2D
  • Membuat histogram jika 3D+

Contoh Contoh line plot menampilkan suhu di satu lokasi di Finlandia utara selama beberapa tahun sekitar Great Cold Outbreak.

Pemrograman Paralel dengan Dask di Python

Plotting

ds['variable'].plot()
  • Membuat line plot jika 1D
  • Membuat heatmap jika 2D
  • Membuat histogram jika 3D+

Contoh Contoh heatmap menampilkan suhu rata-rata di seluruh Eropa pada bulan Januari.

Pemrograman Paralel dengan Dask di Python

Plotting

ds['variable'].plot()
  • Membuat line plot jika 1D
  • Membuat heatmap jika 2D
  • Membuat histogram jika 3D+

Contoh Contoh histogram menampilkan distribusi suhu yang diukur di semua lokasi di Eropa.

Pemrograman Paralel dengan Dask di Python

Ayo berlatih!

Pemrograman Paralel dengan Dask di Python

Preparing Video For Download...