Interpolating and integrating FPI distribution functions#

mmspy provides particle-related computations in the mmspy.compute.particle module. Here, we demonstrate how a particle distribution function may be interpolated onto an N-dimensional regular grid (in linear or logarithmic spacing) and integrated for plasma moments. We do this specifically for the electron diffusion region reported in Burch et al (2016).

First import and pre-configure the package:

import mmspy as mms

mms.store.path = "./data.zarr/examples/fpi-distribution"

mms.query.start_time = "2015-10-16T13:06:55"
mms.query.stop_time = "2015-10-16T13:07:05"
mms.query.probe = "mms1"
mms.query.data_rate = "brst"
mms.query.data_level = "l2"

Event overview#

Let us quickly plot the event using L2 data. We load the magnetic field, FPI ion, and electron moments:

fgm = mms.load(instrument="fgm", data_type="None")
ion_moments = mms.load(instrument="fpi", data_type="dis-moms")
elc_moments = mms.load(instrument="fpi", data_type="des-moms")
26-Mar-20 03:58:49 [INFO] Query is set from 2015-10-16 13:06:55 to 2015-10-16 13:07:05.
26-Mar-20 03:58:50 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fgm/bfield/brst/l2/zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:50 [INFO] Synchronized remote file mms1_fgm_brst_l2_20151016130524_v4.18.1.cdf to local file zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:50 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fgm/bfield/brst/l2/zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:50 [INFO] Synchronized remote file mms1_fgm_brst_l2_20151016130904_v4.18.1.cdf to local file zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:50 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fgm/bfield/brst/l2/zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:50 [INFO] Synchronized remote file mms1_fgm_brst_l2_20151016133344_v4.18.1.cdf to local file zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:50 [INFO] Synchronized remote store mms1/fgm/brst/l2 to local store local/mms1/fgm/bfield/brst/l2.
26-Mar-20 03:58:51 [INFO] Query is set from 2015-10-16 13:06:55 to 2015-10-16 13:07:05.
26-Mar-20 03:58:51 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/dis-moms/brst/l2/zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:51 [INFO] Synchronized remote file mms1_fpi_brst_l2_dis-moms_20151016130524_v3.3.0.cdf to local file zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:52 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/dis-moms/brst/l2/zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:52 [INFO] Synchronized remote file mms1_fpi_brst_l2_dis-moms_20151016130904_v3.3.0.cdf to local file zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:52 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/dis-moms/brst/l2/zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:53 [INFO] Synchronized remote file mms1_fpi_brst_l2_dis-moms_20151016133344_v3.3.0.cdf to local file zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:53 [INFO] Synchronized remote store mms1/fpi/brst/l2/dis-moms to local store local/mms1/fpi/dis-moms/brst/l2.
26-Mar-20 03:58:53 [INFO] Query is set from 2015-10-16 13:06:55 to 2015-10-16 13:07:05.
26-Mar-20 03:58:54 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/des-moms/brst/l2/zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:54 [INFO] Synchronized remote file mms1_fpi_brst_l2_des-moms_20151016130524_v3.3.0.cdf to local file zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:54 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/des-moms/brst/l2/zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:55 [INFO] Synchronized remote file mms1_fpi_brst_l2_des-moms_20151016130904_v3.3.0.cdf to local file zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:55 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/des-moms/brst/l2/zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:55 [INFO] Synchronized remote file mms1_fpi_brst_l2_des-moms_20151016133344_v3.3.0.cdf to local file zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:55 [INFO] Synchronized remote store mms1/fpi/brst/l2/des-moms to local store local/mms1/fpi/des-moms/brst/l2.

and plot:

import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
import numpy as np

mms.configure_matplotlib()

fig, axes = plt.subplots(7, 1, figsize=(12, 14), sharex=True)

mms.plot.add_colorbar(ax := axes[0]).remove()
ax.plot(fgm.time, fgm.b_gse.sel(rank_1="x"), "-b")
ax.plot(fgm.time, fgm.b_gse.sel(rank_1="y"), "-g")
ax.plot(fgm.time, fgm.b_gse.sel(rank_1="z"), "-r")
ax.plot(fgm.time, fgm.b_gse.tensor.magnitude, "-k")
ax.set_ylabel(f"{fgm.b_gse.pint.units:latex}")

cax = mms.plot.add_colorbar(ax := axes[1])
im = ax.pcolormesh(
    ion_moments.time.expand_dims(energy_channel=ion_moments.energy_channel, axis=-1),
    ion_moments.energy,
    ion_moments.energyspectr_omni,
    cmap="jet",
    norm=LogNorm(1e2, 1e8),
)
cb = fig.colorbar(im, cax=cax)
cb.set_label(f"{ion_moments.energyspectr_omni.pint.units:latex}")
ax.set_yscale("log")
ax.set_ylim(ion_moments.energy.min().values, ion_moments.energy.max().values)
ax.set_ylabel(f"{ion_moments.energy.pint.units:latex}")

cax = mms.plot.add_colorbar(ax := axes[2])
im = ax.pcolormesh(
    elc_moments.time.expand_dims(energy_channel=elc_moments.energy_channel, axis=-1),
    elc_moments.energy,
    elc_moments.energyspectr_omni,
    cmap="jet",
    norm=LogNorm(1e3, 1e9),
)
cb = fig.colorbar(im, cax=cax)
cb.set_label(f"{elc_moments.energyspectr_omni.pint.units:latex}")
ax.set_yscale("log")
ax.set_ylim(elc_moments.energy.min().values, elc_moments.energy.max().values)
ax.set_ylabel(f"{elc_moments.energy.pint.units:latex}")

mms.plot.add_colorbar(ax := axes[3]).remove()
ax.plot(ion_moments.time, ion_moments.numberdensity, "-k")
ax.set_ylabel(f"{ion_moments.numberdensity.pint.units:latex}")

mms.plot.add_colorbar(ax := axes[4]).remove()
ax.plot(ion_moments.time, ion_moments.bulkv_gse.sel(rank_1="x"), "-b")
ax.plot(ion_moments.time, ion_moments.bulkv_gse.sel(rank_1="y"), "-g")
ax.plot(ion_moments.time, ion_moments.bulkv_gse.sel(rank_1="z"), "-r")
ax.set_ylabel(f"{ion_moments.bulkv_gse.pint.units:latex}")

mms.plot.add_colorbar(ax := axes[5]).remove()
ax.plot(elc_moments.time, elc_moments.bulkv_gse.sel(rank_1="x"), "-b")
ax.plot(elc_moments.time, elc_moments.bulkv_gse.sel(rank_1="y"), "-g")
ax.plot(elc_moments.time, elc_moments.bulkv_gse.sel(rank_1="z"), "-r")
ax.set_ylabel(f"{elc_moments.bulkv_gse.pint.units:latex}")

mms.plot.add_colorbar(ax := axes[6]).remove()
ax.plot(elc_moments.time, elc_moments.temppara, "-b")
ax.plot(elc_moments.time, elc_moments.tempperp, "-r")
ax.set_ylabel(f"{elc_moments.temppara.pint.units:latex}")

for i, ax in enumerate(axes):
    ax.axvline(np.datetime64("2015-10-16T13:07"), ls="--")

mms.plot.autoformat(axes)
fig.align_ylabels(axes)
plt.show()
26-Mar-20 03:58:56 [INFO] Using stylesheet /home/docs/checkouts/readthedocs.org/user_builds/mmspy/checkouts/stable/src/mmspy/data/mmspy.mplstyle
26-Mar-20 03:58:56 [WARN] /tmp/ipykernel_2327/128070278.py:17: UserWarning: The input coordinates to pcolormesh are interpreted as cell centers, but are not monotonically increasing or decreasing. This may lead to incorrectly calculated cell edges, in which case, please supply explicit cell edges to pcolormesh.
  im = ax.pcolormesh(

26-Mar-20 03:58:56 [WARN] /tmp/ipykernel_2327/128070278.py:31: UserWarning: The input coordinates to pcolormesh are interpreted as cell centers, but are not monotonically increasing or decreasing. This may lead to incorrectly calculated cell edges, in which case, please supply explicit cell edges to pcolormesh.
  im = ax.pcolormesh(

../_images/fpi-distribution_2_3.png

The EDR is indicated by the vertical dashed line.

Processing FPI distributions#

Load the spacecraft potential, ion, and electron distribution functions:

edp = mms.load(instrument="edp", data_type="scpot")
ion_distribution = mms.load(instrument="fpi", data_type="dis-dist")
elc_distribution = mms.load(instrument="fpi", data_type="des-dist")
26-Mar-20 03:58:57 [INFO] Query is set from 2015-10-16 13:06:55 to 2015-10-16 13:07:05.
26-Mar-20 03:58:58 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/edp/scpot/brst/l2/zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:58 [INFO] Synchronized remote file mms1_edp_brst_l2_scpot_20151016130524_v2.4.0.cdf to local file zarr_2015_10_16_13_05_24.
26-Mar-20 03:58:58 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/edp/scpot/brst/l2/zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:58 [INFO] Synchronized remote file mms1_edp_brst_l2_scpot_20151016130904_v2.4.0.cdf to local file zarr_2015_10_16_13_09_04.
26-Mar-20 03:58:59 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/edp/scpot/brst/l2/zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:59 [INFO] Synchronized remote file mms1_edp_brst_l2_scpot_20151016133344_v2.4.0.cdf to local file zarr_2015_10_16_13_33_44.
26-Mar-20 03:58:59 [INFO] Synchronized remote store mms1/edp/brst/l2/scpot to local store local/mms1/edp/scpot/brst/l2.
26-Mar-20 03:58:59 [INFO] Query is set from 2015-10-16 13:06:55 to 2015-10-16 13:07:05.
26-Mar-20 03:59:00 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/dis-dist/brst/l2/zarr_2015_10_16_13_05_24.
26-Mar-20 03:59:01 [INFO] Synchronized remote file mms1_fpi_brst_l2_dis-dist_20151016130524_v3.3.0.cdf to local file zarr_2015_10_16_13_05_24.
26-Mar-20 03:59:01 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/dis-dist/brst/l2/zarr_2015_10_16_13_09_04.
26-Mar-20 03:59:01 [INFO] Synchronized remote file mms1_fpi_brst_l2_dis-dist_20151016130904_v3.3.0.cdf to local file zarr_2015_10_16_13_09_04.
26-Mar-20 03:59:02 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/dis-dist/brst/l2/zarr_2015_10_16_13_33_44.
26-Mar-20 03:59:02 [INFO] Synchronized remote file mms1_fpi_brst_l2_dis-dist_20151016133344_v3.3.0.cdf to local file zarr_2015_10_16_13_33_44.
26-Mar-20 03:59:02 [INFO] Synchronized remote store mms1/fpi/brst/l2/dis-dist to local store local/mms1/fpi/dis-dist/brst/l2.
26-Mar-20 03:59:02 [INFO] Query is set from 2015-10-16 13:06:55 to 2015-10-16 13:07:05.
26-Mar-20 03:59:11 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/des-dist/brst/l2/zarr_2015_10_16_13_05_24.
26-Mar-20 03:59:12 [INFO] Synchronized remote file mms1_fpi_brst_l2_des-dist_20151016130524_v3.3.0.cdf to local file zarr_2015_10_16_13_05_24.
26-Mar-20 03:59:14 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/des-dist/brst/l2/zarr_2015_10_16_13_09_04.
26-Mar-20 03:59:14 [INFO] Synchronized remote file mms1_fpi_brst_l2_des-dist_20151016130904_v3.3.0.cdf to local file zarr_2015_10_16_13_09_04.
26-Mar-20 03:59:19 [INFO] Writing dataset to data.zarr/examples/fpi-distribution/local/mms1/fpi/des-dist/brst/l2/zarr_2015_10_16_13_33_44.
26-Mar-20 03:59:20 [INFO] Synchronized remote file mms1_fpi_brst_l2_des-dist_20151016133344_v3.3.0.cdf to local file zarr_2015_10_16_13_33_44.
26-Mar-20 03:59:20 [INFO] Synchronized remote store mms1/fpi/brst/l2/des-dist to local store local/mms1/fpi/des-dist/brst/l2.

Preprocessing#

A common preprocessing step suggested for FPI distributions (CMAD) is to subtract the spacecraft potential. This can be done quickly via the fpi accessor:

V_sc = edp.scpot
ion_distribution = ion_distribution.fpi.correct_for_spacecraft_potential(V_sc, average=True)
elc_distribution = elc_distribution.fpi.correct_for_spacecraft_potential(V_sc, average=True)

Note

V_sc is automatically resampled to the resolution of ion_distribution and elc_distribution. The average=True option also tells the function to perform a rolling average on the scale of V_sc’s resolution.

By default, the units of phase space density in the CDF files are 's3 cm-6', which can be as low as 1e-25-1e-30. Calculations at these values are not recommended. Thus, it is in general good to convert the distribution functions to some other units that are far from machine error, or to normalize the distributions with their minimum values before interpolation. Here, we do the former (also converting the data type to double precision in the process):

ion_distribution["dist"] = ion_distribution.dist.astype("f8").pint.to("s3 km-6")
elc_distribution["dist"] = elc_distribution.dist.astype("f8").pint.to("s3 km-6")

Particle grid#

To define a new grid of a given coordinate:

from mmspy.compute.particle import ParticleGrid
from mmspy import units as u

energy_range = u.Quantity(np.logspace(0.0, np.log10(4e4), 32), "eV")
zenith_range = u.Quantity(np.arange(0.0, 180.01, 12.0), "deg")
azimuth_range = u.Quantity(np.arange(0.0, 360.01, 12.0), "deg")
grid = {
    "W": ParticleGrid(name="energy", center=energy_range, log_scale=True),
    "theta": ParticleGrid(name="zenith", center=zenith_range),
    "phi": ParticleGrid(name="azimuth", center=azimuth_range),
}

Note

The keys in the grid are the coordinates of the DataArray you want to regrid. The values of the grid are the new ParticleGrid you wish to regrid the DataArray on.

Note

The name argument for ParticleGrid defines a new dimension name corresponding to the new coordinates.

Note

The grid above is 3-dimensional. If you only wish to regrid along one specific coordinate, say 'energy', remove the other keys. This allows the routine to perform interpolation in arbitrary dimensions. An example of 1-d regrid is given in Dask in action.

The (unaliased) energy coordinate in L2 distribution functions have two dimensions, time and energy_channel:

ion_distribution
<xarray.Dataset> Size: 13MB
Dimensions:            (time: 66, energy_channel: 32, azimuthal_sector: 32,
                        zenith_sector: 16)
Coordinates:
  * time               (time) datetime64[ns] 528B 2015-10-16T13:06:55.1102640...
  * energy_channel     (energy_channel) int8 32B 0 1 2 3 4 5 ... 27 28 29 30 31
  * azimuthal_sector   (azimuthal_sector) int8 32B 0 1 2 3 4 ... 27 28 29 30 31
  * zenith_sector      (zenith_sector) int8 16B 0 1 2 3 4 5 ... 11 12 13 14 15
    energy             (time, energy_channel) float64 17kB [eV] dask.array<ad...
    phi                (time, azimuthal_sector) float32 8kB [deg] dask.array<...
    theta              (zenith_sector) float32 64B [deg] dask.array<open_data...
Data variables: (12/13)
    Epoch_minus_var    float32 4B [s] 0.0
    Epoch_plus_var     float32 4B [s] 0.15
    compressionloss    (time) uint8 66B [] dask.array<getitem, shape=(66,), d...
    dist               (time, energy_channel, azimuthal_sector, zenith_sector) float64 9MB [s³/km⁶] dask.array<mul, shape=(66, 32, 32, 16), dtype=float64, chunksize=(15, 32, 32, 16), c...
    disterr            (time, azimuthal_sector, zenith_sector, energy_channel) float32 4MB [s³/cm⁶] dask.array<getitem, shape=(66, 32, 16, 32), dtype=float32, chunksize=(15, 32, 16, 32), c...
    energy_delta       (time, energy_channel) float32 8kB [eV] dask.array<get...
    ...                 ...
    phi_delta          (energy_channel) float32 128B [deg] dask.array<open_da...
    sector_despinp     (time) uint8 66B [] dask.array<getitem, shape=(66,), d...
    startdelphi_angle  (time) float32 264B [deg] dask.array<getitem, shape=(6...
    startdelphi_count  (time) uint16 132B [] dask.array<getitem, shape=(66,),...
    steptable_parity   (time) uint8 66B [] dask.array<getitem, shape=(66,), d...
    theta_delta        (zenith_sector) float32 64B [deg] dask.array<open_data...
Attributes: (12/44)
    Correction_table_name:            mms1_dis_f1ct_v21-0211_0222_p0.txt mms1...
    Correction_table_rev:             7825
    Correction_table_scaling_factor:  1.00000
    Data_type:                        brst_l2_dis-dist
    Dead_time_correction:             100 ns
    Descriptor:                       DIS>Dual Ion Spectrometers
    ...                               ...
    size:                             32.445181999999996 MB
    species:                          ion
    start_time:                       2015-10-16T13:05:24.209633002
    stop_time:                        2015-10-16T13:07:43.860598002
    timestamp:                        2015_10_16_13_05_24
    version:                          3.3.0

However, we prefer to have the regridded dimension to be named 'energy', so we rename the energy coordinate to 'W':

ion_distribution = ion_distribution.rename(energy="W")
elc_distribution = elc_distribution.rename(energy="W")
ion_distribution
<xarray.Dataset> Size: 13MB
Dimensions:            (time: 66, energy_channel: 32, azimuthal_sector: 32,
                        zenith_sector: 16)
Coordinates:
  * time               (time) datetime64[ns] 528B 2015-10-16T13:06:55.1102640...
  * energy_channel     (energy_channel) int8 32B 0 1 2 3 4 5 ... 27 28 29 30 31
  * azimuthal_sector   (azimuthal_sector) int8 32B 0 1 2 3 4 ... 27 28 29 30 31
  * zenith_sector      (zenith_sector) int8 16B 0 1 2 3 4 5 ... 11 12 13 14 15
    W                  (time, energy_channel) float64 17kB [eV] dask.array<ad...
    phi                (time, azimuthal_sector) float32 8kB [deg] dask.array<...
    theta              (zenith_sector) float32 64B [deg] dask.array<open_data...
Data variables: (12/13)
    Epoch_minus_var    float32 4B [s] 0.0
    Epoch_plus_var     float32 4B [s] 0.15
    compressionloss    (time) uint8 66B [] dask.array<getitem, shape=(66,), d...
    dist               (time, energy_channel, azimuthal_sector, zenith_sector) float64 9MB [s³/km⁶] dask.array<mul, shape=(66, 32, 32, 16), dtype=float64, chunksize=(15, 32, 32, 16), c...
    disterr            (time, azimuthal_sector, zenith_sector, energy_channel) float32 4MB [s³/cm⁶] dask.array<getitem, shape=(66, 32, 16, 32), dtype=float32, chunksize=(15, 32, 16, 32), c...
    energy_delta       (time, energy_channel) float32 8kB [eV] dask.array<get...
    ...                 ...
    phi_delta          (energy_channel) float32 128B [deg] dask.array<open_da...
    sector_despinp     (time) uint8 66B [] dask.array<getitem, shape=(66,), d...
    startdelphi_angle  (time) float32 264B [deg] dask.array<getitem, shape=(6...
    startdelphi_count  (time) uint16 132B [] dask.array<getitem, shape=(66,),...
    steptable_parity   (time) uint8 66B [] dask.array<getitem, shape=(66,), d...
    theta_delta        (zenith_sector) float32 64B [deg] dask.array<open_data...
Attributes: (12/44)
    Correction_table_name:            mms1_dis_f1ct_v21-0211_0222_p0.txt mms1...
    Correction_table_rev:             7825
    Correction_table_scaling_factor:  1.00000
    Data_type:                        brst_l2_dis-dist
    Dead_time_correction:             100 ns
    Descriptor:                       DIS>Dual Ion Spectrometers
    ...                               ...
    size:                             32.445181999999996 MB
    species:                          ion
    start_time:                       2015-10-16T13:05:24.209633002
    stop_time:                        2015-10-16T13:07:43.860598002
    timestamp:                        2015_10_16_13_05_24
    version:                          3.3.0

Interpolation#

We can now regrid the distributions. interpolate_distribution does not care how many dimensions a coordinate has. So as long as they are listed in the grid, they will be resampled:

from mmspy.compute.particle import interpolate_distribution

f_ion = interpolate_distribution(ion_distribution, variable="dist", grid=grid)
f_elc = interpolate_distribution(elc_distribution, variable="dist", grid=grid)
f_ion.attrs.update(species=ion_distribution.species.name)
f_elc.attrs.update(species=elc_distribution.species.name)
f_ion
<xarray.DataArray 'dist' (time: 66, energy: 32, zenith: 16, azimuth: 31)> Size: 8MB
<Quantity(dask.array<process_chunk, shape=(66, 32, 16, 31), dtype=float64, chunksize=(1, 32, 16, 31), chunktype=numpy.ndarray>, 'second ** 3 / kilometer ** 6')>
Coordinates:
  * time     (time) datetime64[ns] 528B 2015-10-16T13:06:55.110264002 ... 201...
  * energy   (energy) int64 256B 0 1 2 3 4 5 6 7 8 ... 24 25 26 27 28 29 30 31
  * zenith   (zenith) int64 128B 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  * azimuth  (azimuth) int64 248B 0 1 2 3 4 5 6 7 8 ... 23 24 25 26 27 28 29 30
    W        (energy) float64 256B [eV] 1.0 1.408 1.981 ... 2.842e+04 4e+04
    theta    (zenith) float64 128B [deg] 0.0 12.0 24.0 ... 156.0 168.0 180.0
    phi      (azimuth) float64 248B [deg] 0.0 12.0 24.0 ... 336.0 348.0 360.0
Attributes:
    species:  ion

Integration#

Now, we integrate the regridded distributions. integrate_distribution calculates the density, the velocity, and the pressure tensor from a given distribution. The name of the spherical coordinates must be specified:

from mmspy.compute.particle import integrate_distribution

ion_int_moments = integrate_distribution(f_ion, energy="W", zenith="theta", azimuth="phi")
elc_int_moments = integrate_distribution(f_elc, energy="W", zenith="theta", azimuth="phi")
ion_int_moments
<xarray.Dataset> Size: 6kB
Dimensions:  (time: 66, rank_1: 3, rank_2: 6)
Coordinates:
  * time     (time) datetime64[ns] 528B 2015-10-16T13:06:55.110264002 ... 201...
  * rank_1   (rank_1) <U1 12B 'x' 'y' 'z'
  * rank_2   (rank_2) <U2 48B 'xx' 'yy' 'zz' 'xy' 'xz' 'yz'
Data variables:
    N        (time) float64 528B [number_density_unit] dask.array<where, shap...
    V        (time, rank_1) float64 2kB [velocity_unit] dask.array<transpose,...
    P        (time, rank_2) float64 3kB [pressure_unit] dask.array<transpose,...

All this is planned out by dask. Let us examine the task graph for the pressure tensor (which will be the most complicated since it depends on the density and the velocity):

ion_int_moments.P.data.dask

HighLevelGraph

HighLevelGraph with 341 layers and 18412 keys from all layers.

Layer1: array

array-dbf16ba8d8fb9827404f2481a1d04e06

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (1, 32, 16, 1)
dtype float64
chunksize (1, 32, 16, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
1 1 1 16 32

Layer2: array

array-6b6dece3013e3400d0bb8ee6cf0f49a8

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (1, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
1 1 31 16 32

Layer3: array

array-e2b0f4519d497155fd57faffc8298c46

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (1, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
1 1 31 16 32

Layer4: array

array-d160f6b881137e364d5247a7ff45fcaa

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (1, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
1 1 31 16 32

Layer5: original

original-open_dataset-phi-b953b9647945c9678388b2625aa8f0ff

layer_type MaterializedLayer
is_materialized True
number of outputs 1

Layer6: open_dataset-phi

open_dataset-phi-b953b9647945c9678388b2625aa8f0ff

layer_type Blockwise
is_materialized False
number of outputs 1
shape (932, 32)
dtype float32
chunksize (932, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on original-open_dataset-phi-b953b9647945c9678388b2625aa8f0ff
32 932

Layer7: getitem

getitem-818715a906e834fc06c8e3d90807dc45

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (932, 32)
dtype float32
chunksize (932, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on open_dataset-phi-b953b9647945c9678388b2625aa8f0ff
32 932

Layer8: getitem

getitem-466c702540b87b104e5c65f769f73aa7

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (932, 32)
dtype float32
chunksize (932, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-818715a906e834fc06c8e3d90807dc45
32 932

Layer9: getitem

getitem-c66ab3b9f71087088f0a5b7e51bad65a

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (66, 32)
dtype float32
chunksize (66, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-466c702540b87b104e5c65f769f73aa7
32 66

Layer10: broadcast_to

broadcast_to-925527803f621c81aa0e8e55b65058a1

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (32, 16, 66, 32)
dtype float32
chunksize (32, 16, 66, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-c66ab3b9f71087088f0a5b7e51bad65a
32 1 32 66 16

Layer11: transpose

transpose-495b1090a19d2b16fcb36e59236f5c10

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 32, 32, 16)
dtype float32
chunksize (66, 32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on broadcast_to-925527803f621c81aa0e8e55b65058a1
66 1 16 32 32

Layer12: transpose

transpose-04aedb8430eac1891b835db26837ea7d

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 32, 32, 16)
dtype float32
chunksize (66, 32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-495b1090a19d2b16fcb36e59236f5c10
66 1 16 32 32

Layer13: reshape

reshape-25c64cae5b52dbdb1897606e7115d73d

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (66, 16384)
dtype float32
chunksize (66, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-04aedb8430eac1891b835db26837ea7d
16384 66

Layer14: astype

astype-307cf22dd2b258b17e26aabdc628ae1d

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 16384)
dtype float64
chunksize (66, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on reshape-25c64cae5b52dbdb1897606e7115d73d
16384 66

Layer15: rechunk-merge

rechunk-merge-802d62382fba433f022a5074f172a0e5

layer_type MaterializedLayer
is_materialized True
number of outputs 10
shape (66, 16384)
dtype float64
chunksize (15, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on astype-307cf22dd2b258b17e26aabdc628ae1d
16384 66

Layer16: original

original-open_dataset-theta-41bc117a4e88fd330553e507944b5072

layer_type MaterializedLayer
is_materialized True
number of outputs 1

Layer17: open_dataset-theta

open_dataset-theta-41bc117a4e88fd330553e507944b5072

layer_type Blockwise
is_materialized False
number of outputs 1
shape (16,)
dtype float32
chunksize (16,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on original-open_dataset-theta-41bc117a4e88fd330553e507944b5072
16 1

Layer18: broadcast_to

broadcast_to-4328074416aacba7e0b21749d953e0a8

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (32, 32, 16)
dtype float32
chunksize (32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on open_dataset-theta-41bc117a4e88fd330553e507944b5072
16 32 32

Layer19: transpose

transpose-858ec78033da9f39bb8a45fd1012a52e

layer_type Blockwise
is_materialized False
number of outputs 1
shape (16, 32, 32)
dtype float32
chunksize (16, 32, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on broadcast_to-4328074416aacba7e0b21749d953e0a8
32 32 16

Layer20: transpose

transpose-5d0145e1c0285b8fd3f8846dd677b590

layer_type Blockwise
is_materialized False
number of outputs 1
shape (32, 32, 16)
dtype float32
chunksize (32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-858ec78033da9f39bb8a45fd1012a52e
16 32 32

Layer21: reshape

reshape-fd4cb1d7e9c3529ef729bbe0d3c397e0

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (16384,)
dtype float32
chunksize (16384,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-5d0145e1c0285b8fd3f8846dd677b590
16384 1

Layer22: broadcast_to

broadcast_to-3ab30372ed380a2f3d2657bb3d6fb26e

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (66, 16384)
dtype float32
chunksize (66, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on reshape-fd4cb1d7e9c3529ef729bbe0d3c397e0
16384 66

Layer23: astype

astype-0524d15f6cfab84bc4cecfba46677182

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 16384)
dtype float64
chunksize (66, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on broadcast_to-3ab30372ed380a2f3d2657bb3d6fb26e
16384 66

Layer24: rechunk-merge

rechunk-merge-983ff148cdf723c45397ace185c2a0eb

layer_type MaterializedLayer
is_materialized True
number of outputs 10
shape (66, 16384)
dtype float64
chunksize (15, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on astype-0524d15f6cfab84bc4cecfba46677182
16384 66

Layer25: original

original-open_dataset-dist-ae6566f36fdb824e99e0d932f5f800ea

layer_type MaterializedLayer
is_materialized True
number of outputs 1

Layer26: open_dataset-dist

open_dataset-dist-ae6566f36fdb824e99e0d932f5f800ea

layer_type Blockwise
is_materialized False
number of outputs 63
shape (932, 32, 16, 32)
dtype float32
chunksize (15, 32, 16, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on original-open_dataset-dist-ae6566f36fdb824e99e0d932f5f800ea
932 1 32 16 32

Layer27: getitem

getitem-b838ec6859e3455f67601dc6e8c7d274

layer_type MaterializedLayer
is_materialized True
number of outputs 63
shape (932, 32, 16, 32)
dtype float32
chunksize (15, 32, 16, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on open_dataset-dist-ae6566f36fdb824e99e0d932f5f800ea
932 1 32 16 32

Layer28: getitem

getitem-ff8c0994107f4a1c85af910bf15bfdc7

layer_type MaterializedLayer
is_materialized True
number of outputs 63
shape (932, 32, 16, 32)
dtype float32
chunksize (15, 32, 16, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-b838ec6859e3455f67601dc6e8c7d274
932 1 32 16 32

Layer29: getitem

getitem-b46d7797a6cc8082dd87e5b8fb29d3fe

layer_type MaterializedLayer
is_materialized True
number of outputs 5
shape (66, 32, 16, 32)
dtype float32
chunksize (15, 32, 16, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-ff8c0994107f4a1c85af910bf15bfdc7
66 1 32 16 32

Layer30: transpose

transpose-5b5b73e691dc61eef11d8fbb276fe09b

layer_type Blockwise
is_materialized False
number of outputs 5
shape (66, 32, 32, 16)
dtype float32
chunksize (15, 32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-b46d7797a6cc8082dd87e5b8fb29d3fe
66 1 16 32 32

Layer31: original-array

original-array-8df6a55353f35ec3baeba7d7500bd3d2

layer_type MaterializedLayer
is_materialized True
number of outputs 1

Layer32: array

array-8df6a55353f35ec3baeba7d7500bd3d2

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66,)
dtype datetime64[ns]
chunksize (66,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on original-array-8df6a55353f35ec3baeba7d7500bd3d2
66 1

Layer33: original-array

original-array-dae1e57f1be7586af5f01035f796b030

layer_type MaterializedLayer
is_materialized True
number of outputs 1

Layer34: array

array-dae1e57f1be7586af5f01035f796b030

layer_type Blockwise
is_materialized False
number of outputs 1
shape (79875,)
dtype datetime64[ns]
chunksize (79875,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on original-array-dae1e57f1be7586af5f01035f796b030
79875 1

Layer35: original

original-open_dataset-scpot-161ca01c4562e28f9989576b7e8bace9

layer_type MaterializedLayer
is_materialized True
number of outputs 1

Layer36: open_dataset-scpot

open_dataset-scpot-161ca01c4562e28f9989576b7e8bace9

layer_type Blockwise
is_materialized False
number of outputs 5
shape (1146560,)
dtype float32
chunksize (250000,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on original-open_dataset-scpot-161ca01c4562e28f9989576b7e8bace9
1146560 1

Layer37: getitem

getitem-9934542b9250b0461fede9943fa7c9b2

layer_type MaterializedLayer
is_materialized True
number of outputs 5
shape (1146560,)
dtype float32
chunksize (250000,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on open_dataset-scpot-161ca01c4562e28f9989576b7e8bace9
1146560 1

Layer38: getitem

getitem-c50a4ca5b80dea9e638edacc6a1e4c5f

layer_type MaterializedLayer
is_materialized True
number of outputs 5
shape (1146560,)
dtype float32
chunksize (250000,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-9934542b9250b0461fede9943fa7c9b2
1146560 1

Layer39: getitem

getitem-4857e0854c02c9966f9d95a5f18628c7

layer_type MaterializedLayer
is_materialized True
number of outputs 2
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-c50a4ca5b80dea9e638edacc6a1e4c5f
81919 1

Layer40: isnan

isnan-c9e085fe33a2d49bf177312c2c6d6306

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype bool
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-4857e0854c02c9966f9d95a5f18628c7
81919 1

Layer41: invert

invert-b8505dabb5f845b3686eac6c5098d215

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype bool
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on isnan-c9e085fe33a2d49bf177312c2c6d6306
81919 1

Layer42: where

where-2ba981c545aed461902c6d502cb2dc5d

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on invert-b8505dabb5f845b3686eac6c5098d215
getitem-4857e0854c02c9966f9d95a5f18628c7
81919 1

Layer43: overlap

overlap-06975abfb720b9fe18bcaeaf03ba20ce

layer_type ArrayOverlapLayer
is_materialized True
number of outputs 4
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on where-2ba981c545aed461902c6d502cb2dc5d
81919 1

Layer44: sliding_window_view

sliding_window_view-2e93792ca8f9ad333a47650f19b4e542

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919, 1)
dtype float32
chunksize (77207, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on overlap-06975abfb720b9fe18bcaeaf03ba20ce
1 81919

Layer45: sum

sum-092b07052332d60d33a331190b9fc053

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919, 1)
dtype float32
chunksize (77207, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sliding_window_view-2e93792ca8f9ad333a47650f19b4e542
1 81919

Layer46: sum-aggregate

sum-aggregate-bc5d1c493936939be96f660be5503cda

layer_type MaterializedLayer
is_materialized True
number of outputs 2
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-092b07052332d60d33a331190b9fc053
81919 1

Layer47: overlap

overlap-ed91894624503cc406135d3eabd31f75

layer_type ArrayOverlapLayer
is_materialized True
number of outputs 4
shape (81919,)
dtype bool
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on invert-b8505dabb5f845b3686eac6c5098d215
81919 1

Layer48: sliding_window_view

sliding_window_view-3091167445c81f63308ff7eefc5e3e7f

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919, 1)
dtype bool
chunksize (77207, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on overlap-ed91894624503cc406135d3eabd31f75
1 81919

Layer49: sum

sum-fb182fb6e23974b64b8fbb6bc4f7eadd

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919, 1)
dtype int64
chunksize (77207, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sliding_window_view-3091167445c81f63308ff7eefc5e3e7f
1 81919

Layer50: sum-aggregate

sum-aggregate-8dc0deacde8bab919d9359975950e6d1

layer_type MaterializedLayer
is_materialized True
number of outputs 2
shape (81919,)
dtype int64
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-fb182fb6e23974b64b8fbb6bc4f7eadd
81919 1

Layer51: astype

astype-6b11cde6b30cd85c3b0581f484998651

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype float64
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-8dc0deacde8bab919d9359975950e6d1
81919 1

Layer52: ge

ge-160911d54ac2f159f91daa418e091978

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype bool
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-8dc0deacde8bab919d9359975950e6d1
81919 1

Layer53: where

where-43a9d9e1b602c3ac771f2954f9d12d6e

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype float64
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on astype-6b11cde6b30cd85c3b0581f484998651
ge-160911d54ac2f159f91daa418e091978
81919 1

Layer54: astype

astype-8c07096d57b52e80e9dae1a6137e715b

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on where-43a9d9e1b602c3ac771f2954f9d12d6e
81919 1

Layer55: where

where-7f852284fa112f86b66dea40a44dc61e

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-bc5d1c493936939be96f660be5503cda
ge-160911d54ac2f159f91daa418e091978
81919 1

Layer56: truediv

truediv-a2b847a27be4c5671efd598403de75e0

layer_type Blockwise
is_materialized False
number of outputs 2
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on astype-8c07096d57b52e80e9dae1a6137e715b
where-7f852284fa112f86b66dea40a44dc61e
81919 1

Layer57: getitem

getitem-649604fdc4e0f68d1679d2d995bb0504

layer_type MaterializedLayer
is_materialized True
number of outputs 2
shape (81919,)
dtype float32
chunksize (77207,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on truediv-a2b847a27be4c5671efd598403de75e0
81919 1

Layer58: getitem

getitem-cfe37e66c161263ee70e8d962937f40a

layer_type MaterializedLayer
is_materialized True
number of outputs 2
shape (79875,)
dtype float32
chunksize (76064,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-649604fdc4e0f68d1679d2d995bb0504
79875 1

Layer59: interpnd

interpnd-ffeae963a3e8a9a9db0ab0f7e071b2eb

layer_type Blockwise
is_materialized False
number of outputs 1
shape ()
dtype float32
chunksize ()
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-cfe37e66c161263ee70e8d962937f40a
array-dae1e57f1be7586af5f01035f796b030
array-8df6a55353f35ec3baeba7d7500bd3d2

Layer60: interpnd_0

interpnd_0-ffeae963a3e8a9a9db0ab0f7e071b2eb

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (66,)
dtype float32
chunksize (66,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on interpnd-ffeae963a3e8a9a9db0ab0f7e071b2eb
66 1

Layer61: transpose

transpose-00c4eb9fe6784514175109d49e3d4cdd

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66,)
dtype float32
chunksize (66,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on interpnd_0-ffeae963a3e8a9a9db0ab0f7e071b2eb
66 1

Layer62: multiply

multiply-23deadeada9631b4b43d4c6ae1f6f55d

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66,)
dtype float64
chunksize (66,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-00c4eb9fe6784514175109d49e3d4cdd
66 1

Layer63: mul

mul-442662dcf956fc893dc6610f6e60e9ed

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66,)
dtype float64
chunksize (66,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-23deadeada9631b4b43d4c6ae1f6f55d
66 1

Layer64: getitem

getitem-36dea6605b996142dab074fd2a6f3e49

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (1, 66)
dtype float64
chunksize (1, 66)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-442662dcf956fc893dc6610f6e60e9ed
66 1

Layer65: transpose

transpose-6302407d6b48ca4021562f4c8de3ff8f

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 1)
dtype float64
chunksize (66, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-36dea6605b996142dab074fd2a6f3e49
1 66

Layer66: mul

mul-c5cf9637c8c8b6869248187cb5cb0be6

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 1)
dtype float64
chunksize (66, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-6302407d6b48ca4021562f4c8de3ff8f
1 66

Layer67: absolute

absolute-a97a8a209189b1e221495b1ac18bfa99

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66,)
dtype float64
chunksize (66,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-442662dcf956fc893dc6610f6e60e9ed
66 1

Layer68: mul

mul-b93b7c5f2bd39fe360015fd738206bb3

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66,)
dtype float64
chunksize (66,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on absolute-a97a8a209189b1e221495b1ac18bfa99
66 1

Layer69: getitem

getitem-ebe467708d8aaad7cafa13838d9702e5

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (1, 66)
dtype float64
chunksize (1, 66)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-b93b7c5f2bd39fe360015fd738206bb3
66 1

Layer70: transpose

transpose-9877fe725867e05cd5b4db0b40447d3b

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 1)
dtype float64
chunksize (66, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-ebe467708d8aaad7cafa13838d9702e5
1 66

Layer71: mul

mul-18a27d1b37bc5bbb8f8d726ff5f16462

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 1)
dtype float64
chunksize (66, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-9877fe725867e05cd5b4db0b40447d3b
1 66

Layer72: original

original-open_dataset-energy-bfba174a6030965e4571a234563049c8

layer_type MaterializedLayer
is_materialized True
number of outputs 1

Layer73: open_dataset-energy

open_dataset-energy-bfba174a6030965e4571a234563049c8

layer_type Blockwise
is_materialized False
number of outputs 1
shape (932, 32)
dtype float32
chunksize (932, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on original-open_dataset-energy-bfba174a6030965e4571a234563049c8
32 932

Layer74: getitem

getitem-53d706ead465786b8a2c31298308a93f

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (932, 32)
dtype float32
chunksize (932, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on open_dataset-energy-bfba174a6030965e4571a234563049c8
32 932

Layer75: getitem

getitem-69d4455469ce0ff6d50e68e9c9b1db12

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (932, 32)
dtype float32
chunksize (932, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-53d706ead465786b8a2c31298308a93f
32 932

Layer76: getitem

getitem-0c348af67f53ad988b1ed717321518c5

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (66, 32)
dtype float32
chunksize (66, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-69d4455469ce0ff6d50e68e9c9b1db12
32 66

Layer77: add

add-98670ddfb50e4b4a4e639a40a469e7fb

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 32)
dtype float64
chunksize (66, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-0c348af67f53ad988b1ed717321518c5
mul-c5cf9637c8c8b6869248187cb5cb0be6
32 66

Layer78: broadcast_to

broadcast_to-7810314f379252043bf9cd72a3a0e8e0

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (32, 16, 66, 32)
dtype float64
chunksize (32, 16, 66, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-98670ddfb50e4b4a4e639a40a469e7fb
32 1 32 66 16

Layer79: transpose

transpose-b10148ce9c844a5748a3dc662dd59771

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 32, 32, 16)
dtype float64
chunksize (66, 32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on broadcast_to-7810314f379252043bf9cd72a3a0e8e0
66 1 16 32 32

Layer80: reshape

reshape-617e027e605d075617af358bf81ef82d

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (66, 16384)
dtype float64
chunksize (66, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-b10148ce9c844a5748a3dc662dd59771
16384 66

Layer81: rechunk-merge

rechunk-merge-07f26176beed06dc01edfe22f15dbecf

layer_type MaterializedLayer
is_materialized True
number of outputs 10
shape (66, 16384)
dtype float64
chunksize (15, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on reshape-617e027e605d075617af358bf81ef82d
16384 66

Layer82: mul

mul-147f7a35c16f5a18fff3c557c0c93a5e

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 32)
dtype float32
chunksize (66, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-0c348af67f53ad988b1ed717321518c5
32 66

Layer83: gt

gt-5f7e089437d4cd5e16d8fa4927e8a901

layer_type Blockwise
is_materialized False
number of outputs 1
shape (66, 32)
dtype bool
chunksize (66, 32)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-18a27d1b37bc5bbb8f8d726ff5f16462
mul-147f7a35c16f5a18fff3c557c0c93a5e
32 66

Layer84: getitem

getitem-26cb9665c4418f0344d9400cc6cbf6a8

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (66, 32, 1, 1)
dtype bool
chunksize (66, 32, 1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on gt-5f7e089437d4cd5e16d8fa4927e8a901
66 1 1 1 32

Layer85: rechunk-merge

rechunk-merge-d2e20ec246263ac1de7ddc0e71860770

layer_type MaterializedLayer
is_materialized True
number of outputs 10
shape (66, 32, 1, 1)
dtype bool
chunksize (15, 32, 1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-26cb9665c4418f0344d9400cc6cbf6a8
66 1 1 1 32

Layer86: where

where-630f67c986c7f2885d1f3568dd7dc1bc

layer_type Blockwise
is_materialized False
number of outputs 5
shape (66, 32, 32, 16)
dtype float32
chunksize (15, 32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on rechunk-merge-d2e20ec246263ac1de7ddc0e71860770
transpose-5b5b73e691dc61eef11d8fbb276fe09b
66 1 16 32 32

Layer87: astype

astype-338b7e69da909ef728660bd604101225

layer_type Blockwise
is_materialized False
number of outputs 5
shape (66, 32, 32, 16)
dtype float64
chunksize (15, 32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on where-630f67c986c7f2885d1f3568dd7dc1bc
66 1 16 32 32

Layer88: mul

mul-38a5912a6927f4516ac339e327152311

layer_type Blockwise
is_materialized False
number of outputs 5
shape (66, 32, 32, 16)
dtype float64
chunksize (15, 32, 32, 16)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on astype-338b7e69da909ef728660bd604101225
66 1 16 32 32

Layer89: reshape

reshape-2a32b0219205bce6a7b4061bb57ab048

layer_type MaterializedLayer
is_materialized True
number of outputs 5
shape (66, 16384)
dtype float64
chunksize (15, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-38a5912a6927f4516ac339e327152311
16384 66

Layer90: stack

stack-46c6e8e9fd454fe6c3fb8222a65858af

layer_type MaterializedLayer
is_materialized True
number of outputs 20
shape (4, 66, 16384)
dtype float64
chunksize (1, 15, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on rechunk-merge-07f26176beed06dc01edfe22f15dbecf
reshape-2a32b0219205bce6a7b4061bb57ab048
rechunk-merge-983ff148cdf723c45397ace185c2a0eb
rechunk-merge-802d62382fba433f022a5074f172a0e5
16384 66 4

Layer91: rechunk-merge

rechunk-merge-03e6abb83b853153d4aebaef5e5e034c

layer_type MaterializedLayer
is_materialized True
number of outputs 528
shape (4, 66, 16384)
dtype float64
chunksize (1, 1, 16384)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on stack-46c6e8e9fd454fe6c3fb8222a65858af
16384 66 4

Layer92: transpose

transpose-0a1638e5dec0099ece3ce3e673b5e212

layer_type Blockwise
is_materialized False
number of outputs 264
shape (66, 16384, 4)
dtype float64
chunksize (1, 16384, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on rechunk-merge-03e6abb83b853153d4aebaef5e5e034c
4 16384 66

Layer93: process_chunk

process_chunk-016d61159ebd3c9a25cb77c9e5bce27c

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on transpose-0a1638e5dec0099ece3ce3e673b5e212
66 1 31 16 32

Layer94: mul

mul-b219c579e43c758c0b6163687c61a0e4

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on process_chunk-016d61159ebd3c9a25cb77c9e5bce27c
66 1 31 16 32

Layer95: isnan

isnan-6f2f95e578447a44785f7f70f1416617

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype bool
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-b219c579e43c758c0b6163687c61a0e4
66 1 31 16 32

Layer96: invert

invert-4d120ae483b5a1cf427e4041356cd2b1

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype bool
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on isnan-6f2f95e578447a44785f7f70f1416617
66 1 31 16 32

Layer97: where

where-e4441351e5451bf9a75641b6b6431695

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on invert-4d120ae483b5a1cf427e4041356cd2b1
mul-b219c579e43c758c0b6163687c61a0e4
66 1 31 16 32

Layer98: mul

mul-d67515fa2dd23a68a97a9641446ff268

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on where-e4441351e5451bf9a75641b6b6431695
array-dbf16ba8d8fb9827404f2481a1d04e06
66 1 31 16 32

Layer99: mul

mul-2b86b04035521d79599b489ec3e78338

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-e2b0f4519d497155fd57faffc8298c46
mul-d67515fa2dd23a68a97a9641446ff268
66 1 31 16 32

Layer100: getitem

getitem-6b4614ea03a20bcab9a373a738d6d526

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-2b86b04035521d79599b489ec3e78338
66 1 31 16 31

Layer101: getitem

getitem-52e3bd9de139974d795ac7bfd5c47a19

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-2b86b04035521d79599b489ec3e78338
66 1 31 16 31

Layer102: add

add-5fa83ebe43d13d63acea49686b577435

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-52e3bd9de139974d795ac7bfd5c47a19
getitem-6b4614ea03a20bcab9a373a738d6d526
66 1 31 16 31

Layer103: mul

mul-4f4e4653be4bf1ae6fc3dc6631a15519

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-dbf16ba8d8fb9827404f2481a1d04e06
mul-d67515fa2dd23a68a97a9641446ff268
66 1 31 16 32

Layer104: mul

mul-fc0c42b547a4090df80f867641344f44

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-4f4e4653be4bf1ae6fc3dc6631a15519
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer105: getitem

getitem-64d9fd456af0ecba632c2f78631f012e

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-fc0c42b547a4090df80f867641344f44
66 1 31 16 31

Layer106: getitem

getitem-94bc3140b93805de02ccb50e8d871146

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-fc0c42b547a4090df80f867641344f44
66 1 31 16 31

Layer107: add

add-4d9a32c7f7fb356b2d1b682139ab30c1

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-64d9fd456af0ecba632c2f78631f012e
getitem-94bc3140b93805de02ccb50e8d871146
66 1 31 16 31

Layer108: mul

mul-6fae032a925aa736035088d403622a4c

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on where-e4441351e5451bf9a75641b6b6431695
array-6b6dece3013e3400d0bb8ee6cf0f49a8
66 1 31 16 32

Layer109: mul

mul-b21dbfa66c71338a13b7c334c53e3ac0

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-6fae032a925aa736035088d403622a4c
array-dbf16ba8d8fb9827404f2481a1d04e06
66 1 31 16 32

Layer110: mul

mul-33b619504a178258e2e9197b79957a63

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-b21dbfa66c71338a13b7c334c53e3ac0
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer111: getitem

getitem-7b2ee210baebf5099454d97d56c13ae2

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-33b619504a178258e2e9197b79957a63
66 1 31 16 31

Layer112: getitem

getitem-71f5eb5a51b5621bbae470a12c2850fc

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-33b619504a178258e2e9197b79957a63
66 1 31 16 31

Layer113: add

add-cb229541c25338343a77bf875ef08825

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-71f5eb5a51b5621bbae470a12c2850fc
getitem-7b2ee210baebf5099454d97d56c13ae2
66 1 31 16 31

Layer114: mul

mul-bd186c4d1f336509c0a58f50e41d4e01

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-6fae032a925aa736035088d403622a4c
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer115: getitem

getitem-f936d7ea0d8ecb48a2bcccf15ca517d7

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-bd186c4d1f336509c0a58f50e41d4e01
66 1 31 16 31

Layer116: getitem

getitem-77e2b69102355e790a0cfc81eec72141

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-bd186c4d1f336509c0a58f50e41d4e01
66 1 31 16 31

Layer117: add

add-a79cc39c97fad335fb9e4be24296df42

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-f936d7ea0d8ecb48a2bcccf15ca517d7
getitem-77e2b69102355e790a0cfc81eec72141
66 1 31 16 31

Layer118: mul

mul-e70931b2ff97060a2a6c35b377b3580a

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-6fae032a925aa736035088d403622a4c
array-6b6dece3013e3400d0bb8ee6cf0f49a8
66 1 31 16 32

Layer119: mul

mul-b1368e2c63526ba4815501bbc8412fe0

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-e70931b2ff97060a2a6c35b377b3580a
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer120: getitem

getitem-1de803c08fb8255b37923e44bf6cdd6f

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-b1368e2c63526ba4815501bbc8412fe0
66 1 31 16 31

Layer121: getitem

getitem-d0a0ba30dc7cfa43c3b28b36e8de136b

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-b1368e2c63526ba4815501bbc8412fe0
66 1 31 16 31

Layer122: add

add-64a0001b212fa98687394e539be030f3

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-1de803c08fb8255b37923e44bf6cdd6f
getitem-d0a0ba30dc7cfa43c3b28b36e8de136b
66 1 31 16 31

Layer123: mul

mul-f7920a50b723caae89db7bc545084b31

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on where-e4441351e5451bf9a75641b6b6431695
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer124: getitem

getitem-d9946fa7b7261c065dd218ce87ab1808

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-f7920a50b723caae89db7bc545084b31
66 1 31 16 31

Layer125: getitem

getitem-d503f0f6784fe8ccf496d49d598fed4c

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-f7920a50b723caae89db7bc545084b31
66 1 31 16 31

Layer126: add

add-cf6cadb71041373e6c54886db97961d6

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-d503f0f6784fe8ccf496d49d598fed4c
getitem-d9946fa7b7261c065dd218ce87ab1808
66 1 31 16 31

Layer127: mul

mul-db2a1563db31caf65f23ef3d76b11814

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on where-e4441351e5451bf9a75641b6b6431695
array-d160f6b881137e364d5247a7ff45fcaa
66 1 31 16 32

Layer128: mul

mul-18667fff31d7b17c6d9ca988a0d5d9da

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-dbf16ba8d8fb9827404f2481a1d04e06
mul-db2a1563db31caf65f23ef3d76b11814
66 1 31 16 32

Layer129: mul

mul-f7af00c0a7195f7942792ef9a59a950a

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-18667fff31d7b17c6d9ca988a0d5d9da
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer130: getitem

getitem-8b908a2708c96c90fb5a7c4a3495b790

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-f7af00c0a7195f7942792ef9a59a950a
66 1 31 16 31

Layer131: getitem

getitem-1bf05c9a91701796ab863caa7ebaaa98

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-f7af00c0a7195f7942792ef9a59a950a
66 1 31 16 31

Layer132: add

add-24f03a8da0d3510f8e483ad114467579

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-1bf05c9a91701796ab863caa7ebaaa98
getitem-8b908a2708c96c90fb5a7c4a3495b790
66 1 31 16 31

Layer133: mul

mul-df6697ac0a02535f641b0aa753dfa154

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-6b6dece3013e3400d0bb8ee6cf0f49a8
mul-db2a1563db31caf65f23ef3d76b11814
66 1 31 16 32

Layer134: mul

mul-61c872bf69ecfec44e6b150f45a924a5

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-df6697ac0a02535f641b0aa753dfa154
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer135: getitem

getitem-e0d38a89ed5e6055f1f9798d96a1013d

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-61c872bf69ecfec44e6b150f45a924a5
66 1 31 16 31

Layer136: getitem

getitem-c6b02aae9ca81dc616c6bf01ce95cdbb

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-61c872bf69ecfec44e6b150f45a924a5
66 1 31 16 31

Layer137: add

add-4ff68b99632ba0e941ad08e65dba1d73

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-c6b02aae9ca81dc616c6bf01ce95cdbb
getitem-e0d38a89ed5e6055f1f9798d96a1013d
66 1 31 16 31

Layer138: mul

mul-cb9a1c37a79c62f27ebdae1006d57f37

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-db2a1563db31caf65f23ef3d76b11814
array-e2b0f4519d497155fd57faffc8298c46
66 1 31 16 32

Layer139: getitem

getitem-e1c2a7d88567d93bafd3bdde91fb2d02

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-cb9a1c37a79c62f27ebdae1006d57f37
66 1 31 16 31

Layer140: getitem

getitem-156a4b6b4be0f47c7dd1a1b953f6f1d5

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-cb9a1c37a79c62f27ebdae1006d57f37
66 1 31 16 31

Layer141: add

add-7f08f3559e3e770a1346bc1b23e0a23e

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-156a4b6b4be0f47c7dd1a1b953f6f1d5
getitem-e1c2a7d88567d93bafd3bdde91fb2d02
66 1 31 16 31

Layer142: mul

mul-4cc302154398a813bd4171ad4333d992

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-d160f6b881137e364d5247a7ff45fcaa
mul-db2a1563db31caf65f23ef3d76b11814
66 1 31 16 32

Layer143: mul

mul-b9c6bc3b275683151ae4c6f762e5f48c

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 32, 16, 31)
dtype float64
chunksize (1, 32, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-e2b0f4519d497155fd57faffc8298c46
mul-4cc302154398a813bd4171ad4333d992
66 1 31 16 32

Layer144: getitem

getitem-0b026de70efa40613704007c419f348d

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-b9c6bc3b275683151ae4c6f762e5f48c
66 1 31 16 31

Layer145: getitem

getitem-8385715771e3b8dd986c241630d42232

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-b9c6bc3b275683151ae4c6f762e5f48c
66 1 31 16 31

Layer146: add

add-9484b5315826314451796858f42b0555

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-8385715771e3b8dd986c241630d42232
getitem-0b026de70efa40613704007c419f348d
66 1 31 16 31

Layer147: array

array-04dc77abe258c713cec706280f505a3e

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (31, 1, 1)
dtype float64
chunksize (31, 1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
1 1 31

Layer148: multiply

multiply-bb56306aece206d33debfa1fed3320f5

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-cb229541c25338343a77bf875ef08825
66 1 31 16 31

Layer149: sum

sum-15ceabf723d19e28589b6d7b0d078df7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-bb56306aece206d33debfa1fed3320f5
66 1 31 16 31

Layer150: sum-aggregate

sum-aggregate-98ae34dfcbb53da29395f6983427e6a8

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-15ceabf723d19e28589b6d7b0d078df7
31 16 66

Layer151: getitem

getitem-3cd1da72a2156784e51a553cf5ca3211

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-98ae34dfcbb53da29395f6983427e6a8
31 15 66

Layer152: getitem

getitem-66b1749c5c9f9fe0bab2489916120668

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-98ae34dfcbb53da29395f6983427e6a8
31 15 66

Layer153: add

add-8b40e2d065c71585b8a1bedff40a9bda

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-66b1749c5c9f9fe0bab2489916120668
getitem-3cd1da72a2156784e51a553cf5ca3211
31 15 66

Layer154: multiply

multiply-5e6ef921588f65d7b1f9382a6ba8bcf3

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-24f03a8da0d3510f8e483ad114467579
66 1 31 16 31

Layer155: sum

sum-42b02914807b1fdda420d3d6d1c46fe3

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-5e6ef921588f65d7b1f9382a6ba8bcf3
66 1 31 16 31

Layer156: sum-aggregate

sum-aggregate-0d8c785da1c45800424aafe5e87c25a7

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-42b02914807b1fdda420d3d6d1c46fe3
31 16 66

Layer157: getitem

getitem-e74d2707619728012fd5f1aef7f6b6e0

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-0d8c785da1c45800424aafe5e87c25a7
31 15 66

Layer158: getitem

getitem-7cd2c344a460d4d60d7489eaab9fe966

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-0d8c785da1c45800424aafe5e87c25a7
31 15 66

Layer159: add

add-0c3b9dd59e978cbdd9fbb1a989a13eaf

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-7cd2c344a460d4d60d7489eaab9fe966
getitem-e74d2707619728012fd5f1aef7f6b6e0
31 15 66

Layer160: multiply

multiply-719206bdb29ff925bdd064fc7220a34c

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-4ff68b99632ba0e941ad08e65dba1d73
66 1 31 16 31

Layer161: sum

sum-925946ce1766966dec938f917cbbf0a3

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-719206bdb29ff925bdd064fc7220a34c
66 1 31 16 31

Layer162: sum-aggregate

sum-aggregate-49c2d13a2b63770d2a213e644b5e4097

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-925946ce1766966dec938f917cbbf0a3
31 16 66

Layer163: getitem

getitem-7c6a05bfd3aa5467ba2f2c4e54386df5

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-49c2d13a2b63770d2a213e644b5e4097
31 15 66

Layer164: getitem

getitem-e52307ee3a9933dec0a20216e8e64c36

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-49c2d13a2b63770d2a213e644b5e4097
31 15 66

Layer165: add

add-fd185f0782899d342790d8f57accc265

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-e52307ee3a9933dec0a20216e8e64c36
getitem-7c6a05bfd3aa5467ba2f2c4e54386df5
31 15 66

Layer166: multiply

multiply-6028701695f80bf17099f116c5a47b5b

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-5fa83ebe43d13d63acea49686b577435
66 1 31 16 31

Layer167: sum

sum-e737734e55f7a84e460029e87812ee6b

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-6028701695f80bf17099f116c5a47b5b
66 1 31 16 31

Layer168: sum-aggregate

sum-aggregate-3cb8388c67e3f6c20b0c75209a85c2c5

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-e737734e55f7a84e460029e87812ee6b
31 16 66

Layer169: getitem

getitem-b891f9274df5e441243a95032a5fad37

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-3cb8388c67e3f6c20b0c75209a85c2c5
31 15 66

Layer170: getitem

getitem-60d1a0e26f4031b87176b325a15379db

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-3cb8388c67e3f6c20b0c75209a85c2c5
31 15 66

Layer171: add

add-502ea3935b0581bcfeed68b66a6520d7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-60d1a0e26f4031b87176b325a15379db
getitem-b891f9274df5e441243a95032a5fad37
31 15 66

Layer172: multiply

multiply-b2bb06384854d083040e00f7f46737c7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-4d9a32c7f7fb356b2d1b682139ab30c1
66 1 31 16 31

Layer173: sum

sum-2c92da29364cb54d0d134e841f05bdaa

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-b2bb06384854d083040e00f7f46737c7
66 1 31 16 31

Layer174: sum-aggregate

sum-aggregate-1a7756d9ae55615eaf739d5d4e47492e

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-2c92da29364cb54d0d134e841f05bdaa
31 16 66

Layer175: getitem

getitem-76c948365409acbb2332f465bb387e2d

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-1a7756d9ae55615eaf739d5d4e47492e
31 15 66

Layer176: getitem

getitem-b3ad985bd8e49d99dcd93b5d38e54134

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-1a7756d9ae55615eaf739d5d4e47492e
31 15 66

Layer177: add

add-57c74d4ab1e40384c0fb9296037546fd

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-b3ad985bd8e49d99dcd93b5d38e54134
getitem-76c948365409acbb2332f465bb387e2d
31 15 66

Layer178: multiply

multiply-a676502a18cfe6073770ae1e7ff6ba68

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-a79cc39c97fad335fb9e4be24296df42
66 1 31 16 31

Layer179: sum

sum-7048f9b301ae973332b7ce6bbeacdaf4

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-a676502a18cfe6073770ae1e7ff6ba68
66 1 31 16 31

Layer180: sum-aggregate

sum-aggregate-3977e40d9b16fbfde0836fca54189120

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-7048f9b301ae973332b7ce6bbeacdaf4
31 16 66

Layer181: getitem

getitem-a10304833921840282917f1d27f841fb

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-3977e40d9b16fbfde0836fca54189120
31 15 66

Layer182: getitem

getitem-59c5a5a38185b0530a84ef5dd0af6cc1

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-3977e40d9b16fbfde0836fca54189120
31 15 66

Layer183: add

add-0e51e10d7527debad5e8af3c3dd48d05

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-a10304833921840282917f1d27f841fb
getitem-59c5a5a38185b0530a84ef5dd0af6cc1
31 15 66

Layer184: multiply

multiply-2cc53170406dc105308fa3347b05ebcd

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-64a0001b212fa98687394e539be030f3
66 1 31 16 31

Layer185: sum

sum-55dfc945920fbad13a8c11a4caae36aa

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-2cc53170406dc105308fa3347b05ebcd
66 1 31 16 31

Layer186: sum-aggregate

sum-aggregate-4df1afce0744cafdfed704826b7abe14

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-55dfc945920fbad13a8c11a4caae36aa
31 16 66

Layer187: getitem

getitem-ce1aa6d9f96502a794ee139117284ce8

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-4df1afce0744cafdfed704826b7abe14
31 15 66

Layer188: getitem

getitem-2ca31078f373c1033ce6c7127d920918

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-4df1afce0744cafdfed704826b7abe14
31 15 66

Layer189: add

add-76c919463bbd051d5e7d5ba8a9c1411e

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-ce1aa6d9f96502a794ee139117284ce8
getitem-2ca31078f373c1033ce6c7127d920918
31 15 66

Layer190: multiply

multiply-17af41da1a823ee64c7d86cb7aa4b3e5

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-7f08f3559e3e770a1346bc1b23e0a23e
66 1 31 16 31

Layer191: sum

sum-0345057c2d806c19e6718ddf25fa21e7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-17af41da1a823ee64c7d86cb7aa4b3e5
66 1 31 16 31

Layer192: sum-aggregate

sum-aggregate-43989904ccc528bb761056c7df2b5c5f

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-0345057c2d806c19e6718ddf25fa21e7
31 16 66

Layer193: getitem

getitem-d578756455d211218d6029f40a98e4f2

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-43989904ccc528bb761056c7df2b5c5f
31 15 66

Layer194: getitem

getitem-372b13cb4478a5d0a0ead5e1c03f3ae3

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-43989904ccc528bb761056c7df2b5c5f
31 15 66

Layer195: add

add-6333724369861bd4e68ec13e49f3ec4f

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-d578756455d211218d6029f40a98e4f2
getitem-372b13cb4478a5d0a0ead5e1c03f3ae3
31 15 66

Layer196: multiply

multiply-cda5f7452a46dd60e025f957c056379b

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-cf6cadb71041373e6c54886db97961d6
66 1 31 16 31

Layer197: sum

sum-7845a188e8140b84848858d5c1578cde

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-cda5f7452a46dd60e025f957c056379b
66 1 31 16 31

Layer198: sum-aggregate

sum-aggregate-da145a162353e820820b9a9ea719fc96

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-7845a188e8140b84848858d5c1578cde
31 16 66

Layer199: getitem

getitem-cffbafdb76d4442311dc94f1a704ccf3

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-da145a162353e820820b9a9ea719fc96
31 15 66

Layer200: getitem

getitem-f00ccd7c595b1c3a46a002e817dadc97

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-da145a162353e820820b9a9ea719fc96
31 15 66

Layer201: add

add-86178625b664a8e57fa236b6d072ba82

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-cffbafdb76d4442311dc94f1a704ccf3
getitem-f00ccd7c595b1c3a46a002e817dadc97
31 15 66

Layer202: multiply

multiply-6276ba69bf57c345f115d4ece2e2e615

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-04dc77abe258c713cec706280f505a3e
add-9484b5315826314451796858f42b0555
66 1 31 16 31

Layer203: sum

sum-021d526ac9bab01d0108e0b6d2276b65

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 31, 16, 31)
dtype float64
chunksize (1, 31, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-6276ba69bf57c345f115d4ece2e2e615
66 1 31 16 31

Layer204: sum-aggregate

sum-aggregate-f48205c7f47937414a84f3d496a00c8f

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 16, 31)
dtype float64
chunksize (1, 16, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-021d526ac9bab01d0108e0b6d2276b65
31 16 66

Layer205: getitem

getitem-481bb8cb26d9325a8558854cb1d47c98

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-f48205c7f47937414a84f3d496a00c8f
31 15 66

Layer206: getitem

getitem-cf57e4f5f180cdfb3d9ce0361eecf30e

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-f48205c7f47937414a84f3d496a00c8f
31 15 66

Layer207: add

add-0c834dd8ec66739505328277f666c624

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-cf57e4f5f180cdfb3d9ce0361eecf30e
getitem-481bb8cb26d9325a8558854cb1d47c98
31 15 66

Layer208: array

array-9f192be871f3d2282671dc2fad357805

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (15, 1)
dtype float64
chunksize (15, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
1 15

Layer209: multiply

multiply-e6af881f569fa9e9333272e05783e54a

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-8b40e2d065c71585b8a1bedff40a9bda
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer210: sum

sum-a14f4654895935a8fba13f76f3797207

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-e6af881f569fa9e9333272e05783e54a
31 15 66

Layer211: sum-aggregate

sum-aggregate-6870c764e21d184048b17a2b24934971

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-a14f4654895935a8fba13f76f3797207
31 66

Layer212: getitem

getitem-ac9a2e78fc61d8c623ed0be30cb66b50

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-6870c764e21d184048b17a2b24934971
30 66

Layer213: getitem

getitem-89f2e5a51c392928a8e9e198aad4a217

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-6870c764e21d184048b17a2b24934971
30 66

Layer214: add

add-d70eeda90ad6013d1fb9952dfce8b020

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-89f2e5a51c392928a8e9e198aad4a217
getitem-ac9a2e78fc61d8c623ed0be30cb66b50
30 66

Layer215: multiply

multiply-3ca34825a9dd6141a89f5ac3548c0ad2

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-0c3b9dd59e978cbdd9fbb1a989a13eaf
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer216: sum

sum-13b978f5efb3cf9290d4f3869c262f34

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-3ca34825a9dd6141a89f5ac3548c0ad2
31 15 66

Layer217: sum-aggregate

sum-aggregate-6e5b130cf425b856279b2bc25eb04eec

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-13b978f5efb3cf9290d4f3869c262f34
31 66

Layer218: getitem

getitem-418586b62e3c2c84916adc89c287c2cf

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-6e5b130cf425b856279b2bc25eb04eec
30 66

Layer219: getitem

getitem-431a637508e463bb64a08be41e517717

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-6e5b130cf425b856279b2bc25eb04eec
30 66

Layer220: add

add-1351b19060667fd203933362aa20f536

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-418586b62e3c2c84916adc89c287c2cf
getitem-431a637508e463bb64a08be41e517717
30 66

Layer221: multiply

multiply-11c4c9f4973879ed16097b6fc1b28fe7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-fd185f0782899d342790d8f57accc265
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer222: sum

sum-ba3e6f90b9d8eeecd393dd7790018777

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-11c4c9f4973879ed16097b6fc1b28fe7
31 15 66

Layer223: sum-aggregate

sum-aggregate-2f430d5c72ab6d8fc6a44a70351f0e38

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-ba3e6f90b9d8eeecd393dd7790018777
31 66

Layer224: getitem

getitem-10b856ab7d43e156126aaa22c60b4128

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-2f430d5c72ab6d8fc6a44a70351f0e38
30 66

Layer225: getitem

getitem-26a43db0414345d1f90aaa3e6f21c211

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-2f430d5c72ab6d8fc6a44a70351f0e38
30 66

Layer226: add

add-e5afb4bb854a0c06abfc1e20bd81b77a

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-10b856ab7d43e156126aaa22c60b4128
getitem-26a43db0414345d1f90aaa3e6f21c211
30 66

Layer227: multiply

multiply-ab8b43d613240a253f8dc54176b7e6d8

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-502ea3935b0581bcfeed68b66a6520d7
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer228: sum

sum-f3302bee7ec17f7accc183f878bdc5c0

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-ab8b43d613240a253f8dc54176b7e6d8
31 15 66

Layer229: sum-aggregate

sum-aggregate-d06b919d299bbb90d5ec8129a8097ab8

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-f3302bee7ec17f7accc183f878bdc5c0
31 66

Layer230: getitem

getitem-1eb5977d69ff45f88a1be3187fbec828

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-d06b919d299bbb90d5ec8129a8097ab8
30 66

Layer231: getitem

getitem-06fff424126cad5f1f866ad0deb7a3a5

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-d06b919d299bbb90d5ec8129a8097ab8
30 66

Layer232: add

add-f99bac77f7f2e7963ecf591644baf8a1

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-06fff424126cad5f1f866ad0deb7a3a5
getitem-1eb5977d69ff45f88a1be3187fbec828
30 66

Layer233: multiply

multiply-6672736f454ebdad90701256851766c9

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-57c74d4ab1e40384c0fb9296037546fd
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer234: sum

sum-19dcf188190902dc016c4727997a3080

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-6672736f454ebdad90701256851766c9
31 15 66

Layer235: sum-aggregate

sum-aggregate-00002c08c5c00ec333b29f307796892e

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-19dcf188190902dc016c4727997a3080
31 66

Layer236: getitem

getitem-e970e826572c39f742e979669dd1596b

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-00002c08c5c00ec333b29f307796892e
30 66

Layer237: getitem

getitem-81197115379704b858033f4da20390c8

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-00002c08c5c00ec333b29f307796892e
30 66

Layer238: add

add-cbe4e1f6869aabb6bdb2c013e797e57e

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-e970e826572c39f742e979669dd1596b
getitem-81197115379704b858033f4da20390c8
30 66

Layer239: multiply

multiply-4f2b4002c0ae644137baba11ad39dffb

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-0e51e10d7527debad5e8af3c3dd48d05
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer240: sum

sum-6945ec8ba3295a001e8f85e9a17a7c7e

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-4f2b4002c0ae644137baba11ad39dffb
31 15 66

Layer241: sum-aggregate

sum-aggregate-04efc1a9829b8c76276e084b1058c707

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-6945ec8ba3295a001e8f85e9a17a7c7e
31 66

Layer242: getitem

getitem-742f98729896a445b35b7d64ef01eff5

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-04efc1a9829b8c76276e084b1058c707
30 66

Layer243: getitem

getitem-f9c2ed98f629fc5b304dfeab143c3696

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-04efc1a9829b8c76276e084b1058c707
30 66

Layer244: add

add-d85e118016e040d103a2d502bfe3879b

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-f9c2ed98f629fc5b304dfeab143c3696
getitem-742f98729896a445b35b7d64ef01eff5
30 66

Layer245: multiply

multiply-3a00f64575a0872f25b6a1fb9ac10789

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-76c919463bbd051d5e7d5ba8a9c1411e
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer246: sum

sum-dd85ce10ba21139566689e5d77e46578

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-3a00f64575a0872f25b6a1fb9ac10789
31 15 66

Layer247: sum-aggregate

sum-aggregate-75de81d5017e424bb56403f39fb39750

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-dd85ce10ba21139566689e5d77e46578
31 66

Layer248: getitem

getitem-9556d554ac7a68ec152deed2f3d1c5da

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-75de81d5017e424bb56403f39fb39750
30 66

Layer249: getitem

getitem-f77b46f3acc0c79de46375ec8af3eaf6

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-75de81d5017e424bb56403f39fb39750
30 66

Layer250: add

add-2b2bb6a7839b0532cc5afe896b5a5f3c

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-9556d554ac7a68ec152deed2f3d1c5da
getitem-f77b46f3acc0c79de46375ec8af3eaf6
30 66

Layer251: multiply

multiply-10aa32e1378ece433febb6860fe451cb

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-9f192be871f3d2282671dc2fad357805
add-6333724369861bd4e68ec13e49f3ec4f
31 15 66

Layer252: sum

sum-900923986a187cfa7f2cb2bf7228eefe

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-10aa32e1378ece433febb6860fe451cb
31 15 66

Layer253: sum-aggregate

sum-aggregate-53e8c1a8fde15888cc1b8c8c291f2016

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-900923986a187cfa7f2cb2bf7228eefe
31 66

Layer254: getitem

getitem-fc4085b3119f4211f97b9921c8995348

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-53e8c1a8fde15888cc1b8c8c291f2016
30 66

Layer255: getitem

getitem-eb5941ad31e50fb9753122e2e9638930

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-53e8c1a8fde15888cc1b8c8c291f2016
30 66

Layer256: add

add-f92069fd99da480052725063c7337e3c

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-eb5941ad31e50fb9753122e2e9638930
getitem-fc4085b3119f4211f97b9921c8995348
30 66

Layer257: multiply

multiply-a80422acc2373f1e318a6e61cb8123b3

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-9f192be871f3d2282671dc2fad357805
add-86178625b664a8e57fa236b6d072ba82
31 15 66

Layer258: sum

sum-824db0446ba1115e7e9e080d52a0bff5

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-a80422acc2373f1e318a6e61cb8123b3
31 15 66

Layer259: sum-aggregate

sum-aggregate-9836c85a80c83d35aea47f4cafc2db8d

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-824db0446ba1115e7e9e080d52a0bff5
31 66

Layer260: getitem

getitem-44059cb7cfb1ed725a21b70777ab7ebd

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-9836c85a80c83d35aea47f4cafc2db8d
30 66

Layer261: getitem

getitem-475f971ba0954cf7a8e842f927a4fb9b

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-9836c85a80c83d35aea47f4cafc2db8d
30 66

Layer262: add

add-d4184202d5abbe8cb1c01a7137b7404a

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-44059cb7cfb1ed725a21b70777ab7ebd
getitem-475f971ba0954cf7a8e842f927a4fb9b
30 66

Layer263: multiply

multiply-79c917132f5442c72cc677d7ac267461

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-0c834dd8ec66739505328277f666c624
array-9f192be871f3d2282671dc2fad357805
31 15 66

Layer264: sum

sum-fcbf90a9b70c41470441c75b2cb8a4a6

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 15, 31)
dtype float64
chunksize (1, 15, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-79c917132f5442c72cc677d7ac267461
31 15 66

Layer265: sum-aggregate

sum-aggregate-ec8776b50cd2b2a88d7217a5799e6b2e

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 31)
dtype float64
chunksize (1, 31)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-fcbf90a9b70c41470441c75b2cb8a4a6
31 66

Layer266: getitem

getitem-d1c201ef454d5bc92023b30b6c89f448

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-ec8776b50cd2b2a88d7217a5799e6b2e
30 66

Layer267: getitem

getitem-f535384e3c328a8af9c7adbb7c8baa62

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-ec8776b50cd2b2a88d7217a5799e6b2e
30 66

Layer268: add

add-6cb3dbb06fff2c4b8cf160ba4955d904

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-d1c201ef454d5bc92023b30b6c89f448
getitem-f535384e3c328a8af9c7adbb7c8baa62
30 66

Layer269: array

array-541c5e1a827085565b5f5734f2dc8ea3

layer_type MaterializedLayer
is_materialized True
number of outputs 1
shape (30,)
dtype float64
chunksize (30,)
type dask.array.core.Array
chunk_type numpy.ndarray
30 1

Layer270: multiply

multiply-4133836b0380aceb0e567f3bb659fbf7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-d70eeda90ad6013d1fb9952dfce8b020
array-541c5e1a827085565b5f5734f2dc8ea3
30 66

Layer271: sum

sum-7e23bb00a27592a76f6e8346e8ac3dc1

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-4133836b0380aceb0e567f3bb659fbf7
30 66

Layer272: sum-aggregate

sum-aggregate-586e264ae5f586a64101787d2ac04a0f

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-7e23bb00a27592a76f6e8346e8ac3dc1
66 1

Layer273: multiply

multiply-da267888620199d4dadfd852b4bdbefb

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-1351b19060667fd203933362aa20f536
array-541c5e1a827085565b5f5734f2dc8ea3
30 66

Layer274: sum

sum-900bec43215a7ae2c8daecf91e7940cb

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-da267888620199d4dadfd852b4bdbefb
30 66

Layer275: sum-aggregate

sum-aggregate-32ff41a56d39b6d055be33d87ae57431

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-900bec43215a7ae2c8daecf91e7940cb
66 1

Layer276: multiply

multiply-e7332cfae63118cc58aa8fd40aeff0ae

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-541c5e1a827085565b5f5734f2dc8ea3
add-e5afb4bb854a0c06abfc1e20bd81b77a
30 66

Layer277: sum

sum-3066bb65333134ddb37727b1da53d1c6

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-e7332cfae63118cc58aa8fd40aeff0ae
30 66

Layer278: sum-aggregate

sum-aggregate-3207581657bd3db9be326512118f932c

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-3066bb65333134ddb37727b1da53d1c6
66 1

Layer279: multiply

multiply-a2866b5eda35137bcff430a1afeea67f

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-f99bac77f7f2e7963ecf591644baf8a1
array-541c5e1a827085565b5f5734f2dc8ea3
30 66

Layer280: sum

sum-4c3722a55b417ad32ae7c6f0ce438d42

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-a2866b5eda35137bcff430a1afeea67f
30 66

Layer281: sum-aggregate

sum-aggregate-3302ec768587c52ec589f44f378faa33

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-4c3722a55b417ad32ae7c6f0ce438d42
66 1

Layer282: multiply

multiply-15483d1cb43f6560d71ba799e0cd71ba

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-cbe4e1f6869aabb6bdb2c013e797e57e
array-541c5e1a827085565b5f5734f2dc8ea3
30 66

Layer283: sum

sum-bcc639de5b6b16e9f58fb04a7fcb0454

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-15483d1cb43f6560d71ba799e0cd71ba
30 66

Layer284: sum-aggregate

sum-aggregate-26b728da171ab6ae3c3460c80fef837f

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-bcc639de5b6b16e9f58fb04a7fcb0454
66 1

Layer285: multiply

multiply-a4c8d2e3194e235c5b7d0bb44afcea9b

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-d85e118016e040d103a2d502bfe3879b
array-541c5e1a827085565b5f5734f2dc8ea3
30 66

Layer286: sum

sum-a0606f7f56ae435a1405920c27d9f398

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-a4c8d2e3194e235c5b7d0bb44afcea9b
30 66

Layer287: sum-aggregate

sum-aggregate-ebe9285abab4b085637ed4d1f9c4a37d

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-a0606f7f56ae435a1405920c27d9f398
66 1

Layer288: multiply

multiply-cd14c505cc18b244ba974a5211614ab6

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-541c5e1a827085565b5f5734f2dc8ea3
add-2b2bb6a7839b0532cc5afe896b5a5f3c
30 66

Layer289: sum

sum-64a06b1d131e0c16d90e044f565d7804

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-cd14c505cc18b244ba974a5211614ab6
30 66

Layer290: sum-aggregate

sum-aggregate-8db95dcf82e04e386a0fa9ec59eb8a28

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-64a06b1d131e0c16d90e044f565d7804
66 1

Layer291: multiply

multiply-3443f83b98bfb09e71062f7bb407b3f7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-f92069fd99da480052725063c7337e3c
array-541c5e1a827085565b5f5734f2dc8ea3
30 66

Layer292: sum

sum-351d88921769b6b8c13af8080952f41e

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-3443f83b98bfb09e71062f7bb407b3f7
30 66

Layer293: sum-aggregate

sum-aggregate-752df656c873400dafb9c462752181f0

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-351d88921769b6b8c13af8080952f41e
66 1

Layer294: multiply

multiply-139fd30338266b396949d44ee7b77bed

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on array-541c5e1a827085565b5f5734f2dc8ea3
add-d4184202d5abbe8cb1c01a7137b7404a
30 66

Layer295: sum

sum-60d81756819b866c3008e54f53968cb5

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-139fd30338266b396949d44ee7b77bed
30 66

Layer296: sum-aggregate

sum-aggregate-c1b5d50c4f34b030b1e4c98d5302b222

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-60d81756819b866c3008e54f53968cb5
66 1

Layer297: mul

mul-a02100288902a406a0ec22beca2c5a31

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-c1b5d50c4f34b030b1e4c98d5302b222
66 1

Layer298: gt

gt-714e741cf335056587745dffd96e291a

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype bool
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-a02100288902a406a0ec22beca2c5a31
66 1

Layer299: where

where-d5563b454972f564d0968075d8015f5f

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-a02100288902a406a0ec22beca2c5a31
gt-714e741cf335056587745dffd96e291a
66 1

Layer300: truediv

truediv-0bc86288e4022d98b55125d37ba85a76

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-3302ec768587c52ec589f44f378faa33
where-d5563b454972f564d0968075d8015f5f
66 1

Layer301: mul

mul-53c360f72e7a40b206f5446d4490880c

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on truediv-0bc86288e4022d98b55125d37ba85a76
where-d5563b454972f564d0968075d8015f5f
66 1

Layer302: mul

mul-35cd9a4570c6ae4f0a425ca77f5764a7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on truediv-0bc86288e4022d98b55125d37ba85a76
mul-53c360f72e7a40b206f5446d4490880c
66 1

Layer303: mul

mul-9f53c3390db42135513679401f9b0504

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-35cd9a4570c6ae4f0a425ca77f5764a7
66 1

Layer304: sub

sub-eabc4993496c01df81f3b5533f70a840

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-9f53c3390db42135513679401f9b0504
sum-aggregate-26b728da171ab6ae3c3460c80fef837f
66 1

Layer305: multiply

multiply-e0a95d3902364d2ef4e38c150d16507d

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sub-eabc4993496c01df81f3b5533f70a840
66 1

Layer306: getitem

getitem-8466bb00bd089b1c0f96497b31104b2c

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (1, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-e0a95d3902364d2ef4e38c150d16507d
66 1

Layer307: truediv

truediv-448c28d2f7603fbb1a69121b7fc1c431

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-ebe9285abab4b085637ed4d1f9c4a37d
where-d5563b454972f564d0968075d8015f5f
66 1

Layer308: mul

mul-ef97a43d5e2b4adbde71407bb5a7943b

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on truediv-448c28d2f7603fbb1a69121b7fc1c431
where-d5563b454972f564d0968075d8015f5f
66 1

Layer309: mul

mul-201ee85bbc916475785e0efdb96f583d

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on truediv-0bc86288e4022d98b55125d37ba85a76
mul-ef97a43d5e2b4adbde71407bb5a7943b
66 1

Layer310: mul

mul-ef3a0da01446c46e7e4230df0963d235

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-201ee85bbc916475785e0efdb96f583d
66 1

Layer311: sub

sub-19331ae5877d4c4530206a193e48d071

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-586e264ae5f586a64101787d2ac04a0f
mul-ef3a0da01446c46e7e4230df0963d235
66 1

Layer312: multiply

multiply-00791eba00464aeb2d6972cd7be67b33

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sub-19331ae5877d4c4530206a193e48d071
66 1

Layer313: getitem

getitem-e6838f96e2ee79c2690ec59bf54bb574

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (1, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-00791eba00464aeb2d6972cd7be67b33
66 1

Layer314: mul

mul-5eae2647e7ce02d7cd341f2fd0a595ea

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on truediv-448c28d2f7603fbb1a69121b7fc1c431
mul-ef97a43d5e2b4adbde71407bb5a7943b
66 1

Layer315: mul

mul-9af8f4e70b788b019e9e6eb651eba6b4

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-5eae2647e7ce02d7cd341f2fd0a595ea
66 1

Layer316: sub

sub-14cccb6ece30a09fa27481ba64d3767e

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-9af8f4e70b788b019e9e6eb651eba6b4
sum-aggregate-8db95dcf82e04e386a0fa9ec59eb8a28
66 1

Layer317: multiply

multiply-d166f79077d874dbc972d621b4a6111a

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sub-14cccb6ece30a09fa27481ba64d3767e
66 1

Layer318: getitem

getitem-da69250c61858a28a054ed91bd5190eb

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (1, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-d166f79077d874dbc972d621b4a6111a
66 1

Layer319: truediv

truediv-2f5672b7af60c0c16c6a42ab5f45398f

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-752df656c873400dafb9c462752181f0
where-d5563b454972f564d0968075d8015f5f
66 1

Layer320: mul

mul-e037b4ce3fe3fe59df114f22fda0f4bf

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on truediv-2f5672b7af60c0c16c6a42ab5f45398f
where-d5563b454972f564d0968075d8015f5f
66 1

Layer321: mul

mul-569fdb7c429ba143c93e23c5efb2434e

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-e037b4ce3fe3fe59df114f22fda0f4bf
truediv-0bc86288e4022d98b55125d37ba85a76
66 1

Layer322: mul

mul-0fcf42af0054933777cfa1c960fc8353

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-569fdb7c429ba143c93e23c5efb2434e
66 1

Layer323: sub

sub-5169948cb10b47fe087a21e3ccaf72c1

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-32ff41a56d39b6d055be33d87ae57431
mul-0fcf42af0054933777cfa1c960fc8353
66 1

Layer324: multiply

multiply-36688e46054283d95fdde9c9ae6b09de

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sub-5169948cb10b47fe087a21e3ccaf72c1
66 1

Layer325: getitem

getitem-b184d090e6de5fc9a908cf62826be075

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (1, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-36688e46054283d95fdde9c9ae6b09de
66 1

Layer326: mul

mul-3be056b592c966606ea0c87bb6cdc5df

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-e037b4ce3fe3fe59df114f22fda0f4bf
truediv-448c28d2f7603fbb1a69121b7fc1c431
66 1

Layer327: mul

mul-f5153d9de85b4352758e92938ddf2264

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-3be056b592c966606ea0c87bb6cdc5df
66 1

Layer328: sub

sub-6dd3fb763bb1f381957c64416b11b3d1

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-f5153d9de85b4352758e92938ddf2264
sum-aggregate-3207581657bd3db9be326512118f932c
66 1

Layer329: multiply

multiply-71a1127f5f5da4c32d1eb4893ad78513

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sub-6dd3fb763bb1f381957c64416b11b3d1
66 1

Layer330: getitem

getitem-9daa0e6c65f34eeb296861d5b7a2e589

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (1, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-71a1127f5f5da4c32d1eb4893ad78513
66 1

Layer331: mul

mul-6f8b4424f67ee938484ae8ce450e354b

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-e037b4ce3fe3fe59df114f22fda0f4bf
truediv-2f5672b7af60c0c16c6a42ab5f45398f
66 1

Layer332: mul

mul-51313b1f34cce8a39db8f29c64ce6ff2

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-6f8b4424f67ee938484ae8ce450e354b
66 1

Layer333: multiply

multiply-2c88e496264b5aa8d933e03a108762f1

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on add-6cb3dbb06fff2c4b8cf160ba4955d904
array-541c5e1a827085565b5f5734f2dc8ea3
30 66

Layer334: sum

sum-63436ebf6248465f9315bf00135714ad

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66, 30)
dtype float64
chunksize (1, 30)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-2c88e496264b5aa8d933e03a108762f1
30 66

Layer335: sum-aggregate

sum-aggregate-1ee3bf1a7b113d4c93e4b84790d64eac

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-63436ebf6248465f9315bf00135714ad
66 1

Layer336: sub

sub-9d2525c3dc701ac4ab08e3b71f1da9e7

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sum-aggregate-1ee3bf1a7b113d4c93e4b84790d64eac
mul-51313b1f34cce8a39db8f29c64ce6ff2
66 1

Layer337: multiply

multiply-b3cab12185e5ab700799a26b8cfec7cf

layer_type Blockwise
is_materialized False
number of outputs 66
shape (66,)
dtype float64
chunksize (1,)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on sub-9d2525c3dc701ac4ab08e3b71f1da9e7
66 1

Layer338: getitem

getitem-75399cc31eb96155c2d5675f594f747a

layer_type MaterializedLayer
is_materialized True
number of outputs 66
shape (1, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on multiply-b3cab12185e5ab700799a26b8cfec7cf
66 1

Layer339: concatenate

concatenate-41e1b2ef868efa12e8371d4007619a74

layer_type MaterializedLayer
is_materialized True
number of outputs 396
shape (6, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on getitem-b184d090e6de5fc9a908cf62826be075
getitem-e6838f96e2ee79c2690ec59bf54bb574
getitem-8466bb00bd089b1c0f96497b31104b2c
getitem-9daa0e6c65f34eeb296861d5b7a2e589
getitem-75399cc31eb96155c2d5675f594f747a
getitem-da69250c61858a28a054ed91bd5190eb
66 6

Layer340: mul

mul-f1fb79c92b04efc08dcc96e96a3cd106

layer_type Blockwise
is_materialized False
number of outputs 396
shape (6, 66)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on concatenate-41e1b2ef868efa12e8371d4007619a74
66 6

Layer341: transpose

transpose-83dbba540cff29fcb6ad98881a3cc30b

layer_type Blockwise
is_materialized False
number of outputs 396
shape (66, 6)
dtype float64
chunksize (1, 1)
type dask.array.core.Array
chunk_type numpy.ndarray
depends on mul-f1fb79c92b04efc08dcc96e96a3cd106
6 66

Call compute to get final data. This is efficient if we plan to make multiple plots, since it avoids multiple evaluations of the task graph:

ion_int_moments = ion_int_moments.compute()
elc_int_moments = elc_int_moments.compute()

Validating the results#

Let us first compare the L2 and integrated density:

fig, axes = plt.subplots(2, 1, figsize=(12, 8), sharex=True)

axes[0].plot(ion_moments.time, ion_moments.numberdensity, "-k", label="L2 density")
axes[0].plot(ion_int_moments.time, ion_int_moments.N, "-r", label="Integrated density")

axes[1].plot(elc_moments.time, elc_moments.numberdensity, "-k")
axes[1].plot(elc_int_moments.time, elc_int_moments.N, "-r")

mms.plot.add_panel_label(axes[0], x=0.02, y=0.95, text="Ion", va="top")
mms.plot.add_panel_label(axes[1], x=0.02, y=0.95, text="Electron", va="top")
axes[0].legend(frameon=False, loc="upper right")
for i, ax in enumerate(axes):
    ax.set_ylabel(f"{ion_moments.numberdensity.pint.units:latex}")

mms.plot.autoformat(axes)
plt.show()
../_images/fpi-distribution_13_0.png

Note

The discrepancies are because the grid is different from what the FPI team uses to integrate for L2 moments. But also, the integration method is different. xarray.DataArray.integrate uses trapezoidal integration. However, this is quite good agreement!

fig, axes = plt.subplots(6, 1, figsize=(12, 10), sharex=True)

axes[0].plot(ion_moments.time, ion_moments.bulkv_dbcs.sel(rank_1="x"), "-k", label="L2")
axes[1].plot(ion_moments.time, ion_moments.bulkv_dbcs.sel(rank_1="y"), "-k")
axes[2].plot(ion_moments.time, ion_moments.bulkv_dbcs.sel(rank_1="z"), "-k")
axes[3].plot(elc_moments.time, elc_moments.bulkv_dbcs.sel(rank_1="x"), "-k")
axes[4].plot(elc_moments.time, elc_moments.bulkv_dbcs.sel(rank_1="y"), "-k")
axes[5].plot(elc_moments.time, elc_moments.bulkv_dbcs.sel(rank_1="z"), "-k")

axes[0].plot(ion_int_moments.time, ion_int_moments.V.sel(rank_1="x"), "-r", label="Integrated")
axes[1].plot(ion_int_moments.time, ion_int_moments.V.sel(rank_1="y"), "-r")
axes[2].plot(ion_int_moments.time, ion_int_moments.V.sel(rank_1="z"), "-r")
axes[3].plot(elc_int_moments.time, elc_int_moments.V.sel(rank_1="x"), "-r")
axes[4].plot(elc_int_moments.time, elc_int_moments.V.sel(rank_1="y"), "-r")
axes[5].plot(elc_int_moments.time, elc_int_moments.V.sel(rank_1="z"), "-r")

labels = ["$V_{ix}$", "$V_{iy}$", "$V_{iz}$", "$V_{ex}$", "$V_{ey}$", "$V_{ez}$"]
axes[0].legend(frameon=False, loc="upper right")
for i, ax in enumerate(axes):
    mms.plot.add_panel_label(axes[i], x=0.01, y=0.91, text=labels[i], va="top")

mms.plot.autoformat(axes)
plt.show()
../_images/fpi-distribution_14_0.png

For ions:

fig, axes = plt.subplots(6, 1, figsize=(12, 12), sharex=True)

axes[0].plot(ion_moments.time, ion_moments.prestensor_dbcs.sel(rank_2="xx"), "-k", label="L2")
axes[1].plot(ion_moments.time, ion_moments.prestensor_dbcs.sel(rank_2="yy"), "-k")
axes[2].plot(ion_moments.time, ion_moments.prestensor_dbcs.sel(rank_2="zz"), "-k")
axes[3].plot(ion_moments.time, ion_moments.prestensor_dbcs.sel(rank_2="xy"), "-k")
axes[4].plot(ion_moments.time, ion_moments.prestensor_dbcs.sel(rank_2="xz"), "-k")
axes[5].plot(ion_moments.time, ion_moments.prestensor_dbcs.sel(rank_2="yz"), "-k")

axes[0].plot(ion_int_moments.time, ion_int_moments.P.sel(rank_2="xx"), "-r", label="Integrated")
axes[1].plot(ion_int_moments.time, ion_int_moments.P.sel(rank_2="yy"), "-r")
axes[2].plot(ion_int_moments.time, ion_int_moments.P.sel(rank_2="zz"), "-r")
axes[3].plot(ion_int_moments.time, ion_int_moments.P.sel(rank_2="xy"), "-r")
axes[4].plot(ion_int_moments.time, ion_int_moments.P.sel(rank_2="xz"), "-r")
axes[5].plot(ion_int_moments.time, ion_int_moments.P.sel(rank_2="yz"), "-r")

labels = ["$P_{xx}$", "$P_{yy}$", "$P_{zz}$", "$P_{xy}$", "$P_{xz}$", "$P_{yz}$"]
axes[0].legend(frameon=False, loc="upper right")
for i, ax in enumerate(axes):
    mms.plot.add_panel_label(axes[i], x=0.01, y=0.91, text=labels[i], va="top")

mms.plot.autoformat(axes)
plt.show()
../_images/fpi-distribution_15_0.png

For electrons:

fig, axes = plt.subplots(6, 1, figsize=(12, 10), sharex=True)

axes[0].plot(elc_moments.time, elc_moments.prestensor_dbcs.sel(rank_2="xx"), "-k", label="L2")
axes[1].plot(elc_moments.time, elc_moments.prestensor_dbcs.sel(rank_2="yy"), "-k")
axes[2].plot(elc_moments.time, elc_moments.prestensor_dbcs.sel(rank_2="zz"), "-k")
axes[3].plot(elc_moments.time, elc_moments.prestensor_dbcs.sel(rank_2="xy"), "-k")
axes[4].plot(elc_moments.time, elc_moments.prestensor_dbcs.sel(rank_2="xz"), "-k")
axes[5].plot(elc_moments.time, elc_moments.prestensor_dbcs.sel(rank_2="yz"), "-k")

axes[0].plot(elc_int_moments.time, elc_int_moments.P.sel(rank_2="xx"), "-r", label="Integrated")
axes[1].plot(elc_int_moments.time, elc_int_moments.P.sel(rank_2="yy"), "-r")
axes[2].plot(elc_int_moments.time, elc_int_moments.P.sel(rank_2="zz"), "-r")
axes[3].plot(elc_int_moments.time, elc_int_moments.P.sel(rank_2="xy"), "-r")
axes[4].plot(elc_int_moments.time, elc_int_moments.P.sel(rank_2="xz"), "-r")
axes[5].plot(elc_int_moments.time, elc_int_moments.P.sel(rank_2="yz"), "-r")

labels = ["$P_{xx}$", "$P_{yy}$", "$P_{zz}$", "$P_{xy}$", "$P_{xz}$", "$P_{yz}$"]
axes[0].legend(frameon=False, loc="upper right")
for i, ax in enumerate(axes):
    mms.plot.add_panel_label(axes[i], x=0.01, y=0.91, text=labels[i], va="top")

mms.plot.autoformat(axes)
plt.show()
../_images/fpi-distribution_16_0.png

Note

The electron moments have better agreement here. That means the defined grid fits the electron distribution. One needs to play around more with the ion grid.