Skip to main content

Getting started


You will need Python 3, and following Python packages installed in your computer:

pip install --upgrade numpy scipy matplotlib astropy jupyterlab

I will be using Jupyter notebook to write and execute our python codes. Of course, you can use any other IDE or code editor of your choice.


If you are new to python programming, you can check out my python tutorial.

Getting ARPES Python tools

You can clone the repository using git:

git clone

Alternatively, you can download the package archive here. Unzip the folder inside your project/ working directory or any other preferred location.

You can install the required python packages from the requirements.txt specification:

cd arpespythontools
pip install --upgrade -r requirements.txt

Importing arpespythontools

We can import the module by import arpespythontools as arp so that later in the code we can refer to the module as arp in short.

import sys
# module is path is `/workspaces/projects/arpespythontools`
import arpespythontools as arp

If you put the library inside your working directory, you don't need the first two lines above.

Run Python and Jupyter notebook in Docker container

If you want to setup and run python in a container, I have a Dockerfile, please adjust according to your needs.

# Start from Ubuntu 22.04 LTS
FROM ubuntu:jammy

# Update OS
RUN apt update && apt upgrade -y

# Install software packages
RUN apt install -y python3 python3-pip git fonts-open-sans

# Install pip packages
RUN pip3 install jupyterlab numpy scipy matplotlib

# jupyterlab settings
RUN mkdir /etc/jupyter && \
(echo "c.ServerApp.ip = ''" && \
echo "c.ServerApp.allow_root = True" && \
echo "c.ServerApp.open_browser = False") \
>> /etc/jupyter/

# clone arpespythontools to `/root` directory
RUN git clone --depth 1

# leave in `/home` which we can map with the host

Build the Docker image (you can specify any name for your image, here arptools):

docker build -t arptools .

Run Docker (you can either forward a specific port or if are using Linux, map host network):

docker run -ti -p 8888:8888 -v ${PWD}:/home arptools bash
docker run -ti --net=host -v /host/path:/home arptools bash

Launch Jupyterlab inside the container:


Now we can create Python 3 notebook, and start writing our code. To import arpespythontools, include in your notebook:

import sys
import arpespythontools as arp

Sample dataset

You can download the sample dataset used in this tutorial from here.