Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Esta lección introduce los arreglos (arrays).

1. ¿Por qué manipular arreglos en los datos geocientíficos?

  • Complejidad de los datos: los datos geocientíficos suelen ser multidimensionales (por ejemplo, mallas 3D para datos sísmicos, modelos climáticos 4D con el tiempo). Los arreglos ofrecen formas eficientes de almacenar y manipular esos datos.
  • Transformación de los datos: el preprocesamiento de datos geocientíficos suele involucrar transformaciones como normalización, agregación, remuestreo y extracción de características, y todas requieren manipular arreglos.
  • Rendimiento: los arreglos proveen estructuras de datos optimizadas que hacen las operaciones más rápidas y más eficientes en memoria. Esto importa al trabajar con conjuntos de datos grandes (por ejemplo, imágenes satelitales, modelos climáticos).
  • Entrada de los modelos: los modelos de machine learning (aprendizaje automático), en especial los de aprendizaje profundo, suelen requerir entradas estructuradas en forma de arreglos o tensores.

Panorama de las bibliotecas de arreglos

  • Arreglos de NumPy: la base del cómputo numérico en Python. Ofrece operaciones básicas sobre arreglos, funciones matemáticas eficientes y herramientas de indexado y rebanado (slicing).
  • Xarray: diseñada para datos multidimensionales etiquetados. Xarray es ideal para datos geocientíficos que llevan etiquetas en cada dimensión (por ejemplo, tiempo, latitud, longitud).
  • Tensores de PyTorch: una biblioteca orientada sobre todo al aprendizaje profundo. Permite operaciones sobre tensores aceleradas por GPU y es útil cuando los problemas geocientíficos se cruzan con tareas de machine learning.

En todos los niveles practicaremos con

  • el paquete de Python Matplotlib, que provee funcionalidades para la graficación básica.

🖥️ Diapositivas — Sesión 06 (lun 12 oct)

2. Arreglos de NumPy

Las secuencias de datos pueden almacenarse en listas de Python. Las listas son muy flexibles; se pueden anexar datos de tipo idéntico a una lista sobre la marcha.

Los arreglos de NumPy son objetos multidimensionales de tipos de datos específicos (flotantes, cadenas, enteros, ...). ¡Los arreglos de NumPy deben declararse primero! Asignar la memoria de los datos por adelantado puede ahorrar tiempo de cómputo. Los arreglos de NumPy admiten operaciones aritméticas. Existen numerosos tutoriales de apoyo, como el de Earth Data Science.

# import module
import numpy as np

# define an array of dimension one from.
#this is a list of floats:
a=[0.7 , 0.75, 1.85]
# convert a list to a numpy array
a_nparray = np.array(a)

2.1 Arreglos 1D en NumPy

Los arreglos 1D también se llaman vectores. La función de NumPy arange crea valores regularmente espaciados dentro de un rango específico. Es similar a la función de Python range.

# create 1D arrays
N=100
x_int = np.arange(N)# this will make a vector of int from 0 to N-1
print(x_int)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
 96 97 98 99]
N = 100 # number of points

# linearly spaced vectors
x_lat = np.linspace(39,50,N)# this will make a vector of floats from min to max values evenly spaced
x_lon = np.linspace(-128,-125,N)# same for longitude
print(x_lat)
print(x_lon)



# logspaced vectors
# 10^(-1) -> 10^(1) => 0.1 - 1
x_tl = np.logspace(-1,1,N)

print(x_tl)
[39.         39.11111111 39.22222222 39.33333333 39.44444444 39.55555556
 39.66666667 39.77777778 39.88888889 40.         40.11111111 40.22222222
 40.33333333 40.44444444 40.55555556 40.66666667 40.77777778 40.88888889
 41.         41.11111111 41.22222222 41.33333333 41.44444444 41.55555556
 41.66666667 41.77777778 41.88888889 42.         42.11111111 42.22222222
 42.33333333 42.44444444 42.55555556 42.66666667 42.77777778 42.88888889
 43.         43.11111111 43.22222222 43.33333333 43.44444444 43.55555556
 43.66666667 43.77777778 43.88888889 44.         44.11111111 44.22222222
 44.33333333 44.44444444 44.55555556 44.66666667 44.77777778 44.88888889
 45.         45.11111111 45.22222222 45.33333333 45.44444444 45.55555556
 45.66666667 45.77777778 45.88888889 46.         46.11111111 46.22222222
 46.33333333 46.44444444 46.55555556 46.66666667 46.77777778 46.88888889
 47.         47.11111111 47.22222222 47.33333333 47.44444444 47.55555556
 47.66666667 47.77777778 47.88888889 48.         48.11111111 48.22222222
 48.33333333 48.44444444 48.55555556 48.66666667 48.77777778 48.88888889
 49.         49.11111111 49.22222222 49.33333333 49.44444444 49.55555556
 49.66666667 49.77777778 49.88888889 50.        ]
[-128.         -127.96969697 -127.93939394 -127.90909091 -127.87878788
 -127.84848485 -127.81818182 -127.78787879 -127.75757576 -127.72727273
 -127.6969697  -127.66666667 -127.63636364 -127.60606061 -127.57575758
 -127.54545455 -127.51515152 -127.48484848 -127.45454545 -127.42424242
 -127.39393939 -127.36363636 -127.33333333 -127.3030303  -127.27272727
 -127.24242424 -127.21212121 -127.18181818 -127.15151515 -127.12121212
 -127.09090909 -127.06060606 -127.03030303 -127.         -126.96969697
 -126.93939394 -126.90909091 -126.87878788 -126.84848485 -126.81818182
 -126.78787879 -126.75757576 -126.72727273 -126.6969697  -126.66666667
 -126.63636364 -126.60606061 -126.57575758 -126.54545455 -126.51515152
 -126.48484848 -126.45454545 -126.42424242 -126.39393939 -126.36363636
 -126.33333333 -126.3030303  -126.27272727 -126.24242424 -126.21212121
 -126.18181818 -126.15151515 -126.12121212 -126.09090909 -126.06060606
 -126.03030303 -126.         -125.96969697 -125.93939394 -125.90909091
 -125.87878788 -125.84848485 -125.81818182 -125.78787879 -125.75757576
 -125.72727273 -125.6969697  -125.66666667 -125.63636364 -125.60606061
 -125.57575758 -125.54545455 -125.51515152 -125.48484848 -125.45454545
 -125.42424242 -125.39393939 -125.36363636 -125.33333333 -125.3030303
 -125.27272727 -125.24242424 -125.21212121 -125.18181818 -125.15151515
 -125.12121212 -125.09090909 -125.06060606 -125.03030303 -125.        ]
[ 0.1         0.10476158  0.10974988  0.1149757   0.12045035  0.12618569
  0.13219411  0.13848864  0.14508288  0.15199111  0.15922828  0.16681005
  0.17475284  0.18307383  0.19179103  0.2009233   0.21049041  0.22051307
  0.23101297  0.24201283  0.25353645  0.26560878  0.27825594  0.29150531
  0.30538555  0.31992671  0.33516027  0.35111917  0.36783798  0.38535286
  0.40370173  0.42292429  0.44306215  0.46415888  0.48626016  0.5094138
  0.53366992  0.55908102  0.58570208  0.61359073  0.64280731  0.67341507
  0.70548023  0.7390722   0.77426368  0.81113083  0.84975344  0.89021509
  0.93260335  0.97700996  1.02353102  1.07226722  1.12332403  1.17681195
  1.23284674  1.29154967  1.35304777  1.41747416  1.48496826  1.55567614
  1.62975083  1.70735265  1.78864953  1.87381742  1.96304065  2.05651231
  2.15443469  2.25701972  2.36448941  2.47707636  2.59502421  2.71858824
  2.84803587  2.98364724  3.12571585  3.27454916  3.43046929  3.59381366
  3.76493581  3.94420606  4.1320124   4.32876128  4.53487851  4.75081016
  4.97702356  5.21400829  5.46227722  5.72236766  5.9948425   6.28029144
  6.57933225  6.8926121   7.22080902  7.56463328  7.92482898  8.30217568
  8.69749003  9.11162756  9.54548457 10.        ]

# time vectors
x_t = np.linspace(0,100,N+1)
dt=x_t[1]
print(dt)
1.0

Indexado de arreglos de NumPy

Se accede a los elementos individuales con corchetes []. El primer elemento se indexa con 0; el último, con -1.

arr = np.arange(5)

# Access the first element (index 0)
element = arr[0]
print(element)  # Output: 0

# Access the fourth element (index 3)
element = arr[3]
print(element)  # Output: 3

# Access the last element (index 4)
element = arr[4]
print(element)  # Output: 4

# Access the last element with negative indexing
element = arr[-1]
print(element)  # Output: 4
0
3
4
4

Rebanado (slicing)

Podemos rebanar arreglos con la sintaxis básica start:stop:step:

x=np.arange(10)
print(x)
[0 1 2 3 4 5 6 7 8 9]
# slice with a step: every second element from index 2 up to (but not including) index 10
x1 = x[2:10:2]
print(x1)
[2 4 6 8]

Cree un arreglo que seleccione uno de cada dos elementos

# answer here

Cree un arreglo con los índices en orden invertido:

# answer here
# note: x[10:0:-1] counts down from index 9 but stops before index 0, so the first element is dropped;
# x[::-1] reverses the full array
x[10:0:-1]
array([9, 8, 7, 6, 5, 4, 3, 2, 1])

2.2 Graficación con Matplotlib

