diff --git a/examples/gpax_viGP.ipynb b/examples/gpax_viGP.ipynb
index 2ffce4b..aec48a3 100644
--- a/examples/gpax_viGP.ipynb
+++ b/examples/gpax_viGP.ipynb
@@ -1,339 +1,444 @@
{
- "nbformat": 4,
- "nbformat_minor": 0,
- "metadata": {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "colab_type": "text",
+ "id": "view-in-github"
+ },
+ "source": [
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# For github continuous integration only\n",
+ "# Please ignore if you're running this notebook!\n",
+ "import os\n",
+ "if os.environ.get(\"CI_SMOKE\"):\n",
+ " SMOKE = True\n",
+ "else:\n",
+ " SMOKE = False"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "h8qahw0XhmDo"
+ },
+ "source": [
+ "# Sparse image reconstruction with GPax\n",
+ "\n",
+ "\n",
+ "*Prepared by Maxim Ziatdinov (May 2023). Last updated in October 2023.*"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "gT1M-8IJcAmu"
+ },
+ "source": [
+ "This notebook shows a simple example of how GPax can be utilized for sparse image reconstruction."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "HdtH0tCPQ2de"
+ },
+ "source": [
+ "## Install & Import"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "86iUwKxLO7qE"
+ },
+ "source": [
+ "Install the latest GPax package from PyPI (this is best practice, as it installs the latest, deployed and tested version)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
"colab": {
- "provenance": [],
- "gpuType": "V100",
- "authorship_tag": "ABX9TyO5RwCkOhygFn67YnICV9c6",
- "include_colab_link": true
- },
- "kernelspec": {
- "name": "python3",
- "display_name": "Python 3"
- },
- "language_info": {
- "name": "python"
+ "base_uri": "https://localhost:8080/"
},
- "accelerator": "GPU",
- "gpuClass": "standard"
+ "id": "VQ1rLUzqha2i",
+ "outputId": "44157aab-4e21-4966-ec79-ccf85cd4bbaa"
+ },
+ "outputs": [],
+ "source": [
+ "!pip install gpax"
+ ]
},
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "view-in-github",
- "colab_type": "text"
- },
- "source": [
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "source": [
- "# Sparse image reconstruction with GPax\n",
- "\n",
- "\n",
- "*Prepared by Maxim Ziatdinov (May 2023)*"
- ],
- "metadata": {
- "id": "h8qahw0XhmDo"
- }
- },
- {
- "cell_type": "markdown",
- "source": [
- "This notebook shows a simple example of how GPax can be utilized for sparse image reconstruction."
- ],
- "metadata": {
- "id": "gT1M-8IJcAmu"
- }
- },
- {
- "cell_type": "markdown",
- "source": [
- "Install GPax:"
- ],
- "metadata": {
- "id": "vKaQ9myKfCmQ"
- }
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "gmvZUXDHVSTJ",
- "outputId": "f713fec4-8905-46a7-91fb-92ef972fdfa4"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m300.2/300.2 kB\u001b[0m \u001b[31m2.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m352.1/352.1 kB\u001b[0m \u001b[31m13.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25h Building wheel for gpax (setup.py) ... \u001b[?25l\u001b[?25hdone\n"
- ]
- }
- ],
- "source": [
- "!pip install -q --upgrade git+https://github.com/ziatdinovmax/gpax"
- ]
- },
- {
- "cell_type": "markdown",
- "source": [
- "Imports:"
- ],
- "metadata": {
- "id": "stc3oP1FfFdZ"
- }
- },
- {
- "cell_type": "code",
- "source": [
- "import gpax\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt"
- ],
- "metadata": {
- "id": "MrKmGijEBBUw"
- },
- "execution_count": 2,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "source": [
- "Download sparse image data. This is a scanning probe microsocpy image obtained via a sparse spiral scanning. See [this paper](https://doi.org/10.1002/smll.202002878) for more details."
- ],
- "metadata": {
- "id": "EO08PqF_fSCh"
- }
- },
- {
- "cell_type": "code",
- "source": [
- "!wget -qq -O 'spiral_scans_2d.npy' 'https://github.com/ziatdinovmax/GPim/blob/master/expdata/spiral_s_00010_2019.npy?raw=true'"
- ],
- "metadata": {
- "id": "0mkXujgTQ4P0"
- },
- "execution_count": 3,
- "outputs": []
- },
- {
- "cell_type": "markdown",
- "source": [
- "Visualize data:"
- ],
- "metadata": {
- "id": "lMK2Uwn5f9YR"
- }
- },
- {
- "cell_type": "code",
- "metadata": {
- "id": "X_BFloHFz8cX",
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 430
- },
- "outputId": "5c57e6db-ef4c-46d8-bf5f-d6b353a70dfb"
- },
- "source": [
- "imgdata = np.load('spiral_scans_2d.npy')\n",
- "plt.imshow(imgdata, origin='lower');"
- ],
- "execution_count": 12,
- "outputs": [
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "