Setting up the environment

Setting up the environment#

Before we dive into the data analysis, we need to ensure our notebooks have all the necessary tools and libraries. This step involves installing various Python packages that will help us manipulate data, create visualizations, and interact with our notebook more effectively.

What do you need to install?#

The installation of these packages and extensions may vary depending on the computing environment you are using. Whether it’s Jupyter Notebook, JupyterLab, Google Colab, or another tool like Binder, some steps or commands might be different or unnecessary. Always tailor these installation steps to suit the specific requirements of your chosen platform to ensure smooth operation.

Here the list of the packages our notebook needs to works:

Numerical and Data Handling Libraries:

  • numpy: for numerical computations [documentation].

  • pandas: for data manipulation and analysis [documentation].

  • geopandas: a package to work with geospatial data [documentation].

  • xarray: for working with multi-dimensional arrays of data [documentation].

  • netCDF4: for handling and accessing data stored in .nc files (like our ERA5 data) [documentation].

  • dask: enhances speed and scalability in data processing, useful for large datasets [documentation].

Visualization Libraries:

  • matplotlib: for creating static graphs [documentation].

  • plotly: for creating interactive graphs [documentation].

  • kaleido: for exporting Plotly figures to static images (like PNG) [documentation].

  • folium: for making interactive maps [documentation].

  • cartopy: designed for geospatial data processing in order to produce maps [documentation].

Enhancing Interactivity:

  • ipywidgets: allows us to create interactive elements in the notebook (like sliders, dropdown menus and buttons) [documentation].

  • jupyterlab_widgets: These are necessary just for enabling and managing IPython widgets in JupyterLab [documentation]. So, if you don’t use a JupyterLab environment, you do not need to install it.

Dynamic Path Management

  • pyprojroot: helps us locate the root of our project, enabling consistent referencing of data files and other resources regardless of the computing environment [documentation].

Installing and Enabling Extensions
We use !pip install package-name commands to download and install these packages from the Python Package Index (PyPI). The ! at the beginning of each command tells our Jupyter Notebook to execute these as shell commands. If you want to suppress all output during installation use !pip install package-name -q