Algunos consejos de Software-Carpentry

  • Asegúrese de que el texto sea lo bastante grande para leerse. Use el parámetro fontsize en xlabel, ylabel, title y legend, y tick_params con labelsize para aumentar el tamaño de los números en los ejes.

  • Del mismo modo, haga que los elementos del gráfico sean fáciles de ver. Use s para aumentar el tamaño de los marcadores en los diagramas de dispersión y linewidth para aumentar el grosor de las líneas.

  • Usar el color (y nada más) para distinguir los elementos de un gráfico lo volverá ilegible para cualquier persona con daltonismo, o para quien tenga una impresora de oficina en blanco y negro. Para las líneas, el parámetro linestyle permite usar distintos tipos de línea. Para los diagramas de dispersión, marker permite cambiar la forma de los puntos. Si tiene dudas sobre sus colores, puede usar Coblis o Color Oracle para simular cómo se verían sus gráficos para las personas con daltonismo.

# make the plots appear in the notebook
%matplotlib inline 
import matplotlib.pyplot as plt
# import matplotlib.pylab as pylab

# set default parameters
params = {'legend.fontsize': 14, \
          'xtick.labelsize':14, \
          'ytick.labelsize':14, \
          'font.size':14}
plt.rcParams.update(params)
fig, (ax1,ax2) = plt.subplots(1,2, figsize=(10,5))  # 
ax1.plot(x_t,'.') # plot the vector x_t
ax2.plot(x_tl,'r.');ax2.set_yscale('log') # plot the vector x_tl in red and log scale
ax2.set_xlabel('Index of vector') # set the x-axis label
ax1.set_xlabel('Index of vector') # set the x-axis label
ax2.set_ylabel('Time (s)') # set the y-axis label
ax1.set_ylabel('Time (s)') # set the y-axis label
ax1.set_title('My first plot!')
ax2.set_title('My second plot!') ; 
plt.tight_layout()
ax1.grid(True)
ax2.grid(True)
<Figure size 1000x500 with 2 Axes>

2.3 Arreglos aleatorios

Los arreglos sintéticos extraídos de distribuciones estadísticas son útiles para probar código y para construir intuición sobre los datos reales. El idioma moderno de NumPy es crear un generador aleatorio una sola vez con np.random.default_rng(seed) y muestrear desde él; la semilla hace los resultados reproducibles.

En lugar de ruido sin unidades, extraemos muestras que representan cantidades físicas:

  • Uniforme: desajustes de calibración de un sensor entre -1 y 1 (unidades arbitrarias).
  • Gaussiana: ruido de medición con media cero y desviación estándar 1.
  • Poisson: conteos diarios de sismos por encima de un umbral de magnitud en una región activa. Los procesos de conteo con tasa constante siguen una distribución de Poisson; aquí la tasa es de 4 eventos por día.
  • Magnitudes de Gutenberg-Richter: las magnitudes de los sismos siguen una ley de potencias; el número de eventos con magnitud igual o mayor que m decae como 10**(-b*m) con b cercano a 1. El paquete del curso mlgeo_synth provee un muestreador.

Funciones estadísticas en NumPy: https://numpy.org/doc/stable/reference/routines.statistics.html

import mlgeo_synth

rng = np.random.default_rng(42)

N=10000 # number of samples
# Uniform distribution: calibration offsets between -1 and 1
x1 = 2*rng.random(N) - 1
# Gaussian distribution: measurement noise, mean 0, standard deviation 1
x2 = rng.standard_normal(N)
# Poisson distribution: daily counts of M>=3 earthquakes, rate of 4 per day
rate = 4
daily_counts = rng.poisson(rate, N)
# Gutenberg-Richter law: earthquake magnitudes, b-value of 1
magnitudes = mlgeo_synth.gutenberg_richter_magnitudes(n=N, b=1.0, m_min=1.0, m_max=8.0, seed=42)
# raw sample series
fig1, (ax1,ax2,ax3,ax4) = plt.subplots(1,4, figsize=(15,5))
ax1.plot(x1);ax1.set_title('Uniform offsets')
ax2.plot(x2);ax2.set_title('Gaussian noise')
ax3.plot(daily_counts);ax3.set_title('Daily quake counts (Poisson)')
ax4.plot(magnitudes,'.');ax4.set_title('Magnitudes (Gutenberg-Richter)')
plt.tight_layout()

# histograms
fig2, (ax11,ax12,ax13,ax14) = plt.subplots(1,4, figsize=(15,5))
ax11.hist(x1,bins=100);ax11.set_title('Uniform offsets')
ax12.hist(x2,bins=100);ax12.set_title('Gaussian noise')
ax13.hist(daily_counts,bins=np.arange(-0.5, daily_counts.max()+1.5));ax13.set_title('Daily quake counts')
ax13.set_xlabel('events per day')
ax14.hist(magnitudes,bins=np.arange(1.0, 8.25, 0.25))
ax14.set_yscale('log')
ax14.set_xlim(1, 8)
ax14.set_title('Magnitudes')
ax14.set_xlabel('magnitude');ax14.set_ylabel('count')
plt.tight_layout()
<Figure size 1500x500 with 4 Axes>
<Figure size 1500x500 with 4 Axes>

El histograma de magnitudes usa un eje de conteos en escala logarítmica. Sobre ese eje, la distribución de Gutenberg-Richter es una línea recta con pendiente proporcional a -b. Esa línea recta es la comprobación de cordura de que el muestreador sigue la ley.

# numpy has built-in functions to calculate basic statistical properties of numpy arrays
print("mean of x1:", np.mean(x1), " std of x1:", np.std(x1))
print("mean of x2:", np.mean(x2), " std of x2:", np.std(x2))
print("mean daily earthquake count:", np.mean(daily_counts))
mean of x1: -0.005756804861331685  std of x1: 0.5764130181203542
mean of x2: 0.01404658670547432  std of x2: 1.0019904766577135
mean daily earthquake count: 4.0142

2.4 Arreglos 2D en NumPy

Ahora crearemos arreglos 2D aleatorios

N=1000 # number of samples
# Uniform distribution between -1 and 1
x1 = 2*rng.random((N,N)) - 1
# Gaussian distribution with a standard deviation of 1
x2 = rng.standard_normal((N,N))
# Power-law distribution, values between 0 and 1
a=2 # power of the distribution
x3 = rng.power(a, (N,N))
# Poisson distribution with a rate of 4
rate = 4
x4 = rng.poisson(rate, (N,N))

# Pick vmin/vmax to match each distribution so the colorbar reflects the data:
# uniform spans [-1, 1], Gaussian mostly [-3, 3], power law [0, 1], Poisson counts [0, ~12]
fig, (ax1,ax2,ax3,ax4) = plt.subplots(1,4, figsize=(26,4))
im1 = ax1.pcolor(x1, vmin=-1, vmax=1);ax1.set_title('Uniform');fig.colorbar(im1, ax=ax1)
im2 = ax2.pcolor(x2, vmin=-3, vmax=3);ax2.set_title('Gaussian');fig.colorbar(im2, ax=ax2)
im3 = ax3.pcolor(x3, vmin=0, vmax=1);ax3.set_title('Power law');fig.colorbar(im3, ax=ax3)
im4 = ax4.pcolor(x4, vmin=0, vmax=12);ax4.set_title('Poisson');fig.colorbar(im4, ax=ax4)
<Figure size 2600x400 with 8 Axes>
Bono

Aprenda a suavizar/difuminar estos arreglos 2D

# use scipy gaussian filtering to smooth the x2 array
from scipy.ndimage import gaussian_filter
x2_smooth = gaussian_filter(x2, sigma=5)
fig, (ax1,ax2) = plt.subplots(1,2, figsize=(12,5))  # 1 row, 2 columns
im1 = ax1.pcolor(x2, vmin=-3, vmax=3);ax1.set_title('Raw');fig.colorbar(im1, ax=ax1)
# smoothing shrinks the spread, so the smoothed field gets tighter color limits
im2 = ax2.pcolor(x2_smooth, vmin=-0.3, vmax=0.3);ax2.set_title('Smoothed (sigma=5)');fig.colorbar(im2, ax=ax2)
<Figure size 1200x500 with 4 Axes>
# check the distributions of both arrays before and after smoothing using histograms to compare
fig, (ax1,ax2) = plt.subplots(1,2, figsize=(10,5))  # 1 row, 2 co
ax1.hist(x2.flatten(),bins=100) # flatten the 2D array to 1D and plot the histogram
ax2.hist(x2_smooth.flatten(),bins=100);
<Figure size 1000x500 with 2 Axes>

2.5 Normas de arreglos

Norma L2L_2 de un arreglo XX:

X2=iNXi2||X||_2 = \sqrt{\sum_i^N X_i^2} En NumPy es la norma por defecto del módulo de álgebra lineal linalg: np.linalg.norm(X)

Podemos normalizar un arreglo, y nos fijaremos en qué dimensión del arreglo se normaliza.

# define random array: uniform distribution between -1 and 1
x1 = 2*rng.random(N) - 1
# calculate its norm
norm_x1 = np.linalg.norm(x1);print(norm_x1)
# normalize it
x1_norm = x1/norm_x1
# calculate its norm
norm_x1_norm = np.linalg.norm(x1_norm);print(norm_x1_norm)
18.589898293414333
1.0000000000000002

2.6 Medidas de distancia

Comparar datos a menudo significa calcular una distancia o disimilitud entre los dos datos. La similitud equivale a la proximidad entre dos datos.

Distancia euclidiana

Norma L2L_2 del residuo entre 2 vectores: la raíz cuadrada de la suma de las diferencias al cuadrado,

