DASK

DASK#

Let’s use EOReader with Dask.

Note: This is experimental for now, use it at your own risk !

# Imports
import os
from dask.distributed import Client, LocalCluster
from eoreader.reader import Reader
from eoreader.bands import RED
from eoreader.env_vars import USE_DASK

# Ensure EOReader uses dask
os.environ[USE_DASK] = "1"

# Create local cluster
with LocalCluster(
        n_workers=4, threads_per_worker=4, processes=True
) as cluster, Client(cluster):
    # Create the reader
    reader = Reader()

    # Open your product
    path = os.path.join("/home", "prods", "LANDSATS_COL2",
                        "LM05_L1TP_200029_19841014_20200902_02_T2.tar")
    prod = reader.open(path, remove_tmp=True)

    # Load this band
    red = prod.load(RED)[RED]

# Plot band
red[:, ::10, ::10].plot(cmap="Reds_r")
/home/docs/checkouts/readthedocs.org/user_builds/eoreader/envs/stable/lib/python3.9/site-packages/dask/dataframe/__init__.py:42: FutureWarning: 
Dask dataframe query planning is disabled because dask-expr is not installed.

You can install it with `pip install dask[dataframe]` or `conda install dask`.
This will raise in a future version.

  warnings.warn(msg, FutureWarning)
There is no existing products in EOReader corresponding to /home/prods/LANDSATS_COL2/LM05_L1TP_200029_19841014_20200902_02_T2.tar.
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[1], line 24
     21     prod = reader.open(path, remove_tmp=True)
     23     # Load this band
---> 24     red = prod.load(RED)[RED]
     26 # Plot band
     27 red[:, ::10, ::10].plot(cmap="Reds_r")

AttributeError: 'NoneType' object has no attribute 'load'