!pip install numpy
!pip install pandas
!pip install geopandas 
!pip install xarray
!pip install netCDF4
!pip install "dask[complete]"
!pip install matplotlib
!pip install plotly
!pip install -U kaleido
!pip install folium
!pip install cartopy
!pip install ipywidgets
!pip install pyprojroot
!pip install ipywidgets
Requirement already satisfied: numpy in /home/george/drought-311-venv/lib64/python3.11/site-packages (1.26.4)
Requirement already satisfied: pandas in /home/george/drought-311-venv/lib64/python3.11/site-packages (2.2.2)
Requirement already satisfied: numpy>=1.23.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas) (1.26.4)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas) (2024.1)
Requirement already satisfied: tzdata>=2022.7 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas) (2024.1)
Requirement already satisfied: six>=1.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)
Requirement already satisfied: geopandas in /home/george/drought-311-venv/lib64/python3.11/site-packages (0.14.4)
Requirement already satisfied: fiona>=1.8.21 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from geopandas) (1.9.6)
Requirement already satisfied: numpy>=1.22 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from geopandas) (1.26.4)
Requirement already satisfied: packaging in /home/george/drought-311-venv/lib64/python3.11/site-packages (from geopandas) (24.0)
Requirement already satisfied: pandas>=1.4.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from geopandas) (2.2.2)
Requirement already satisfied: pyproj>=3.3.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from geopandas) (3.6.1)
Requirement already satisfied: shapely>=1.8.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from geopandas) (2.0.4)
Requirement already satisfied: attrs>=19.2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from fiona>=1.8.21->geopandas) (23.2.0)
Requirement already satisfied: certifi in /home/george/drought-311-venv/lib64/python3.11/site-packages (from fiona>=1.8.21->geopandas) (2024.2.2)
Requirement already satisfied: click~=8.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from fiona>=1.8.21->geopandas) (8.1.7)
Requirement already satisfied: click-plugins>=1.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from fiona>=1.8.21->geopandas) (1.1.1)
Requirement already satisfied: cligj>=0.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from fiona>=1.8.21->geopandas) (0.7.2)
Requirement already satisfied: six in /home/george/drought-311-venv/lib64/python3.11/site-packages (from fiona>=1.8.21->geopandas) (1.16.0)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=1.4.0->geopandas) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=1.4.0->geopandas) (2024.1)
Requirement already satisfied: tzdata>=2022.7 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=1.4.0->geopandas) (2024.1)
Requirement already satisfied: xarray in /home/george/drought-311-venv/lib64/python3.11/site-packages (2024.7.0)
Requirement already satisfied: numpy>=1.23 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from xarray) (1.26.4)
Requirement already satisfied: packaging>=23.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from xarray) (24.0)
Requirement already satisfied: pandas>=2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from xarray) (2.2.2)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=2.0->xarray) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=2.0->xarray) (2024.1)
Requirement already satisfied: tzdata>=2022.7 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=2.0->xarray) (2024.1)
Requirement already satisfied: six>=1.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from python-dateutil>=2.8.2->pandas>=2.0->xarray) (1.16.0)
Requirement already satisfied: netCDF4 in /home/george/drought-311-venv/lib64/python3.11/site-packages (1.7.1.post2)
Requirement already satisfied: cftime in /home/george/drought-311-venv/lib64/python3.11/site-packages (from netCDF4) (1.6.3)
Requirement already satisfied: certifi in /home/george/drought-311-venv/lib64/python3.11/site-packages (from netCDF4) (2024.2.2)
Requirement already satisfied: numpy in /home/george/drought-311-venv/lib64/python3.11/site-packages (from netCDF4) (1.26.4)
Requirement already satisfied: dask[complete] in /home/george/drought-311-venv/lib64/python3.11/site-packages (2024.5.1)
Requirement already satisfied: click>=8.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (8.1.7)
Requirement already satisfied: cloudpickle>=1.5.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (3.0.0)
Requirement already satisfied: fsspec>=2021.09.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (2024.5.0)
Requirement already satisfied: packaging>=20.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (24.0)
Requirement already satisfied: partd>=1.2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (1.4.2)
Requirement already satisfied: pyyaml>=5.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (6.0.1)
Requirement already satisfied: toolz>=0.10.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (0.12.1)
Requirement already satisfied: importlib-metadata>=4.13.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (7.1.0)
Requirement already satisfied: pyarrow>=7.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (16.1.0)
Requirement already satisfied: pyarrow-hotfix in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (0.6)
Requirement already satisfied: lz4>=4.3.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (4.3.3)
Requirement already satisfied: zipp>=0.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from importlib-metadata>=4.13.0->dask[complete]) (3.18.2)
Requirement already satisfied: locket in /home/george/drought-311-venv/lib64/python3.11/site-packages (from partd>=1.2.0->dask[complete]) (1.0.0)
Requirement already satisfied: numpy>=1.16.6 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pyarrow>=7.0->dask[complete]) (1.26.4)
Requirement already satisfied: pandas>=1.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (2.2.2)
Requirement already satisfied: dask-expr<1.2,>=1.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (1.1.1)
Requirement already satisfied: bokeh>=2.4.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (3.4.1)
Requirement already satisfied: jinja2>=2.10.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (3.1.4)
Requirement already satisfied: distributed==2024.5.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from dask[complete]) (2024.5.1)
Requirement already satisfied: msgpack>=1.0.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from distributed==2024.5.1->dask[complete]) (1.0.8)
Requirement already satisfied: psutil>=5.7.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from distributed==2024.5.1->dask[complete]) (5.9.8)
Requirement already satisfied: sortedcontainers>=2.0.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from distributed==2024.5.1->dask[complete]) (2.4.0)
Requirement already satisfied: tblib>=1.6.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from distributed==2024.5.1->dask[complete]) (3.0.0)
Requirement already satisfied: tornado>=6.0.4 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from distributed==2024.5.1->dask[complete]) (6.4)
Requirement already satisfied: urllib3>=1.24.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from distributed==2024.5.1->dask[complete]) (2.2.1)
Requirement already satisfied: zict>=3.0.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from distributed==2024.5.1->dask[complete]) (3.0.0)
Requirement already satisfied: contourpy>=1.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from bokeh>=2.4.2->dask[complete]) (1.2.1)
Requirement already satisfied: pillow>=7.1.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from bokeh>=2.4.2->dask[complete]) (10.3.0)
Requirement already satisfied: xyzservices>=2021.09.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from bokeh>=2.4.2->dask[complete]) (2024.4.0)
Requirement already satisfied: MarkupSafe>=2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from jinja2>=2.10.3->dask[complete]) (2.1.5)
Requirement already satisfied: python-dateutil>=2.8.2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=1.3->dask[complete]) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=1.3->dask[complete]) (2024.1)
Requirement already satisfied: tzdata>=2022.7 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pandas>=1.3->dask[complete]) (2024.1)
Requirement already satisfied: six>=1.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from python-dateutil>=2.8.2->pandas>=1.3->dask[complete]) (1.16.0)
Requirement already satisfied: matplotlib in /home/george/drought-311-venv/lib64/python3.11/site-packages (3.9.1)
Requirement already satisfied: contourpy>=1.0.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (1.2.1)
Requirement already satisfied: cycler>=0.10 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (4.51.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (1.4.5)
Requirement already satisfied: numpy>=1.23 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (1.26.4)
Requirement already satisfied: packaging>=20.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (24.0)
Requirement already satisfied: pillow>=8 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (10.3.0)
Requirement already satisfied: pyparsing>=2.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (3.1.2)
Requirement already satisfied: python-dateutil>=2.7 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
Requirement already satisfied: plotly in /home/george/drought-311-venv/lib64/python3.11/site-packages (5.23.0)
Requirement already satisfied: tenacity>=6.2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from plotly) (9.0.0)
Requirement already satisfied: packaging in /home/george/drought-311-venv/lib64/python3.11/site-packages (from plotly) (24.0)
Requirement already satisfied: kaleido in /home/george/drought-311-venv/lib64/python3.11/site-packages (0.2.1)
Requirement already satisfied: folium in /home/george/drought-311-venv/lib64/python3.11/site-packages (0.17.0)
Requirement already satisfied: branca>=0.6.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from folium) (0.7.2)
Requirement already satisfied: jinja2>=2.9 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from folium) (3.1.4)
Requirement already satisfied: numpy in /home/george/drought-311-venv/lib64/python3.11/site-packages (from folium) (1.26.4)
Requirement already satisfied: requests in /home/george/drought-311-venv/lib64/python3.11/site-packages (from folium) (2.31.0)
Requirement already satisfied: xyzservices in /home/george/drought-311-venv/lib64/python3.11/site-packages (from folium) (2024.4.0)
Requirement already satisfied: MarkupSafe>=2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from jinja2>=2.9->folium) (2.1.5)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from requests->folium) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from requests->folium) (3.7)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from requests->folium) (2.2.1)
Requirement already satisfied: certifi>=2017.4.17 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from requests->folium) (2024.2.2)
Requirement already satisfied: cartopy in /home/george/drought-311-venv/lib64/python3.11/site-packages (0.23.0)
Requirement already satisfied: numpy>=1.21 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from cartopy) (1.26.4)
Requirement already satisfied: matplotlib>=3.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from cartopy) (3.9.1)
Requirement already satisfied: shapely>=1.7 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from cartopy) (2.0.4)
Requirement already satisfied: packaging>=20 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from cartopy) (24.0)
Requirement already satisfied: pyshp>=2.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from cartopy) (2.3.1)
Requirement already satisfied: pyproj>=3.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from cartopy) (3.6.1)
Requirement already satisfied: contourpy>=1.0.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib>=3.5->cartopy) (1.2.1)
Requirement already satisfied: cycler>=0.10 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib>=3.5->cartopy) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib>=3.5->cartopy) (4.51.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib>=3.5->cartopy) (1.4.5)
Requirement already satisfied: pillow>=8 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib>=3.5->cartopy) (10.3.0)
Requirement already satisfied: pyparsing>=2.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib>=3.5->cartopy) (3.1.2)
Requirement already satisfied: python-dateutil>=2.7 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from matplotlib>=3.5->cartopy) (2.9.0.post0)
Requirement already satisfied: certifi in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pyproj>=3.3.1->cartopy) (2024.2.2)
Requirement already satisfied: six>=1.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from python-dateutil>=2.7->matplotlib>=3.5->cartopy) (1.16.0)
Requirement already satisfied: ipywidgets in /home/george/drought-311-venv/lib64/python3.11/site-packages (8.1.2)
Requirement already satisfied: comm>=0.1.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (0.2.2)
Requirement already satisfied: ipython>=6.1.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (8.18.1)
Requirement already satisfied: traitlets>=4.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (5.14.3)
Requirement already satisfied: widgetsnbextension~=4.0.10 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (4.0.10)
Requirement already satisfied: jupyterlab-widgets~=3.0.10 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (3.0.10)
Requirement already satisfied: decorator in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)
Requirement already satisfied: jedi>=0.16 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)
Requirement already satisfied: matplotlib-inline in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.7)
Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.43)
Requirement already satisfied: pygments>=2.4.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (2.18.0)
Requirement already satisfied: stack-data in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)
Requirement already satisfied: pexpect>4.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)
Requirement already satisfied: parso<0.9.0,>=0.8.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.4)
Requirement already satisfied: ptyprocess>=0.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)
Requirement already satisfied: wcwidth in /home/george/drought-311-venv/lib64/python3.11/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)
Requirement already satisfied: executing>=1.2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)
Requirement already satisfied: asttokens>=2.1.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)
Requirement already satisfied: pure-eval in /home/george/drought-311-venv/lib64/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)
Requirement already satisfied: six>=1.12.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)
Requirement already satisfied: pyprojroot in /home/george/drought-311-venv/lib64/python3.11/site-packages (0.3.0)
Requirement already satisfied: typing-extensions in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pyprojroot) (4.11.0)
Requirement already satisfied: ipywidgets in /home/george/drought-311-venv/lib64/python3.11/site-packages (8.1.2)
Requirement already satisfied: comm>=0.1.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (0.2.2)
Requirement already satisfied: ipython>=6.1.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (8.18.1)
Requirement already satisfied: traitlets>=4.3.1 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (5.14.3)
Requirement already satisfied: widgetsnbextension~=4.0.10 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (4.0.10)
Requirement already satisfied: jupyterlab-widgets~=3.0.10 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipywidgets) (3.0.10)
Requirement already satisfied: decorator in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)
Requirement already satisfied: jedi>=0.16 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)
Requirement already satisfied: matplotlib-inline in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.7)
Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.43)
Requirement already satisfied: pygments>=2.4.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (2.18.0)
Requirement already satisfied: stack-data in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)
Requirement already satisfied: pexpect>4.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)
Requirement already satisfied: parso<0.9.0,>=0.8.3 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.4)
Requirement already satisfied: ptyprocess>=0.5 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)
Requirement already satisfied: wcwidth in /home/george/drought-311-venv/lib64/python3.11/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)
Requirement already satisfied: executing>=1.2.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)
Requirement already satisfied: asttokens>=2.1.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)
Requirement already satisfied: pure-eval in /home/george/drought-311-venv/lib64/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)
Requirement already satisfied: six>=1.12.0 in /home/george/drought-311-venv/lib64/python3.11/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)
# only for JupyterLab environment
!pip install jupyterlab_widgets   
Requirement already satisfied: jupyterlab_widgets in /home/george/drought-311-venv/lib64/python3.11/site-packages (3.0.10)

By executing these commands, we are setting up a robust environment tailored for analyzing and visualizing our data. Now our toolkit is ready so we can proceed without any hitches!