d=XY2=iN(XiYi)2d = ||X -Y||_2 = \sqrt{\sum_i^N \left(X_i - Y_i \right)^2}

En NumPy es la norma por defecto del módulo de álgebra lineal linalg: d=np.linalg.norm(X-Y)

Distancia de variación total

Es el equivalente en norma L1L_1 de la distancia euclidiana: d=np.linalg.norm(X-Y,ord=1)

Coeficiente de Pearson (también llamado coeficiente de correlación)

P(X,Y)=cov(X,Y)std(X)std(Y) P(X,Y) = \frac{cov(X,Y)}{std(X)std(Y)}

P(X,Y)=(Ximean(X))(Yimean(Y)(Ximean(X))2(Yimean(Y))2 P(X,Y) = \frac{ \sum{ (X_i-mean(X)) (Y_i-mean(Y)}}{\sqrt{\sum{ (X_i-mean(X))^2 } \sum{ (Y_i-mean(Y))^2 } }}

# compare 2 vectors:

x2 = rng.standard_normal(N)   # Gaussian distribution
x3 = rng.standard_normal(N)   # Gaussian distribution

# Euclidian distance
d2=np.linalg.norm(x3-x2)
# Total variation distance:
d1=np.linalg.norm(x3-x2,ord=1)
# Pearson coefficient
r = np.corrcoef(x2,x3)[0,1]

# check: the explicit square root of the sum of squared differences matches np.linalg.norm
dist = np.sqrt(np.sum((x3-x2)**2))

print("the three distances are:")
print(d2,d1,r,dist)

plt.plot(x2,x3,'o');plt.grid(True)
plt.xlabel('X2');plt.ylabel('X3')
the three distances are:
45.161318804989996 1137.8655493774831 0.006914382755631018 45.16131880498999
<Figure size 640x480 with 1 Axes>

3. Xarray

3.1 Fundamentos de Xarray

Este tutorial fue copiado y modificado de los tutoriales del paquete Xarray.

Los datos geocientíficos llegan con metadatos complejos que describen el significado y el contexto de los arreglos de datos. Xarray permite adjuntar metadatos a los arreglos de datos, lo que facilita llevar el registro de las variables, sus unidades, los sistemas de coordenadas y otros atributos importantes de los datos. Como los datos geocientíficos son típicamente multidimensionales, integrar dimensiones como el tiempo y las coordenadas espaciales permite manipular, transformar y realizar operaciones complejas sobre los arreglos de datos. En particular, simplifica las tareas de recorte en tiempo y espacio, y permite el remallado y la extracción de subconjuntos.

Xarray está bien integrado con el cómputo de alto rendimiento, como Dask, y con el almacenamiento: el de HPC mediante NetCDF y el de nube con Zarr.

Xarray fue diseñado para facilitar la manipulación de datos geocientíficos.

Los arreglos de Xarray son arreglos multidimensionales («tensores») que pueden tener varios atributos y dimensiones. La estructura central es el DataArray, el arreglo de N dimensiones análogo a una pandas.Series. La segunda es el Dataset, una base de datos de arreglos multidimensional en memoria. Es un contenedor tipo diccionario de DataArray, el equivalente del pandas.DataFrame.

Los arreglos de Xarray pueden leerse desde netCDF y desde Zarr.

Encontrará muchos tutoriales útiles del proyecto Xarray, como este.

Aquí está el libro-tutorial de Xarray, que lo introduce desde las estructuras de datos hasta la visualización. En general, Xarray envuelve NumPy y pandas y se comporta de manera similar a pandas. La transición a Xarray debería ser suave si ya conoce NumPy y pandas.

import numpy as np
import xarray as xr
%matplotlib inline
%config InlineBackend.figure_format='retina'
ds = xr.tutorial.load_dataset("air_temperature")
ds
Loading...

¿Cuáles son las claves/atributos del conjunto de datos?

# what are the key attributes of ds
print(ds.attrs)
{'Conventions': 'COARDS', 'title': '4x daily NMC reanalysis (1948)', 'description': 'Data is from NMC initialized reanalysis\n(4x/day).  These are the 0.9950 sigma level values.', 'platform': 'Model', 'references': 'http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html'}

Encuentre dos maneras de imprimir los valores del atributo air

ds["air"]
Loading...
ds.air
Loading...
with xr.set_options(display_style="html"):
    display(ds)
Loading...

El DataArray tiene dimensiones con nombre:

ds.air.dims
('time', 'lat', 'lon')

y las coordenadas se guardan en .coord:

ds.air.coords
Coordinates: * time (time) datetime64[ns] 23kB 2013-01-01 ... 2014-12-31T18:00:00 * lat (lat) float32 100B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0 * lon (lon) float32 212B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
ds.air.attrs["long_name"]
'4xDaily Air temperature at sigma level 995'

Agregue atributos nuevos

# assign your own attributes!
ds.air.attrs["who_is_awesome"] = "xarray"
ds.air.attrs
{'long_name': '4xDaily Air temperature at sigma level 995', 'units': 'degK', 'precision': np.int16(2), 'GRIB_id': np.int16(11), 'GRIB_name': 'TMP', 'var_desc': 'Air temperature', 'dataset': 'NMC Reanalysis', 'level_desc': 'Surface', 'statistic': 'Individual Obs', 'parent_stat': 'Other', 'actual_range': array([185.16, 322.1 ], dtype=float32), 'who_is_awesome': 'xarray'}

Los datos subyacentes son un arreglo de NumPy

print(type(ds.air.data))
print(ds.air.data)
<class 'numpy.ndarray'>
[[[241.2  242.5  243.5  ... 232.8  235.5  238.6 ]
  [243.8  244.5  244.7  ... 232.8  235.3  239.3 ]
  [250.   249.8  248.89 ... 233.2  236.39 241.7 ]
  ...
  [296.6  296.2  296.4  ... 295.4  295.1  294.7 ]
  [295.9  296.2  296.79 ... 295.9  295.9  295.2 ]
  [296.29 296.79 297.1  ... 296.9  296.79 296.6 ]]

 [[242.1  242.7  243.1  ... 232.   233.6  235.8 ]
  [243.6  244.1  244.2  ... 231.   232.5  235.7 ]
  [253.2  252.89 252.1  ... 230.8  233.39 238.5 ]
  ...
  [296.4  295.9  296.2  ... 295.4  295.1  294.79]
  [296.2  296.7  296.79 ... 295.6  295.5  295.1 ]
  [296.29 297.2  297.4  ... 296.4  296.4  296.6 ]]

 [[242.3  242.2  242.3  ... 234.3  236.1  238.7 ]
  [244.6  244.39 244.   ... 230.3  232.   235.7 ]
  [256.2  255.5  254.2  ... 231.2  233.2  238.2 ]
  ...
  [295.6  295.4  295.4  ... 296.29 295.29 295.  ]
  [296.2  296.5  296.29 ... 296.4  296.   295.6 ]
  [296.4  296.29 296.4  ... 297.   297.   296.79]]

 ...

 [[243.49 242.99 242.09 ... 244.19 244.49 244.89]
  [249.09 248.99 248.59 ... 240.59 241.29 242.69]
  [262.69 262.19 261.69 ... 239.39 241.69 245.19]
  ...
  [294.79 295.29 297.49 ... 295.49 295.39 294.69]
  [296.79 297.89 298.29 ... 295.49 295.49 294.79]
  [298.19 299.19 298.79 ... 296.09 295.79 295.79]]

 [[245.79 244.79 243.49 ... 243.29 243.99 244.79]
  [249.89 249.29 248.49 ... 241.29 242.49 244.29]
  [262.39 261.79 261.29 ... 240.49 243.09 246.89]
  ...
  [293.69 293.89 295.39 ... 295.09 294.69 294.29]
  [296.29 297.19 297.59 ... 295.29 295.09 294.39]
  [297.79 298.39 298.49 ... 295.69 295.49 295.19]]

 [[245.09 244.29 243.29 ... 241.69 241.49 241.79]
  [249.89 249.29 248.39 ... 239.59 240.29 241.69]
  [262.99 262.19 261.39 ... 239.89 242.59 246.29]
  ...
  [293.79 293.69 295.09 ... 295.29 295.09 294.69]
  [296.09 296.89 297.19 ... 295.69 295.69 295.19]
  [297.69 298.09 298.09 ... 296.49 296.19 295.69]]]

3.2 Extracción de datos

Cómo extraer datos:

  • indexado por etiquetas con .sel

  • indexado por posición con .isel

ds.air.isel(time=1).plot(x="lon")
<Figure size 640x480 with 2 Axes>

Notará que la temperatura del aire está en kelvin. Podemos convertirla a grados Celsius restando 273.15 y cambiando el atributo units.

Observe la copia: ds2 = ds solo crearía un segundo nombre (un alias) para el mismo conjunto de datos en memoria, de modo que modificar ds2 modificaría silenciosamente también ds; ds.copy(deep=True) hace una copia independiente.

ds2 = ds.copy(deep=True)
ds2['air'] = ds2['air'] - 273.15
ds2['air'].attrs['units'] = 'degC'
ds2.air.isel(time=1).plot(x="lon")
<Figure size 640x480 with 2 Axes>

También queremos mostrar las longitudes en dirección oeste restando 360°.

ds2.coords["lon"]=ds2.coords["lon"]-360
ds2.air.isel(time=1).plot(x="lon")
<Figure size 640x480 with 2 Axes>

Muestre la temperatura media

ds2.air.mean("time").plot()
<Figure size 640x480 with 2 Axes>
ds2.sel(time="2013-05")
Loading...
# demonstrate slicing
ds.sel(time=slice("2013-05", "2013-07"))
Loading...
# "nearest indexing at multiple points" (ds2 has the shifted longitudes)
ds2.sel(lon=[240.125-360, 234-360], lat=[40.3, 50.3], method="nearest")
Loading...

3.3 Cómputo de alto nivel

  • groupby: agrupar los datos en grupos y reducir

  • resample: un groupby especializado para ejes de tiempo. Submuestrea o sobremuestrea sus datos.

  • rolling: opera sobre ventanas móviles de sus datos, por ejemplo una media móvil

  • coarsen: submuestrea sus datos

  • weighted: pondera sus datos antes de reducir

# seasonal groups
ds.groupby("time.season")
<DatasetGroupBy, grouped over 1 grouper(s), 4 groups in total: 'season': UniqueGrouper('season'), 4/4 groups with labels 'DJF', 'JJA', 'MAM', 'SON'>
# make a seasonal mean
seasonal_mean = ds.groupby("time.season").mean()
seasonal_mean = seasonal_mean.sel(season=["DJF", "MAM", "JJA", "SON"])
seasonal_mean
Loading...
# resample to monthly frequency ("ME" = month end)
ds.resample(time="ME").mean()
Loading...
# facet the seasonal_mean
seasonal_mean.air.plot(col="season")
<xarray.plot.facetgrid.FacetGrid at 0x3a9d03770>
<Figure size 1300x300 with 5 Axes>

Podemos guardar los arreglos de Xarray en archivos NetCDF y Zarr

# write to netCDF
%timeit ds.to_netcdf("my-example-dataset.nc")
!ls -lh my-example-dataset.nc
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/IPython/core/magics/execution.py:172: SerializationWarning: saving variable air with floating point data as an integer dtype without any _FillValue to use for NaNs
  timing = self.inner(it, self.timer)
16.6 ms ± 370 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
-rw-r--r--@ 1 marinedenolle  staff   7.4M Aug 12 09:29 my-example-dataset.nc

%timeit ds.to_zarr(store="./my-example-dataset.zarr",mode="w")
!du -sh ./my-example-dataset.zarr
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
<magic-timeit>:1: SerializationWarning: saving variable None with floating point data as an integer dtype without any _FillValue to use for NaNs
/Users/marinedenolle/Dropbox/CLASSES/ESS490/curriculum-book/.pixi/envs/default/lib/python3.12/site-packages/zarr/api/asynchronous.py:246: ZarrUserWarning: Consolidated metadata is currently not part in the Zarr format 3 specification. It may not be supported by other zarr implementations and may change in the future.
  warnings.warn(
76.1 ms ± 9.09 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
4.8M	./my-example-dataset.zarr

3.4 Ejercicio del estudiante

  1. Recupere los datos de temperatura del aire:

Use el conjunto de datos de temperatura del aire y extraiga la serie de tiempo en la latitud y la longitud de Seattle.

  1. Grafique la serie de tiempo:

Grafique la serie de tiempo de la temperatura del aire con matplotlib.

  1. Ajuste una función seno:

Ajuste una función seno a la serie de tiempo con scipy.optimize.curve_fit.

# Latitude of Seattle
lat_seattle = 47.65

# Longitude of Seattle (the dataset stores longitude in degrees East, 0-360)
lon_seattle = 360 - 122.3
# extract the air temperature data at these latitude and longitude
# extract the time series, print its data type, and convert it to numerical values
# plot the data with appropriate labels and legends
# import the curve_fit function from scipy.optimize
# define a function to take the time series data and fit it to a sinusoidal function
#

4. Tensores de PyTorch

Este material fue extraído de los materiales del paquete PyTorch y de Dive into Deep Learning

La clase tensor de PyTorch es similar a un ndarray de NumPy, con las características adicionales de que: 1) tiene diferenciación automática y 2) corre en CPU y en GPU.

import torch

Podemos definir un tensor básico, que por defecto será un arreglo 1D (un vector) y correrá en la CPU

x = torch.arange(12, dtype=torch.float32)
x
tensor([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11.])

Cada valor se denomina element (elemento). Podemos extraer la longitud del vector con el método numel() (un método se aplica con ()), y su atributo de forma se obtiene aplicando shape

x.numel()
12
x.shape
torch.Size([12])

Podemos cambiar la forma de un tensor e intercambiar sus dimensiones

x.reshape(12,1).shape
torch.Size([12, 1])
x2=x.reshape(3,4)
x2.shape
torch.Size([3, 4])

Podemos crear un tensor aleatorio

x3=torch.randn(3, 4)

Podemos aplicar operaciones elemento a elemento sobre el tensor simplemente como métodos. Aquí un ejemplo aplicando la función exp a todos los elementos del tensor aleatorio x3.

x3.exp()
tensor([[1.6586, 0.4050, 1.1699, 0.9345], [0.1793, 0.2056, 0.1454, 2.3366], [0.2352, 3.6386, 1.2173, 1.4313]])

Podemos manipular 2 arreglos de la misma forma

x = torch.tensor([1.0, 2, 4, 8])
y = torch.tensor([2, 2, 2, 2])
x + y, x - y, x * y, x / y, x ** y
(tensor([ 3., 4., 6., 10.]), tensor([-1., 0., 2., 6.]), tensor([ 2., 4., 8., 16.]), tensor([0.5000, 1.0000, 2.0000, 4.0000]), tensor([ 1., 4., 16., 64.]))

Podemos normalizar el tensor con su norma L2. Inténtelo abajo

x = x / torch.linalg.norm(x)
x
tensor([0.1085, 0.2169, 0.4339, 0.8677])

Podemos convertir un tensor de PyTorch en un arreglo de NumPy

a=x.numpy()
print(type(a))
print(type(x))
<class 'numpy.ndarray'>
<class 'torch.Tensor'>

Los tensores viven en un device (dispositivo): la CPU, una GPU NVIDIA (cuda) o la GPU de los chips Apple Silicon (mps). El código agnóstico al dispositivo detecta el mejor acelerador disponible una sola vez y lo usa en todas partes. En una laptop con Apple Silicon esto elige mps; en una máquina con tarjeta NVIDIA elige cuda; en cualquier otro caso recurre a la CPU.

device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
device = torch.device(device)
print(device)
mps

Abajo vamos a realizar una regresión para escribir una función seno como función

import torch
import math


dtype = torch.float
# reuse the device detected above (cuda, mps, or cpu)
print("running on", device)

# Create random input and output data
x = torch.linspace(-math.pi, math.pi, 2000, device=device, dtype=dtype)
y = torch.sin(x)

# Randomly initialize weights
a = torch.randn((), device=device, dtype=dtype)
b = torch.randn((), device=device, dtype=dtype)
c = torch.randn((), device=device, dtype=dtype)
d = torch.randn((), device=device, dtype=dtype)

learning_rate = 1e-6
for t in range(2000):
    # Forward pass: compute predicted y
    y_pred = a + b * x + c * x ** 2 + d * x ** 3

    # Compute and print loss
    loss = (y_pred - y).pow(2).sum().item()
    if t % 100 == 99:
        print(t, loss)

    # Backprop to compute gradients of a, b, c, d with respect to loss
    grad_y_pred = 2.0 * (y_pred - y)
    grad_a = grad_y_pred.sum()
    grad_b = (grad_y_pred * x).sum()
    grad_c = (grad_y_pred * x ** 2).sum()
    grad_d = (grad_y_pred * x ** 3).sum()

    # Update weights using gradient descent
    a -= learning_rate * grad_a
    b -= learning_rate * grad_b
    c -= learning_rate * grad_c
    d -= learning_rate * grad_d


print(f'Result: y = {a.item()} + {b.item()} x + {c.item()} x^2 + {d.item()} x^3')
running on mps
99 1107.703857421875
199 784.4378051757812
299 556.3580932617188
399 395.4071044921875
499 281.8077392578125
599 201.61524963378906
699 144.9972686767578
799 105.01736450195312
899 76.782470703125
999 56.839561462402344
1099 42.751773834228516
1199 32.798973083496094
1299 25.766761779785156
1399 20.797576904296875
1499 17.285865783691406
1599 14.803932189941406
1699 13.049661636352539
1799 11.809622764587402
1899 10.933013916015625
1999 10.313281059265137
Result: y = -0.040712129324674606 + 0.8527621030807495 x + 0.0070235212333500385 x^2 + -0.09276445209980011 x^3

5. Comparación de NumPy, Xarray y PyTorch

Característica / caso de usoNumPyXarrayPyTorch
Manipulación básica de arreglosExcelenteBuenaBuena
Dimensiones etiquetadasLimitadaExcelenteLimitada
Soporte de datos multidimensionalesExcelenteExcelenteExcelente
Integración con aprendizaje profundoLimitadaLimitadaExcelente
Aceleración por GPUNingunaNingunaExcelente
Datos geocientíficos (clima, etc.)Posible pero requiere esfuerzoExcelentePosible

Elegir la herramienta correcta para la tarea

  • NumPy: la mejor para operaciones numéricas básicas y manipulación estándar de arreglos.
  • Xarray: ideal para conjuntos de datos geocientíficos multidimensionales etiquetados, en particular en modelación climática, percepción remota y datos espaciales.
  • PyTorch: la mejor al aplicar modelos de machine learning o de aprendizaje profundo a datos geocientíficos, sobre todo con conjuntos de datos grandes y cuando se requiere aceleración por GPU.

Conversiones entre arreglos

Tarea:

  • Convierta el arreglo de Xarray de temperatura del aire en un arreglo 3D de NumPy y en uno 3D de PyTorch
  • Imprima sistemáticamente las dimensiones