{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "163ca712-0d23-45f6-b474-74c4385b1b1d",
   "metadata": {},
   "source": [
    "## Simple Processing"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "360e7bb0-6688-483d-9a1b-4845974abe1b",
   "metadata": {},
   "source": [
    "An example to proessing images without a proper pipeline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "75ec1490-34c6-4f7e-aaa1-e28bf97d2002",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n",
      "  %reload_ext autoreload\n"
     ]
    }
   ],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "from paidiverpy.open_layer import OpenLayer\n",
    "from paidiverpy.sampling_layer import SamplingLayer"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2934a5e4-7099-4046-9191-343f57d4f43f",
   "metadata": {},
   "source": [
    "### Open the images"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82f63957-f326-4902-a47d-1128f1ad2194",
   "metadata": {},
   "source": [
    "The first step will be always the load images step"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "abc25d99-c716-4484-8428-f340fe88b483",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the class\n",
    "open_layer = OpenLayer(config_file_path=\"../config_files/config_simple.yml\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "c043d2d0-b160-4e59-8495-ef189fda23dd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"arrow-right\" viewBox=\"0 0 330 330\">\n",
       "  <path id=\"XMLID_222_\" d=\"M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001\n",
       "\tc-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213\n",
       "\tC82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606\n",
       "\tC255,161.018,253.42,157.202,250.606,154.389z\"/>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying Paidiverpy objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --ppy-font-color: var(--jp-content-font-color, rgba(0, 0, 0, 1));\n",
       "  --ppy-font-color-brown: var(--jp-content-font-color-brown, brown);\n",
       "  --ppy-font-color-olive: var(--jp-content-font-color-olive, olive);\n",
       "  --ppy-font-color-teal: var(--jp-content-font-color-teal, teal);\n",
       "  --ppy-font-color-blue: var(--jp-content-font-color-blue, blue);\n",
       "  --ppy-font-color-gray: var(--jp-content-font-color-gray, gray);\n",
       "  --ppy-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --ppy-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --ppy-background-color: var(--jp-layout-color, white);\n",
       "  --ppy-background-color2: var(--jp-layout-color3, rgba(212, 212, 212, 0.15));\n",
       "}\n",
       "\n",
       "\n",
       "html[theme=\"dark\"],\n",
       "html[data-theme=\"dark\"],\n",
       "body[data-theme=\"dark\"],\n",
       "body.vscode-dark {\n",
       "  --ppy-font-color: rgba(255, 255, 255, 1);\n",
       "  --ppy-font-color-brown: brown;\n",
       "  --ppy-font-color-olive: olive;\n",
       "  --ppy-font-color-teal: teal;\n",
       "  --ppy-font-color-blue: blue;\n",
       "  --ppy-font-color-gray: gray;\n",
       "  --ppy-border-color: #1f1f1f;\n",
       "  --ppy-disabled-color: #515151;\n",
       "  --ppy-background-color: #111111;\n",
       "}\n",
       "\n",
       ".ppy-background-color {\n",
       "  background-color: var(--ppy-background-color) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color-brown {\n",
       "  color: var(--ppy-font-color-brown) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color {\n",
       "  color: var(--ppy-font-color) !important;\n",
       "}\n",
       ".ppy-h2 {\n",
       "  font-size: 20px !important;\n",
       "}\n",
       ".ppy-h3 {\n",
       "  font-size: 13px !important;\n",
       "}\n",
       ".ppy-p {\n",
       "  font-size: 10px;\n",
       "}\n",
       ".ppy-p-error {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "  font-weight: bold;\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".ppy-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-wrap{\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  align-items: center;\n",
       "}\n",
       "\n",
       ".ppy-pipeline {\n",
       "  float:left;\n",
       "  cursor: pointer;\n",
       "  padding: 10px;\n",
       "  width: max-content;\n",
       "  height: 150px;\n",
       "  margin: 10px;\n",
       "  border: 1px solid #000;\n",
       "  text-align: center;\n",
       "  /* line-height: 80px; */\n",
       "}\n",
       "\n",
       ".ppy-pipeline-clear-fix {\n",
       "  clear: both;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-parameters-all {\n",
       "  padding: 10px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-step-header {\n",
       "  cursor: pointer;\n",
       "  font-weight: bold;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       ".ppy-images-metadata {\n",
       "  margin-left: 20px;\n",
       "  margin-bottom: 10px;\n",
       "}\n",
       ".ppy-images {\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  gap: 10px;\n",
       "  margin-left: 20px;\n",
       "}\n",
       "\n",
       ".ppy-show-more-button, .ppy-hide-button {\n",
       "  margin-left: 20px;\n",
       "  background-color: #007bff;\n",
       "  color: white;\n",
       "  border: none;\n",
       "  padding: 5px 10px;\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pipeline-arrow {\n",
       "  float:left;\n",
       "  width: 50px;\n",
       "  height: 80px;\n",
       "  margin: 10px;\n",
       "  text-align: center;\n",
       "  line-height: 80px;\n",
       "}\n",
       "\n",
       ".ppy-images-img{\n",
       "  display: block;\n",
       "  max-width: 200px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-toggle-arrow {\n",
       "  cursor: pointer;\n",
       "  margin-left: 5px;\n",
       "}\n",
       "\n",
       ".ppy-images-image-p {\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       ".ppy-arrow-right {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-json-block {\n",
       "  font-family: monospace;\n",
       "  background: var(--ppy-background-color);\n",
       "  padding: 1em;\n",
       "  border-radius: 6px;\n",
       "}\n",
       ".ppy-json-key {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "}\n",
       ".ppy-json-string {\n",
       "  color: var(--ppy-font-color-olive);\n",
       "}\n",
       ".ppy-json-number {\n",
       "  color: var(--ppy-font-color-teal);\n",
       "}\n",
       ".ppy-json-bool {\n",
       "  color: var(--ppy-font-color-blue);\n",
       "}\n",
       ".ppy-json-null {\n",
       "  color: var(--ppy-font-color-gray);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-title-0 {\n",
       "  font-size: 30px;\n",
       "}\n",
       "\n",
       ".ppy-pn-title-1 {\n",
       "  font-size: 20px;\n",
       "}\n",
       ".ppy-pn-title-2 {\n",
       "  font-size: 17px;\n",
       "}\n",
       ".ppy-pn-title-3 {\n",
       "  font-size: 14px;\n",
       "}\n",
       ".ppy-pn-title-4 {\n",
       "  font-size: 12px;\n",
       "}\n",
       "\n",
       ".ppy-pn-bold {\n",
       "  font-weight: bold;\n",
       "}\n",
       ".ppy-pn-italic {\n",
       "  font-style: italic;\n",
       "}\n",
       ".ppy-pn-description {\n",
       "  font-size: 14px;\n",
       "  margin-bottom: 1px;\n",
       "}\n",
       "\n",
       ".bk-root {\n",
       "  width: 100% !important;\n",
       "  max-width: 100% !important;\n",
       "  box-sizing: border-box;\n",
       "}\n",
       "\n",
       "input, .bk-input, .bk-input-group {\n",
       "  margin-top: 0px;\n",
       "  margin-bottom: 3px;\n",
       "  padding-top: 0px;\n",
       "  padding-bottom: 0px;\n",
       "}\n",
       "\n",
       ".ppy-pn-header-button .bk-btn {\n",
       "  background: none !important;\n",
       "  border: none !important;\n",
       "  font-weight: bold;\n",
       "  font-size: 16px;\n",
       "  text-align: left;\n",
       "  padding-left: 0;\n",
       "  cursor: pointer;\n",
       "  box-shadow: none !important;\n",
       "  color: black;\n",
       "}\n",
       "\n",
       ".ppy-pn-danger-modal{\n",
       "  border: 2px solid red;\n",
       "  border-radius: 10px;\n",
       "  box-shadow: 0px 0px 10px rgba(255, 0, 0, 0.5);\n",
       "}\n",
       "\n",
       ".ppy-pn-config-form{\n",
       "  padding: 10px;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 10px;\n",
       "  background-color: var(--ppy-background-color2);\n",
       "  border-radius: 5px;\n",
       "  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-align-right {\n",
       "  display: flex;\n",
       "  justify-content: flex-end;\n",
       "}\n",
       "</style><script>function toggleMetadata(stepIndex, randomId) {\n",
       "  var metadata = document.getElementById(\"ppy-images-metadata-\" + randomId + \"-\" + stepIndex);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + stepIndex);\n",
       "  if (metadata.style.display === \"none\") {\n",
       "      metadata.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      metadata.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function toggleImage(imageId, randomId) {\n",
       "  var img = document.getElementById(imageId);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + imageId);\n",
       "  if (img.style.display === \"none\") {\n",
       "      img.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      img.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function showMore(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"flex\";\n",
       "  showMoreButton.style.display = \"none\";\n",
       "  hideButton.style.display = \"inline-block\";\n",
       "}\n",
       "function hide(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"none\";\n",
       "  showMoreButton.style.display = \"inline-block\";\n",
       "  hideButton.style.display = \"none\";\n",
       "}\n",
       "\n",
       "\n",
       "function showParameters(id, randomId) {\n",
       "  var currentTarget = document.getElementById('ppy-pipeline-' + randomId + '-' + id);\n",
       "  var square = document.getElementsByClassName('ppy-pipeline-' + randomId);\n",
       "  var allParams = document.getElementsByClassName('ppy-pipeline-parameters-' + randomId);\n",
       "  var selectedParams = document.getElementById('ppy-pipeline-parameters-' + randomId + '-' + id);\n",
       "  var idWasVisible = false;\n",
       "  if (selectedParams) {\n",
       "      var idWasVisible = selectedParams.style.display === 'block';\n",
       "  }\n",
       "  for (var i = 0; i < square.length; i++) {\n",
       "      square[i].classList.remove('ppy-font-color-brown');\n",
       "      square[i].classList.add('ppy-font-color');\n",
       "  }\n",
       "  for (var i = 0; i < allParams.length; i++) {\n",
       "      allParams[i].style.display = 'none';\n",
       "  }\n",
       "  // Show the selected parameter section\n",
       "  if (selectedParams) {\n",
       "      if (idWasVisible) {\n",
       "          selectedParams.style.display = 'none';\n",
       "          currentTarget.classList.remove('ppy-font-color-brown');\n",
       "          currentTarget.classList.add('ppy-font-color');\n",
       "      } else {\n",
       "          selectedParams.style.display = 'block';\n",
       "          currentTarget.classList.remove('ppy-font-color');\n",
       "          currentTarget.classList.add('ppy-font-color-brown');\n",
       "      }\n",
       "  }\n",
       "}\n",
       "\n",
       "hljs.highlightAll();\n",
       "</script><link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css\"><script src=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js\"></script><script>hljs.highlightAll();</script><pre class='ppy-text-repr-fallback'>{\n",
       "    &quot;general&quot;: {\n",
       "        &quot;name&quot;: &quot;raw&quot;,\n",
       "        &quot;step_name&quot;: &quot;open&quot;,\n",
       "        &quot;sample_data&quot;: &quot;benthic_csv&quot;,\n",
       "        &quot;input_path&quot;: &quot;/home/tobfer/.paidiverpy_cache/benthic_csv/images&quot;,\n",
       "        &quot;output_path&quot;: &quot;output&quot;,\n",
       "        &quot;metadata_path&quot;: &quot;/home/tobfer/.paidiverpy_cache/benthic_csv/metadata/metadata_benthic_csv.csv&quot;,\n",
       "        &quot;metadata_type&quot;: &quot;CSV_FILE&quot;,\n",
       "        &quot;image_open_args&quot;: &quot;PNG&quot;,\n",
       "        &quot;append_data_to_metadata&quot;: &quot;/home/tobfer/.paidiverpy_cache/benthic_csv/metadata/appended_metadata_benthic_csv.csv&quot;,\n",
       "        &quot;n_jobs&quot;: 1,\n",
       "        &quot;track_changes&quot;: true,\n",
       "        &quot;rename&quot;: &quot;datetime&quot;,\n",
       "        &quot;sampling&quot;: [\n",
       "            {\n",
       "                &quot;name&quot;: &quot;sampling&quot;,\n",
       "                &quot;step_name&quot;: &quot;sampling&quot;,\n",
       "                &quot;test&quot;: false,\n",
       "                &quot;params&quot;: {\n",
       "                    &quot;value&quot;: 0.1,\n",
       "                    &quot;raise_error&quot;: false\n",
       "                },\n",
       "                &quot;mode&quot;: &quot;percent&quot;\n",
       "            }\n",
       "        ],\n",
       "        &quot;convert&quot;: [\n",
       "            {\n",
       "                &quot;name&quot;: &quot;convert&quot;,\n",
       "                &quot;step_name&quot;: &quot;convert&quot;,\n",
       "                &quot;test&quot;: false,\n",
       "                &quot;params&quot;: {\n",
       "                    &quot;to&quot;: &quot;gray&quot;,\n",
       "                    &quot;channel_selector&quot;: 0,\n",
       "                    &quot;raise_error&quot;: false\n",
       "                },\n",
       "                &quot;mode&quot;: &quot;to&quot;\n",
       "            }\n",
       "        ]\n",
       "    },\n",
       "    &quot;steps&quot;: []\n",
       "}</pre><div><pre class=\"ppy-json-block\"><span class=\"ppy-json-key\">general</span>:\n",
       "  <span class=\"ppy-json-key\">name</span>: <span class=\"ppy-json-string\">\"raw\"</span>\n",
       "  <span class=\"ppy-json-key\">step_name</span>: <span class=\"ppy-json-string\">\"open\"</span>\n",
       "  <span class=\"ppy-json-key\">sample_data</span>: <span class=\"ppy-json-string\">\"benthic_csv\"</span>\n",
       "  <span class=\"ppy-json-key\">input_path</span>: <span class=\"ppy-json-string\">\"/home/tobfer/.paidiverpy_cache/benthic_csv/images\"</span>\n",
       "  <span class=\"ppy-json-key\">output_path</span>: <span class=\"ppy-json-string\">\"output\"</span>\n",
       "  <span class=\"ppy-json-key\">metadata_path</span>: <span class=\"ppy-json-string\">\"/home/tobfer/.paidiverpy_cache/benthic_csv/metadata/metadata_benthic_csv.csv\"</span>\n",
       "  <span class=\"ppy-json-key\">metadata_type</span>: <span class=\"ppy-json-string\">\"CSV_FILE\"</span>\n",
       "  <span class=\"ppy-json-key\">image_open_args</span>: <span class=\"ppy-json-string\">\"PNG\"</span>\n",
       "  <span class=\"ppy-json-key\">append_data_to_metadata</span>: <span class=\"ppy-json-string\">\"/home/tobfer/.paidiverpy_cache/benthic_csv/metadata/appended_metadata_benthic_csv.csv\"</span>\n",
       "  <span class=\"ppy-json-key\">n_jobs</span>: <span class=\"ppy-json-number\">1</span>\n",
       "  <span class=\"ppy-json-key\">track_changes</span>: <span class=\"ppy-json-number\">True</span>\n",
       "  <span class=\"ppy-json-key\">rename</span>: <span class=\"ppy-json-string\">\"datetime\"</span>\n",
       "  <span class=\"ppy-json-key\">sampling</span>:\n",
       "    - <span class=\"ppy-json-key\">name</span>: <span class=\"ppy-json-string\">\"sampling\"</span>\n",
       "      <span class=\"ppy-json-key\">step_name</span>: <span class=\"ppy-json-string\">\"sampling\"</span>\n",
       "      <span class=\"ppy-json-key\">test</span>: <span class=\"ppy-json-number\">False</span>\n",
       "      <span class=\"ppy-json-key\">params</span>:\n",
       "        <span class=\"ppy-json-key\">value</span>: <span class=\"ppy-json-number\">0.1</span>\n",
       "        <span class=\"ppy-json-key\">raise_error</span>: <span class=\"ppy-json-number\">False</span>\n",
       "      <span class=\"ppy-json-key\">mode</span>: <span class=\"ppy-json-string\">\"percent\"</span>\n",
       "  <span class=\"ppy-json-key\">convert</span>:\n",
       "    - <span class=\"ppy-json-key\">name</span>: <span class=\"ppy-json-string\">\"convert\"</span>\n",
       "      <span class=\"ppy-json-key\">step_name</span>: <span class=\"ppy-json-string\">\"convert\"</span>\n",
       "      <span class=\"ppy-json-key\">test</span>: <span class=\"ppy-json-number\">False</span>\n",
       "      <span class=\"ppy-json-key\">params</span>:\n",
       "        <span class=\"ppy-json-key\">to</span>: <span class=\"ppy-json-string\">\"gray\"</span>\n",
       "        <span class=\"ppy-json-key\">channel_selector</span>: <span class=\"ppy-json-number\">0</span>\n",
       "        <span class=\"ppy-json-key\">raise_error</span>: <span class=\"ppy-json-number\">False</span>\n",
       "      <span class=\"ppy-json-key\">mode</span>: <span class=\"ppy-json-string\">\"to\"</span>\n",
       "<span class=\"ppy-json-key\">steps</span>:\n",
       "</pre></div></div>"
      ],
      "text/plain": [
       "{\n",
       "    \"general\": {\n",
       "        \"name\": \"raw\",\n",
       "        \"step_name\": \"open\",\n",
       "        \"sample_data\": \"benthic_csv\",\n",
       "        \"input_path\": \"/home/tobfer/.paidiverpy_cache/benthic_csv/images\",\n",
       "        \"output_path\": \"output\",\n",
       "        \"metadata_path\": \"/home/tobfer/.paidiverpy_cache/benthic_csv/metadata/metadata_benthic_csv.csv\",\n",
       "        \"metadata_type\": \"CSV_FILE\",\n",
       "        \"image_open_args\": \"PNG\",\n",
       "        \"append_data_to_metadata\": \"/home/tobfer/.paidiverpy_cache/benthic_csv/metadata/appended_metadata_benthic_csv.csv\",\n",
       "        \"n_jobs\": 1,\n",
       "        \"track_changes\": true,\n",
       "        \"rename\": \"datetime\",\n",
       "        \"sampling\": [\n",
       "            {\n",
       "                \"name\": \"sampling\",\n",
       "                \"step_name\": \"sampling\",\n",
       "                \"test\": false,\n",
       "                \"params\": {\n",
       "                    \"value\": 0.1,\n",
       "                    \"raise_error\": false\n",
       "                },\n",
       "                \"mode\": \"percent\"\n",
       "            }\n",
       "        ],\n",
       "        \"convert\": [\n",
       "            {\n",
       "                \"name\": \"convert\",\n",
       "                \"step_name\": \"convert\",\n",
       "                \"test\": false,\n",
       "                \"params\": {\n",
       "                    \"to\": \"gray\",\n",
       "                    \"channel_selector\": 0,\n",
       "                    \"raise_error\": false\n",
       "                },\n",
       "                \"mode\": \"to\"\n",
       "            }\n",
       "        ]\n",
       "    },\n",
       "    \"steps\": []\n",
       "}"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# See the configuration file\n",
    "open_layer.config"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "92accec0-4fa1-49bb-b27f-a463c80fc157",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Run the open layer process. It will open the images from the input path, and save then as a ImagesLayer\n",
    "open_layer.run()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "72ba0a38-ba52-49e8-ac92-a3aeddb667ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"arrow-right\" viewBox=\"0 0 330 330\">\n",
       "  <path id=\"XMLID_222_\" d=\"M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001\n",
       "\tc-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213\n",
       "\tC82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606\n",
       "\tC255,161.018,253.42,157.202,250.606,154.389z\"/>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying Paidiverpy objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --ppy-font-color: var(--jp-content-font-color, rgba(0, 0, 0, 1));\n",
       "  --ppy-font-color-brown: var(--jp-content-font-color-brown, brown);\n",
       "  --ppy-font-color-olive: var(--jp-content-font-color-olive, olive);\n",
       "  --ppy-font-color-teal: var(--jp-content-font-color-teal, teal);\n",
       "  --ppy-font-color-blue: var(--jp-content-font-color-blue, blue);\n",
       "  --ppy-font-color-gray: var(--jp-content-font-color-gray, gray);\n",
       "  --ppy-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --ppy-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --ppy-background-color: var(--jp-layout-color, white);\n",
       "  --ppy-background-color2: var(--jp-layout-color3, rgba(212, 212, 212, 0.15));\n",
       "}\n",
       "\n",
       "\n",
       "html[theme=\"dark\"],\n",
       "html[data-theme=\"dark\"],\n",
       "body[data-theme=\"dark\"],\n",
       "body.vscode-dark {\n",
       "  --ppy-font-color: rgba(255, 255, 255, 1);\n",
       "  --ppy-font-color-brown: brown;\n",
       "  --ppy-font-color-olive: olive;\n",
       "  --ppy-font-color-teal: teal;\n",
       "  --ppy-font-color-blue: blue;\n",
       "  --ppy-font-color-gray: gray;\n",
       "  --ppy-border-color: #1f1f1f;\n",
       "  --ppy-disabled-color: #515151;\n",
       "  --ppy-background-color: #111111;\n",
       "}\n",
       "\n",
       ".ppy-background-color {\n",
       "  background-color: var(--ppy-background-color) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color-brown {\n",
       "  color: var(--ppy-font-color-brown) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color {\n",
       "  color: var(--ppy-font-color) !important;\n",
       "}\n",
       ".ppy-h2 {\n",
       "  font-size: 20px !important;\n",
       "}\n",
       ".ppy-h3 {\n",
       "  font-size: 13px !important;\n",
       "}\n",
       ".ppy-p {\n",
       "  font-size: 10px;\n",
       "}\n",
       ".ppy-p-error {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "  font-weight: bold;\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".ppy-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-wrap{\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  align-items: center;\n",
       "}\n",
       "\n",
       ".ppy-pipeline {\n",
       "  float:left;\n",
       "  cursor: pointer;\n",
       "  padding: 10px;\n",
       "  width: max-content;\n",
       "  height: 150px;\n",
       "  margin: 10px;\n",
       "  border: 1px solid #000;\n",
       "  text-align: center;\n",
       "  /* line-height: 80px; */\n",
       "}\n",
       "\n",
       ".ppy-pipeline-clear-fix {\n",
       "  clear: both;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-parameters-all {\n",
       "  padding: 10px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-step-header {\n",
       "  cursor: pointer;\n",
       "  font-weight: bold;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       ".ppy-images-metadata {\n",
       "  margin-left: 20px;\n",
       "  margin-bottom: 10px;\n",
       "}\n",
       ".ppy-images {\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  gap: 10px;\n",
       "  margin-left: 20px;\n",
       "}\n",
       "\n",
       ".ppy-show-more-button, .ppy-hide-button {\n",
       "  margin-left: 20px;\n",
       "  background-color: #007bff;\n",
       "  color: white;\n",
       "  border: none;\n",
       "  padding: 5px 10px;\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pipeline-arrow {\n",
       "  float:left;\n",
       "  width: 50px;\n",
       "  height: 80px;\n",
       "  margin: 10px;\n",
       "  text-align: center;\n",
       "  line-height: 80px;\n",
       "}\n",
       "\n",
       ".ppy-images-img{\n",
       "  display: block;\n",
       "  max-width: 200px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-toggle-arrow {\n",
       "  cursor: pointer;\n",
       "  margin-left: 5px;\n",
       "}\n",
       "\n",
       ".ppy-images-image-p {\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       ".ppy-arrow-right {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-json-block {\n",
       "  font-family: monospace;\n",
       "  background: var(--ppy-background-color);\n",
       "  padding: 1em;\n",
       "  border-radius: 6px;\n",
       "}\n",
       ".ppy-json-key {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "}\n",
       ".ppy-json-string {\n",
       "  color: var(--ppy-font-color-olive);\n",
       "}\n",
       ".ppy-json-number {\n",
       "  color: var(--ppy-font-color-teal);\n",
       "}\n",
       ".ppy-json-bool {\n",
       "  color: var(--ppy-font-color-blue);\n",
       "}\n",
       ".ppy-json-null {\n",
       "  color: var(--ppy-font-color-gray);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-title-0 {\n",
       "  font-size: 30px;\n",
       "}\n",
       "\n",
       ".ppy-pn-title-1 {\n",
       "  font-size: 20px;\n",
       "}\n",
       ".ppy-pn-title-2 {\n",
       "  font-size: 17px;\n",
       "}\n",
       ".ppy-pn-title-3 {\n",
       "  font-size: 14px;\n",
       "}\n",
       ".ppy-pn-title-4 {\n",
       "  font-size: 12px;\n",
       "}\n",
       "\n",
       ".ppy-pn-bold {\n",
       "  font-weight: bold;\n",
       "}\n",
       ".ppy-pn-italic {\n",
       "  font-style: italic;\n",
       "}\n",
       ".ppy-pn-description {\n",
       "  font-size: 14px;\n",
       "  margin-bottom: 1px;\n",
       "}\n",
       "\n",
       ".bk-root {\n",
       "  width: 100% !important;\n",
       "  max-width: 100% !important;\n",
       "  box-sizing: border-box;\n",
       "}\n",
       "\n",
       "input, .bk-input, .bk-input-group {\n",
       "  margin-top: 0px;\n",
       "  margin-bottom: 3px;\n",
       "  padding-top: 0px;\n",
       "  padding-bottom: 0px;\n",
       "}\n",
       "\n",
       ".ppy-pn-header-button .bk-btn {\n",
       "  background: none !important;\n",
       "  border: none !important;\n",
       "  font-weight: bold;\n",
       "  font-size: 16px;\n",
       "  text-align: left;\n",
       "  padding-left: 0;\n",
       "  cursor: pointer;\n",
       "  box-shadow: none !important;\n",
       "  color: black;\n",
       "}\n",
       "\n",
       ".ppy-pn-danger-modal{\n",
       "  border: 2px solid red;\n",
       "  border-radius: 10px;\n",
       "  box-shadow: 0px 0px 10px rgba(255, 0, 0, 0.5);\n",
       "}\n",
       "\n",
       ".ppy-pn-config-form{\n",
       "  padding: 10px;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 10px;\n",
       "  background-color: var(--ppy-background-color2);\n",
       "  border-radius: 5px;\n",
       "  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-align-right {\n",
       "  display: flex;\n",
       "  justify-content: flex-end;\n",
       "}\n",
       "</style><script>function toggleMetadata(stepIndex, randomId) {\n",
       "  var metadata = document.getElementById(\"ppy-images-metadata-\" + randomId + \"-\" + stepIndex);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + stepIndex);\n",
       "  if (metadata.style.display === \"none\") {\n",
       "      metadata.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      metadata.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function toggleImage(imageId, randomId) {\n",
       "  var img = document.getElementById(imageId);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + imageId);\n",
       "  if (img.style.display === \"none\") {\n",
       "      img.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      img.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function showMore(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"flex\";\n",
       "  showMoreButton.style.display = \"none\";\n",
       "  hideButton.style.display = \"inline-block\";\n",
       "}\n",
       "function hide(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"none\";\n",
       "  showMoreButton.style.display = \"inline-block\";\n",
       "  hideButton.style.display = \"none\";\n",
       "}\n",
       "\n",
       "\n",
       "function showParameters(id, randomId) {\n",
       "  var currentTarget = document.getElementById('ppy-pipeline-' + randomId + '-' + id);\n",
       "  var square = document.getElementsByClassName('ppy-pipeline-' + randomId);\n",
       "  var allParams = document.getElementsByClassName('ppy-pipeline-parameters-' + randomId);\n",
       "  var selectedParams = document.getElementById('ppy-pipeline-parameters-' + randomId + '-' + id);\n",
       "  var idWasVisible = false;\n",
       "  if (selectedParams) {\n",
       "      var idWasVisible = selectedParams.style.display === 'block';\n",
       "  }\n",
       "  for (var i = 0; i < square.length; i++) {\n",
       "      square[i].classList.remove('ppy-font-color-brown');\n",
       "      square[i].classList.add('ppy-font-color');\n",
       "  }\n",
       "  for (var i = 0; i < allParams.length; i++) {\n",
       "      allParams[i].style.display = 'none';\n",
       "  }\n",
       "  // Show the selected parameter section\n",
       "  if (selectedParams) {\n",
       "      if (idWasVisible) {\n",
       "          selectedParams.style.display = 'none';\n",
       "          currentTarget.classList.remove('ppy-font-color-brown');\n",
       "          currentTarget.classList.add('ppy-font-color');\n",
       "      } else {\n",
       "          selectedParams.style.display = 'block';\n",
       "          currentTarget.classList.remove('ppy-font-color');\n",
       "          currentTarget.classList.add('ppy-font-color-brown');\n",
       "      }\n",
       "  }\n",
       "}\n",
       "\n",
       "hljs.highlightAll();\n",
       "</script><link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css\"><script src=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js\"></script><script>hljs.highlightAll();</script><pre class='ppy-text-repr-fallback'>&lt;paidiverpy.images_layer.ImagesLayer object at 0x7695bda69000&gt;</pre><div>\n",
       "            <div class='ppy-h2 ppy-images-step-header' onclick='toggleMetadata(0, \"kkd\")'>\n",
       "                Step 0: raw\n",
       "                <span id='ppy-images-arrow-kkd-0'\n",
       "                    class='ppy-images-toggle-arrow ppy-font-color-brown'>▼\n",
       "                </span>\n",
       "            </div>\n",
       "            <div id='ppy-images-metadata-kkd-0' class='ppy-images-metadata' style='display:block;'><div class='ppy-images'>\n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-kkd-0-0\", \"kkd\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:16:31\n",
       "                <span id='ppy-images-arrow-kkd-image-kkd-0-0' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-kkd-0-0'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/AOxAoxmnAUoFLikIpMcUoFPUU/FOAoK0YqF15qMikC08DilxQBzTwKTFIRxSYzTgKeop4FLiloIqNhmo/LyaCuOKAOKXFGKcBxSNTMUoHNSBaUCnqO9OIpKKTaDQVHamsvGajAxS4oxThwKa1NA704DmpAKdinAUpFNNLjNKFwKNtIVzUGKXrSkYoqNuTSingdDTwKeBTgKXGaYRzTlXNO200ikxVfFKBSmkPSmdTmgCpBUiin0tLRinAUuKTZSbKrDpRig9KaelNxzSgU4dalXmngUuKdikpwpwpcUhFUwOKWmmkxkU2nClqROlSUopaKUU8UoFLiqJ7UGmmk7UmKUdKUdaevSng04U7pSilApwp4pcVnUE0hoptKOKdilzxxT1PFSA0tO6UZp9OBpc1ncUmaOtFNP1pM0+gU9TUop4paKcDS96dWbmjNGcUtIeDSUtKOlPWpRThThS0UtOzWbRSjrmiikpaUVIKfmlBpQaeDS07rSVm9qXNOzwPWg9KKb3pacpp4NOzRmnA08GnCng0GswUtKKWikpAacKdmnbqM04Gng08GnA0tZq470uRQDS5pKDRSg0ZpwNLnilBp4NPBp4NLmv/9k='\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-kkd-0-1\", \"kkd\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:17:31\n",
       "                <span id='ppy-images-arrow-kkd-image-kkd-0-1' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-kkd-0-1'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/ANt03UgQj3oZKFWnheKjdcE0gGadjPGKcBjinLTxTqTtSe1LTWHanmPNN2YNNxQBTgOKY49qjIFKOadjNOUU/pSgZFKRUZ6gU7tSAZNWCvXioyOSDSFQaNvFJtxTWGaYV5o20Uo4pQamUDHTmhgMVGQKTNOWrDDPNMIpuOcU4dMUjCmlaYR+NNxRjmlx6U5VzzUyrikfoaiIpCAMe9OFWnGKYQKTbkZpBwaU80080wikI9ab3pyr3qRRTqRuTUZHOaQgd6UDirjDg1Ewpop2KQimGmkCgkdKjbilVh0qRTT8cUhphHNNIzTh92rh5qNhxTAMU76UGmMKjLcVH05pcZAoAwacDyKkByKXOKYaULgZpCOKuGo2HOabijGKSmnpUTCm9qM54FLSgYpwOO9LmjFPI6VGw4q6aYw5pgPNITTc4phNNJzxTOp6UdPelBzQxxTVOak9+9PB6UvekYjFXMZph61GfvUhphNMY8Go1PNOzxTD0pRjOaCDTcfMO1Sg5NPHPWgtimM2TV7NNbrzTMUwnmmHpUTnANMzzxS5pfrSDjjtS5xSd6XPNP3YprPTA3NaGc9DSZzSE1E9NzxUMh5+tRjg5zS5x9KAacp596dTc/Nik3Ubu1NY55pqnBrRXrTvxpjVEx70wtgcVGxzUecUE0q/pThkcmnBwTTSeTzTfTignmjNIBhq0AeKUtims1QsajPSmd6axGc00+9AbGMU8kHFNIIPHFLnmhSM0jdaRc5zTwMtV0nPSmk0hP6Uw8nNRkH0phyO1N689qYTyeKbuxzUinoP0NBbmgYwfWk3cn1oJp69qeOBVtAgALkj0Apsu0EbDkGomamxqGD7nC4GQDnmoiDuCjOT04pzq0ar94E9QwpglcHBoknCBchWyOeOnNVxdIzbfKxz2NSSShVUhRhhn6c//WqJLj5vmGVzmphKuwMU4NM8xQSNvP1pdw3EEEEdaep5qTOOK//Z'\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-kkd-0-2\", \"kkd\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:19:21\n",
       "                <span id='ppy-images-arrow-kkd-image-kkd-0-2' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-kkd-0-2'\n",
       "                src='data:image/jpeg;base64,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'\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-kkd-0-3\", \"kkd\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:19:51\n",
       "                <span id='ppy-images-arrow-kkd-image-kkd-0-3' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-kkd-0-3'\n",
       "                src='data:image/jpeg;base64,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'\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-kkd-0-4\", \"kkd\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:21:31\n",
       "                <span id='ppy-images-arrow-kkd-image-kkd-0-4' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-kkd-0-4'\n",
       "                src='data:image/jpeg;base64,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'\n",
       "                class='ppy-images-img'/></div>\n",
       "            </div></div></div></div>"
      ],
      "text/plain": [
       "<paidiverpy.images_layer.ImagesLayer at 0x7695bda69000>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# See the images output\n",
    "open_layer.images"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "9f4a355e-2514-4f1a-8e0c-8cd9b907a910",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>XResolution</th>\n",
       "      <th>YResolution</th>\n",
       "      <th>ExposureTime</th>\n",
       "      <th>FNumber</th>\n",
       "      <th>ISO</th>\n",
       "      <th>image-datetime</th>\n",
       "      <th>MaxApertureValue</th>\n",
       "      <th>WhiteBalance</th>\n",
       "      <th>FocusPosition</th>\n",
       "      <th>...</th>\n",
       "      <th>temperature_c</th>\n",
       "      <th>positioning_ok</th>\n",
       "      <th>attitude_ok</th>\n",
       "      <th>depth_ok</th>\n",
       "      <th>altitude_ok</th>\n",
       "      <th>X</th>\n",
       "      <th>phototime</th>\n",
       "      <th>flag</th>\n",
       "      <th>point</th>\n",
       "      <th>filename</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>443</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:16:31</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4456</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:16:31</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60532064 11.2516466)</td>\n",
       "      <td>2018-06-11T04:16:31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>449</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:17:31</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4478</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:17:31</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60531831 11.25162916)</td>\n",
       "      <td>2018-06-11T04:17:31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>460</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:19:21</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4549</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:19:21</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60524786 11.25163778)</td>\n",
       "      <td>2018-06-11T04:19:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>463</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:19:51</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4427</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:19:51</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60522104 11.25162529)</td>\n",
       "      <td>2018-06-11T04:19:51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>473</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:21:31</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4378</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:21:31</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60514236 11.25164693)</td>\n",
       "      <td>2018-06-11T04:21:31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 37 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    ID  XResolution  YResolution  ExposureTime  FNumber  ISO  \\\n",
       "0  443          300          300      0.016667        8  200   \n",
       "1  449          300          300      0.016667        8  200   \n",
       "2  460          300          300      0.016667        8  200   \n",
       "3  463          300          300      0.016667        8  200   \n",
       "4  473          300          300      0.016667        8  200   \n",
       "\n",
       "       image-datetime  MaxApertureValue  WhiteBalance  FocusPosition  ...  \\\n",
       "0 2018-06-11 04:16:31          2.828427  FLASH                    17  ...   \n",
       "1 2018-06-11 04:17:31          2.828427  FLASH                    17  ...   \n",
       "2 2018-06-11 04:19:21          2.828427  FLASH                    17  ...   \n",
       "3 2018-06-11 04:19:51          2.828427  FLASH                    17  ...   \n",
       "4 2018-06-11 04:21:31          2.828427  FLASH                    17  ...   \n",
       "\n",
       "   temperature_c  positioning_ok  attitude_ok  depth_ok  altitude_ok   X  \\\n",
       "0         1.4456               1            1         1            1 NaN   \n",
       "1         1.4478               1            1         1            1 NaN   \n",
       "2         1.4549               1            1         1            1 NaN   \n",
       "3         1.4427               1            1         1            1 NaN   \n",
       "4         1.4378               1            1         1            1 NaN   \n",
       "\n",
       "             phototime  flag                              point  \\\n",
       "0  2018-06-11 04:16:31     0   POINT (-153.60532064 11.2516466)   \n",
       "1  2018-06-11 04:17:31     0  POINT (-153.60531831 11.25162916)   \n",
       "2  2018-06-11 04:19:21     0  POINT (-153.60524786 11.25163778)   \n",
       "3  2018-06-11 04:19:51     0  POINT (-153.60522104 11.25162529)   \n",
       "4  2018-06-11 04:21:31     0  POINT (-153.60514236 11.25164693)   \n",
       "\n",
       "              filename  \n",
       "0  2018-06-11T04:16:31  \n",
       "1  2018-06-11T04:17:31  \n",
       "2  2018-06-11T04:19:21  \n",
       "3  2018-06-11T04:19:51  \n",
       "4  2018-06-11T04:21:31  \n",
       "\n",
       "[5 rows x 37 columns]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "open_layer.get_metadata()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "b0223502-9244-4bf0-9595-792212a8e5cb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"arrow-right\" viewBox=\"0 0 330 330\">\n",
       "  <path id=\"XMLID_222_\" d=\"M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001\n",
       "\tc-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213\n",
       "\tC82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606\n",
       "\tC255,161.018,253.42,157.202,250.606,154.389z\"/>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying Paidiverpy objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --ppy-font-color: var(--jp-content-font-color, rgba(0, 0, 0, 1));\n",
       "  --ppy-font-color-brown: var(--jp-content-font-color-brown, brown);\n",
       "  --ppy-font-color-olive: var(--jp-content-font-color-olive, olive);\n",
       "  --ppy-font-color-teal: var(--jp-content-font-color-teal, teal);\n",
       "  --ppy-font-color-blue: var(--jp-content-font-color-blue, blue);\n",
       "  --ppy-font-color-gray: var(--jp-content-font-color-gray, gray);\n",
       "  --ppy-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --ppy-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --ppy-background-color: var(--jp-layout-color, white);\n",
       "  --ppy-background-color2: var(--jp-layout-color3, rgba(212, 212, 212, 0.15));\n",
       "}\n",
       "\n",
       "\n",
       "html[theme=\"dark\"],\n",
       "html[data-theme=\"dark\"],\n",
       "body[data-theme=\"dark\"],\n",
       "body.vscode-dark {\n",
       "  --ppy-font-color: rgba(255, 255, 255, 1);\n",
       "  --ppy-font-color-brown: brown;\n",
       "  --ppy-font-color-olive: olive;\n",
       "  --ppy-font-color-teal: teal;\n",
       "  --ppy-font-color-blue: blue;\n",
       "  --ppy-font-color-gray: gray;\n",
       "  --ppy-border-color: #1f1f1f;\n",
       "  --ppy-disabled-color: #515151;\n",
       "  --ppy-background-color: #111111;\n",
       "}\n",
       "\n",
       ".ppy-background-color {\n",
       "  background-color: var(--ppy-background-color) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color-brown {\n",
       "  color: var(--ppy-font-color-brown) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color {\n",
       "  color: var(--ppy-font-color) !important;\n",
       "}\n",
       ".ppy-h2 {\n",
       "  font-size: 20px !important;\n",
       "}\n",
       ".ppy-h3 {\n",
       "  font-size: 13px !important;\n",
       "}\n",
       ".ppy-p {\n",
       "  font-size: 10px;\n",
       "}\n",
       ".ppy-p-error {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "  font-weight: bold;\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".ppy-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-wrap{\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  align-items: center;\n",
       "}\n",
       "\n",
       ".ppy-pipeline {\n",
       "  float:left;\n",
       "  cursor: pointer;\n",
       "  padding: 10px;\n",
       "  width: max-content;\n",
       "  height: 150px;\n",
       "  margin: 10px;\n",
       "  border: 1px solid #000;\n",
       "  text-align: center;\n",
       "  /* line-height: 80px; */\n",
       "}\n",
       "\n",
       ".ppy-pipeline-clear-fix {\n",
       "  clear: both;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-parameters-all {\n",
       "  padding: 10px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-step-header {\n",
       "  cursor: pointer;\n",
       "  font-weight: bold;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       ".ppy-images-metadata {\n",
       "  margin-left: 20px;\n",
       "  margin-bottom: 10px;\n",
       "}\n",
       ".ppy-images {\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  gap: 10px;\n",
       "  margin-left: 20px;\n",
       "}\n",
       "\n",
       ".ppy-show-more-button, .ppy-hide-button {\n",
       "  margin-left: 20px;\n",
       "  background-color: #007bff;\n",
       "  color: white;\n",
       "  border: none;\n",
       "  padding: 5px 10px;\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pipeline-arrow {\n",
       "  float:left;\n",
       "  width: 50px;\n",
       "  height: 80px;\n",
       "  margin: 10px;\n",
       "  text-align: center;\n",
       "  line-height: 80px;\n",
       "}\n",
       "\n",
       ".ppy-images-img{\n",
       "  display: block;\n",
       "  max-width: 200px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-toggle-arrow {\n",
       "  cursor: pointer;\n",
       "  margin-left: 5px;\n",
       "}\n",
       "\n",
       ".ppy-images-image-p {\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       ".ppy-arrow-right {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-json-block {\n",
       "  font-family: monospace;\n",
       "  background: var(--ppy-background-color);\n",
       "  padding: 1em;\n",
       "  border-radius: 6px;\n",
       "}\n",
       ".ppy-json-key {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "}\n",
       ".ppy-json-string {\n",
       "  color: var(--ppy-font-color-olive);\n",
       "}\n",
       ".ppy-json-number {\n",
       "  color: var(--ppy-font-color-teal);\n",
       "}\n",
       ".ppy-json-bool {\n",
       "  color: var(--ppy-font-color-blue);\n",
       "}\n",
       ".ppy-json-null {\n",
       "  color: var(--ppy-font-color-gray);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-title-0 {\n",
       "  font-size: 30px;\n",
       "}\n",
       "\n",
       ".ppy-pn-title-1 {\n",
       "  font-size: 20px;\n",
       "}\n",
       ".ppy-pn-title-2 {\n",
       "  font-size: 17px;\n",
       "}\n",
       ".ppy-pn-title-3 {\n",
       "  font-size: 14px;\n",
       "}\n",
       ".ppy-pn-title-4 {\n",
       "  font-size: 12px;\n",
       "}\n",
       "\n",
       ".ppy-pn-bold {\n",
       "  font-weight: bold;\n",
       "}\n",
       ".ppy-pn-italic {\n",
       "  font-style: italic;\n",
       "}\n",
       ".ppy-pn-description {\n",
       "  font-size: 14px;\n",
       "  margin-bottom: 1px;\n",
       "}\n",
       "\n",
       ".bk-root {\n",
       "  width: 100% !important;\n",
       "  max-width: 100% !important;\n",
       "  box-sizing: border-box;\n",
       "}\n",
       "\n",
       "input, .bk-input, .bk-input-group {\n",
       "  margin-top: 0px;\n",
       "  margin-bottom: 3px;\n",
       "  padding-top: 0px;\n",
       "  padding-bottom: 0px;\n",
       "}\n",
       "\n",
       ".ppy-pn-header-button .bk-btn {\n",
       "  background: none !important;\n",
       "  border: none !important;\n",
       "  font-weight: bold;\n",
       "  font-size: 16px;\n",
       "  text-align: left;\n",
       "  padding-left: 0;\n",
       "  cursor: pointer;\n",
       "  box-shadow: none !important;\n",
       "  color: black;\n",
       "}\n",
       "\n",
       ".ppy-pn-danger-modal{\n",
       "  border: 2px solid red;\n",
       "  border-radius: 10px;\n",
       "  box-shadow: 0px 0px 10px rgba(255, 0, 0, 0.5);\n",
       "}\n",
       "\n",
       ".ppy-pn-config-form{\n",
       "  padding: 10px;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 10px;\n",
       "  background-color: var(--ppy-background-color2);\n",
       "  border-radius: 5px;\n",
       "  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-align-right {\n",
       "  display: flex;\n",
       "  justify-content: flex-end;\n",
       "}\n",
       "</style><script>function toggleMetadata(stepIndex, randomId) {\n",
       "  var metadata = document.getElementById(\"ppy-images-metadata-\" + randomId + \"-\" + stepIndex);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + stepIndex);\n",
       "  if (metadata.style.display === \"none\") {\n",
       "      metadata.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      metadata.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function toggleImage(imageId, randomId) {\n",
       "  var img = document.getElementById(imageId);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + imageId);\n",
       "  if (img.style.display === \"none\") {\n",
       "      img.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      img.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function showMore(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"flex\";\n",
       "  showMoreButton.style.display = \"none\";\n",
       "  hideButton.style.display = \"inline-block\";\n",
       "}\n",
       "function hide(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"none\";\n",
       "  showMoreButton.style.display = \"inline-block\";\n",
       "  hideButton.style.display = \"none\";\n",
       "}\n",
       "\n",
       "\n",
       "function showParameters(id, randomId) {\n",
       "  var currentTarget = document.getElementById('ppy-pipeline-' + randomId + '-' + id);\n",
       "  var square = document.getElementsByClassName('ppy-pipeline-' + randomId);\n",
       "  var allParams = document.getElementsByClassName('ppy-pipeline-parameters-' + randomId);\n",
       "  var selectedParams = document.getElementById('ppy-pipeline-parameters-' + randomId + '-' + id);\n",
       "  var idWasVisible = false;\n",
       "  if (selectedParams) {\n",
       "      var idWasVisible = selectedParams.style.display === 'block';\n",
       "  }\n",
       "  for (var i = 0; i < square.length; i++) {\n",
       "      square[i].classList.remove('ppy-font-color-brown');\n",
       "      square[i].classList.add('ppy-font-color');\n",
       "  }\n",
       "  for (var i = 0; i < allParams.length; i++) {\n",
       "      allParams[i].style.display = 'none';\n",
       "  }\n",
       "  // Show the selected parameter section\n",
       "  if (selectedParams) {\n",
       "      if (idWasVisible) {\n",
       "          selectedParams.style.display = 'none';\n",
       "          currentTarget.classList.remove('ppy-font-color-brown');\n",
       "          currentTarget.classList.add('ppy-font-color');\n",
       "      } else {\n",
       "          selectedParams.style.display = 'block';\n",
       "          currentTarget.classList.remove('ppy-font-color');\n",
       "          currentTarget.classList.add('ppy-font-color-brown');\n",
       "      }\n",
       "  }\n",
       "}\n",
       "\n",
       "hljs.highlightAll();\n",
       "</script><link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css\"><script src=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js\"></script><script>hljs.highlightAll();</script><pre class='ppy-text-repr-fallback'>&lt;paidiverpy.images_layer.ImagesLayer object at 0x7695bda69000&gt;</pre><div>\n",
       "            <div class='ppy-h2 ppy-images-step-header' onclick='toggleMetadata(0, \"dub\")'>\n",
       "                Step 0: raw\n",
       "                <span id='ppy-images-arrow-dub-0'\n",
       "                    class='ppy-images-toggle-arrow ppy-font-color-brown'>▼\n",
       "                </span>\n",
       "            </div>\n",
       "            <div id='ppy-images-metadata-dub-0' class='ppy-images-metadata' style='display:block;'><div class='ppy-images'>\n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-dub-0-0\", \"dub\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:19:21\n",
       "                <span id='ppy-images-arrow-dub-image-dub-0-0' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-dub-0-0'\n",
       "                src='data:image/jpeg;base64,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'\n",
       "                class='ppy-images-img'/></div>\n",
       "            </div></div></div></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# See a particular image\n",
    "open_layer.images.show(image_number=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "be5058f0-6387-4ad1-aa4b-d17715e50a40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>XResolution</th>\n",
       "      <th>YResolution</th>\n",
       "      <th>ExposureTime</th>\n",
       "      <th>FNumber</th>\n",
       "      <th>ISO</th>\n",
       "      <th>image-datetime</th>\n",
       "      <th>MaxApertureValue</th>\n",
       "      <th>WhiteBalance</th>\n",
       "      <th>FocusPosition</th>\n",
       "      <th>...</th>\n",
       "      <th>temperature_c</th>\n",
       "      <th>positioning_ok</th>\n",
       "      <th>attitude_ok</th>\n",
       "      <th>depth_ok</th>\n",
       "      <th>altitude_ok</th>\n",
       "      <th>X</th>\n",
       "      <th>phototime</th>\n",
       "      <th>flag</th>\n",
       "      <th>point</th>\n",
       "      <th>filename</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>443</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:16:31</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4456</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:16:31</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60532064 11.2516466)</td>\n",
       "      <td>2018-06-11T04:16:31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>449</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:17:31</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4478</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:17:31</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60531831 11.25162916)</td>\n",
       "      <td>2018-06-11T04:17:31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>460</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:19:21</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4549</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:19:21</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60524786 11.25163778)</td>\n",
       "      <td>2018-06-11T04:19:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>463</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:19:51</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4427</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:19:51</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60522104 11.25162529)</td>\n",
       "      <td>2018-06-11T04:19:51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>473</td>\n",
       "      <td>300</td>\n",
       "      <td>300</td>\n",
       "      <td>0.016667</td>\n",
       "      <td>8</td>\n",
       "      <td>200</td>\n",
       "      <td>2018-06-11 04:21:31</td>\n",
       "      <td>2.828427</td>\n",
       "      <td>FLASH</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>1.4378</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2018-06-11 04:21:31</td>\n",
       "      <td>0</td>\n",
       "      <td>POINT (-153.60514236 11.25164693)</td>\n",
       "      <td>2018-06-11T04:21:31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 37 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    ID  XResolution  YResolution  ExposureTime  FNumber  ISO  \\\n",
       "0  443          300          300      0.016667        8  200   \n",
       "1  449          300          300      0.016667        8  200   \n",
       "2  460          300          300      0.016667        8  200   \n",
       "3  463          300          300      0.016667        8  200   \n",
       "4  473          300          300      0.016667        8  200   \n",
       "\n",
       "       image-datetime  MaxApertureValue  WhiteBalance  FocusPosition  ...  \\\n",
       "0 2018-06-11 04:16:31          2.828427  FLASH                    17  ...   \n",
       "1 2018-06-11 04:17:31          2.828427  FLASH                    17  ...   \n",
       "2 2018-06-11 04:19:21          2.828427  FLASH                    17  ...   \n",
       "3 2018-06-11 04:19:51          2.828427  FLASH                    17  ...   \n",
       "4 2018-06-11 04:21:31          2.828427  FLASH                    17  ...   \n",
       "\n",
       "   temperature_c  positioning_ok  attitude_ok  depth_ok  altitude_ok   X  \\\n",
       "0         1.4456               1            1         1            1 NaN   \n",
       "1         1.4478               1            1         1            1 NaN   \n",
       "2         1.4549               1            1         1            1 NaN   \n",
       "3         1.4427               1            1         1            1 NaN   \n",
       "4         1.4378               1            1         1            1 NaN   \n",
       "\n",
       "             phototime  flag                              point  \\\n",
       "0  2018-06-11 04:16:31     0   POINT (-153.60532064 11.2516466)   \n",
       "1  2018-06-11 04:17:31     0  POINT (-153.60531831 11.25162916)   \n",
       "2  2018-06-11 04:19:21     0  POINT (-153.60524786 11.25163778)   \n",
       "3  2018-06-11 04:19:51     0  POINT (-153.60522104 11.25162529)   \n",
       "4  2018-06-11 04:21:31     0  POINT (-153.60514236 11.25164693)   \n",
       "\n",
       "              filename  \n",
       "0  2018-06-11T04:16:31  \n",
       "1  2018-06-11T04:17:31  \n",
       "2  2018-06-11T04:19:21  \n",
       "3  2018-06-11T04:19:51  \n",
       "4  2018-06-11T04:21:31  \n",
       "\n",
       "[5 rows x 37 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# See the first 5 lines of the metadata\n",
    "open_layer.get_metadata().head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbea4dff-beea-4b7c-92e9-a9b79261b1a2",
   "metadata": {},
   "source": [
    "### Resample the images"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "613f01e5-8647-49b0-9e30-92c946e9a295",
   "metadata": {},
   "source": [
    "The add a next step to your processing pipeline, you need to instantiate the SamplingLayer class and pass the OpenLayer class as an argument"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "34ee7ef3-257d-4c42-b1e7-1ef70213902e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set the parameters\n",
    "parameters = {\n",
    "    \"name\": \"datetime\",\n",
    "    \"mode\": \"datetime\",\n",
    "    \"params\": {\"min\": \"2018-06-11 04:14:00\", \"max\": \"2018-06-11 04:20:00\"},\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "3b1f582b-85f1-44ca-b871-0fa7fcc41772",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the new class\n",
    "resample = SamplingLayer(paidiverpy=open_layer, parameters=parameters)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "cb3faa54-3cf9-4221-aaff-4ae310d49f48",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[92m☁ paidiverpy ☁  |       INFO | 2025-09-11 16:55:38 | Number of images before the sampling step: 5. Total number of images after: 4\u001b[0m\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "INFO:paidiverpy:Number of images before the sampling step: 5. Total number of images after: 4\n"
     ]
    }
   ],
   "source": [
    "# Run the process using the parameters provided\n",
    "resample.run()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "bd9e929d-5bd9-4694-95f8-867f3d8e29db",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
       "<defs>\n",
       "<symbol id=\"arrow-right\" viewBox=\"0 0 330 330\">\n",
       "  <path id=\"XMLID_222_\" d=\"M250.606,154.389l-150-149.996c-5.857-5.858-15.355-5.858-21.213,0.001\n",
       "\tc-5.857,5.858-5.857,15.355,0.001,21.213l139.393,139.39L79.393,304.394c-5.857,5.858-5.857,15.355,0.001,21.213\n",
       "\tC82.322,328.536,86.161,330,90,330s7.678-1.464,10.607-4.394l149.999-150.004c2.814-2.813,4.394-6.628,4.394-10.606\n",
       "\tC255,161.018,253.42,157.202,250.606,154.389z\"/>\n",
       "</defs>\n",
       "</svg>\n",
       "<style>/* CSS stylesheet for displaying Paidiverpy objects in jupyterlab.\n",
       " *\n",
       " */\n",
       "\n",
       ":root {\n",
       "  --ppy-font-color: var(--jp-content-font-color, rgba(0, 0, 0, 1));\n",
       "  --ppy-font-color-brown: var(--jp-content-font-color-brown, brown);\n",
       "  --ppy-font-color-olive: var(--jp-content-font-color-olive, olive);\n",
       "  --ppy-font-color-teal: var(--jp-content-font-color-teal, teal);\n",
       "  --ppy-font-color-blue: var(--jp-content-font-color-blue, blue);\n",
       "  --ppy-font-color-gray: var(--jp-content-font-color-gray, gray);\n",
       "  --ppy-border-color: var(--jp-border-color2, #e0e0e0);\n",
       "  --ppy-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
       "  --ppy-background-color: var(--jp-layout-color, white);\n",
       "  --ppy-background-color2: var(--jp-layout-color3, rgba(212, 212, 212, 0.15));\n",
       "}\n",
       "\n",
       "\n",
       "html[theme=\"dark\"],\n",
       "html[data-theme=\"dark\"],\n",
       "body[data-theme=\"dark\"],\n",
       "body.vscode-dark {\n",
       "  --ppy-font-color: rgba(255, 255, 255, 1);\n",
       "  --ppy-font-color-brown: brown;\n",
       "  --ppy-font-color-olive: olive;\n",
       "  --ppy-font-color-teal: teal;\n",
       "  --ppy-font-color-blue: blue;\n",
       "  --ppy-font-color-gray: gray;\n",
       "  --ppy-border-color: #1f1f1f;\n",
       "  --ppy-disabled-color: #515151;\n",
       "  --ppy-background-color: #111111;\n",
       "}\n",
       "\n",
       ".ppy-background-color {\n",
       "  background-color: var(--ppy-background-color) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color-brown {\n",
       "  color: var(--ppy-font-color-brown) !important;\n",
       "}\n",
       "\n",
       ".ppy-font-color {\n",
       "  color: var(--ppy-font-color) !important;\n",
       "}\n",
       ".ppy-h2 {\n",
       "  font-size: 20px !important;\n",
       "}\n",
       ".ppy-h3 {\n",
       "  font-size: 13px !important;\n",
       "}\n",
       ".ppy-p {\n",
       "  font-size: 10px;\n",
       "}\n",
       ".ppy-p-error {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "  font-weight: bold;\n",
       "  display: block;\n",
       "}\n",
       "\n",
       ".ppy-text-repr-fallback {\n",
       "  /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
       "  display: none;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-wrap{\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  align-items: center;\n",
       "}\n",
       "\n",
       ".ppy-pipeline {\n",
       "  float:left;\n",
       "  cursor: pointer;\n",
       "  padding: 10px;\n",
       "  width: max-content;\n",
       "  height: 150px;\n",
       "  margin: 10px;\n",
       "  border: 1px solid #000;\n",
       "  text-align: center;\n",
       "  /* line-height: 80px; */\n",
       "}\n",
       "\n",
       ".ppy-pipeline-clear-fix {\n",
       "  clear: both;\n",
       "}\n",
       "\n",
       ".ppy-pipeline-parameters-all {\n",
       "  padding: 10px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-step-header {\n",
       "  cursor: pointer;\n",
       "  font-weight: bold;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 5px;\n",
       "}\n",
       ".ppy-images-metadata {\n",
       "  margin-left: 20px;\n",
       "  margin-bottom: 10px;\n",
       "}\n",
       ".ppy-images {\n",
       "  display: flex;\n",
       "  flex-wrap: wrap;\n",
       "  gap: 10px;\n",
       "  margin-left: 20px;\n",
       "}\n",
       "\n",
       ".ppy-show-more-button, .ppy-hide-button {\n",
       "  margin-left: 20px;\n",
       "  background-color: #007bff;\n",
       "  color: white;\n",
       "  border: none;\n",
       "  padding: 5px 10px;\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pipeline-arrow {\n",
       "  float:left;\n",
       "  width: 50px;\n",
       "  height: 80px;\n",
       "  margin: 10px;\n",
       "  text-align: center;\n",
       "  line-height: 80px;\n",
       "}\n",
       "\n",
       ".ppy-images-img{\n",
       "  display: block;\n",
       "  max-width: 200px;\n",
       "  margin: 10px;\n",
       "}\n",
       "\n",
       ".ppy-images-toggle-arrow {\n",
       "  cursor: pointer;\n",
       "  margin-left: 5px;\n",
       "}\n",
       "\n",
       ".ppy-images-image-p {\n",
       "  cursor: pointer;\n",
       "}\n",
       "\n",
       ".ppy-arrow-right {\n",
       "  display: inline-block;\n",
       "  vertical-align: middle;\n",
       "  width: 1em;\n",
       "  height: 1.5em !important;\n",
       "  stroke-width: 0;\n",
       "  stroke: currentColor;\n",
       "  fill: currentColor;\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-json-block {\n",
       "  font-family: monospace;\n",
       "  background: var(--ppy-background-color);\n",
       "  padding: 1em;\n",
       "  border-radius: 6px;\n",
       "}\n",
       ".ppy-json-key {\n",
       "  color: var(--ppy-font-color-brown);\n",
       "}\n",
       ".ppy-json-string {\n",
       "  color: var(--ppy-font-color-olive);\n",
       "}\n",
       ".ppy-json-number {\n",
       "  color: var(--ppy-font-color-teal);\n",
       "}\n",
       ".ppy-json-bool {\n",
       "  color: var(--ppy-font-color-blue);\n",
       "}\n",
       ".ppy-json-null {\n",
       "  color: var(--ppy-font-color-gray);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-title-0 {\n",
       "  font-size: 30px;\n",
       "}\n",
       "\n",
       ".ppy-pn-title-1 {\n",
       "  font-size: 20px;\n",
       "}\n",
       ".ppy-pn-title-2 {\n",
       "  font-size: 17px;\n",
       "}\n",
       ".ppy-pn-title-3 {\n",
       "  font-size: 14px;\n",
       "}\n",
       ".ppy-pn-title-4 {\n",
       "  font-size: 12px;\n",
       "}\n",
       "\n",
       ".ppy-pn-bold {\n",
       "  font-weight: bold;\n",
       "}\n",
       ".ppy-pn-italic {\n",
       "  font-style: italic;\n",
       "}\n",
       ".ppy-pn-description {\n",
       "  font-size: 14px;\n",
       "  margin-bottom: 1px;\n",
       "}\n",
       "\n",
       ".bk-root {\n",
       "  width: 100% !important;\n",
       "  max-width: 100% !important;\n",
       "  box-sizing: border-box;\n",
       "}\n",
       "\n",
       "input, .bk-input, .bk-input-group {\n",
       "  margin-top: 0px;\n",
       "  margin-bottom: 3px;\n",
       "  padding-top: 0px;\n",
       "  padding-bottom: 0px;\n",
       "}\n",
       "\n",
       ".ppy-pn-header-button .bk-btn {\n",
       "  background: none !important;\n",
       "  border: none !important;\n",
       "  font-weight: bold;\n",
       "  font-size: 16px;\n",
       "  text-align: left;\n",
       "  padding-left: 0;\n",
       "  cursor: pointer;\n",
       "  box-shadow: none !important;\n",
       "  color: black;\n",
       "}\n",
       "\n",
       ".ppy-pn-danger-modal{\n",
       "  border: 2px solid red;\n",
       "  border-radius: 10px;\n",
       "  box-shadow: 0px 0px 10px rgba(255, 0, 0, 0.5);\n",
       "}\n",
       "\n",
       ".ppy-pn-config-form{\n",
       "  padding: 10px;\n",
       "  margin-top: 10px;\n",
       "  margin-bottom: 10px;\n",
       "  background-color: var(--ppy-background-color2);\n",
       "  border-radius: 5px;\n",
       "  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n",
       "}\n",
       "\n",
       "\n",
       ".ppy-pn-align-right {\n",
       "  display: flex;\n",
       "  justify-content: flex-end;\n",
       "}\n",
       "</style><script>function toggleMetadata(stepIndex, randomId) {\n",
       "  var metadata = document.getElementById(\"ppy-images-metadata-\" + randomId + \"-\" + stepIndex);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + stepIndex);\n",
       "  if (metadata.style.display === \"none\") {\n",
       "      metadata.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      metadata.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function toggleImage(imageId, randomId) {\n",
       "  var img = document.getElementById(imageId);\n",
       "  var arrow = document.getElementById(\"ppy-images-arrow-\" + randomId + \"-\" + imageId);\n",
       "  if (img.style.display === \"none\") {\n",
       "      img.style.display = \"block\";\n",
       "      arrow.innerHTML = \"▼\";\n",
       "      arrow.classList.remove(\"ppy-font-color\");\n",
       "      arrow.classList.add(\"ppy-font-color-brown\");\n",
       "  } else {\n",
       "      img.style.display = \"none\";\n",
       "      arrow.innerHTML = \"►\";\n",
       "      arrow.classList.remove(\"ppy-font-color-brown\");\n",
       "      arrow.classList.add(\"ppy-font-color\");\n",
       "  }\n",
       "}\n",
       "function showMore(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"flex\";\n",
       "  showMoreButton.style.display = \"none\";\n",
       "  hideButton.style.display = \"inline-block\";\n",
       "}\n",
       "function hide(stepIndex) {\n",
       "  var moreImages = document.getElementById(\"ppy-more-images-\" + stepIndex);\n",
       "  var showMoreButton = document.getElementById(\"ppy-show-more-button-\" + stepIndex);\n",
       "  var hideButton = document.getElementById(\"ppy-hide-button-\" + stepIndex);\n",
       "  moreImages.style.display = \"none\";\n",
       "  showMoreButton.style.display = \"inline-block\";\n",
       "  hideButton.style.display = \"none\";\n",
       "}\n",
       "\n",
       "\n",
       "function showParameters(id, randomId) {\n",
       "  var currentTarget = document.getElementById('ppy-pipeline-' + randomId + '-' + id);\n",
       "  var square = document.getElementsByClassName('ppy-pipeline-' + randomId);\n",
       "  var allParams = document.getElementsByClassName('ppy-pipeline-parameters-' + randomId);\n",
       "  var selectedParams = document.getElementById('ppy-pipeline-parameters-' + randomId + '-' + id);\n",
       "  var idWasVisible = false;\n",
       "  if (selectedParams) {\n",
       "      var idWasVisible = selectedParams.style.display === 'block';\n",
       "  }\n",
       "  for (var i = 0; i < square.length; i++) {\n",
       "      square[i].classList.remove('ppy-font-color-brown');\n",
       "      square[i].classList.add('ppy-font-color');\n",
       "  }\n",
       "  for (var i = 0; i < allParams.length; i++) {\n",
       "      allParams[i].style.display = 'none';\n",
       "  }\n",
       "  // Show the selected parameter section\n",
       "  if (selectedParams) {\n",
       "      if (idWasVisible) {\n",
       "          selectedParams.style.display = 'none';\n",
       "          currentTarget.classList.remove('ppy-font-color-brown');\n",
       "          currentTarget.classList.add('ppy-font-color');\n",
       "      } else {\n",
       "          selectedParams.style.display = 'block';\n",
       "          currentTarget.classList.remove('ppy-font-color');\n",
       "          currentTarget.classList.add('ppy-font-color-brown');\n",
       "      }\n",
       "  }\n",
       "}\n",
       "\n",
       "hljs.highlightAll();\n",
       "</script><link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css\"><script src=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js\"></script><script>hljs.highlightAll();</script><pre class='ppy-text-repr-fallback'>&lt;paidiverpy.images_layer.ImagesLayer object at 0x7695bda69000&gt;</pre><div>\n",
       "            <div class='ppy-h2 ppy-images-step-header' onclick='toggleMetadata(0, \"nfo\")'>\n",
       "                Step 0: raw\n",
       "                <span id='ppy-images-arrow-nfo-0'\n",
       "                    class='ppy-images-toggle-arrow ppy-font-color-brown'>▼\n",
       "                </span>\n",
       "            </div>\n",
       "            <div id='ppy-images-metadata-nfo-0' class='ppy-images-metadata' style='display:block;'><div class='ppy-images'>\n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-0-0\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:16:31\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-0-0' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-0-0'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/AOxAoxmnAUoFLikIpMcUoFPUU/FOAoK0YqF15qMikC08DilxQBzTwKTFIRxSYzTgKeop4FLiloIqNhmo/LyaCuOKAOKXFGKcBxSNTMUoHNSBaUCnqO9OIpKKTaDQVHamsvGajAxS4oxThwKa1NA704DmpAKdinAUpFNNLjNKFwKNtIVzUGKXrSkYoqNuTSingdDTwKeBTgKXGaYRzTlXNO200ikxVfFKBSmkPSmdTmgCpBUiin0tLRinAUuKTZSbKrDpRig9KaelNxzSgU4dalXmngUuKdikpwpwpcUhFUwOKWmmkxkU2nClqROlSUopaKUU8UoFLiqJ7UGmmk7UmKUdKUdaevSng04U7pSilApwp4pcVnUE0hoptKOKdilzxxT1PFSA0tO6UZp9OBpc1ncUmaOtFNP1pM0+gU9TUop4paKcDS96dWbmjNGcUtIeDSUtKOlPWpRThThS0UtOzWbRSjrmiikpaUVIKfmlBpQaeDS07rSVm9qXNOzwPWg9KKb3pacpp4NOzRmnA08GnCng0GswUtKKWikpAacKdmnbqM04Gng08GnA0tZq470uRQDS5pKDRSg0ZpwNLnilBp4NPBp4NLmv/9k='\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-0-1\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:17:31\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-0-1' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-0-1'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/ANt03UgQj3oZKFWnheKjdcE0gGadjPGKcBjinLTxTqTtSe1LTWHanmPNN2YNNxQBTgOKY49qjIFKOadjNOUU/pSgZFKRUZ6gU7tSAZNWCvXioyOSDSFQaNvFJtxTWGaYV5o20Uo4pQamUDHTmhgMVGQKTNOWrDDPNMIpuOcU4dMUjCmlaYR+NNxRjmlx6U5VzzUyrikfoaiIpCAMe9OFWnGKYQKTbkZpBwaU80080wikI9ab3pyr3qRRTqRuTUZHOaQgd6UDirjDg1Ewpop2KQimGmkCgkdKjbilVh0qRTT8cUhphHNNIzTh92rh5qNhxTAMU76UGmMKjLcVH05pcZAoAwacDyKkByKXOKYaULgZpCOKuGo2HOabijGKSmnpUTCm9qM54FLSgYpwOO9LmjFPI6VGw4q6aYw5pgPNITTc4phNNJzxTOp6UdPelBzQxxTVOak9+9PB6UvekYjFXMZph61GfvUhphNMY8Go1PNOzxTD0pRjOaCDTcfMO1Sg5NPHPWgtimM2TV7NNbrzTMUwnmmHpUTnANMzzxS5pfrSDjjtS5xSd6XPNP3YprPTA3NaGc9DSZzSE1E9NzxUMh5+tRjg5zS5x9KAacp596dTc/Nik3Ubu1NY55pqnBrRXrTvxpjVEx70wtgcVGxzUecUE0q/pThkcmnBwTTSeTzTfTignmjNIBhq0AeKUtims1QsajPSmd6axGc00+9AbGMU8kHFNIIPHFLnmhSM0jdaRc5zTwMtV0nPSmk0hP6Uw8nNRkH0phyO1N689qYTyeKbuxzUinoP0NBbmgYwfWk3cn1oJp69qeOBVtAgALkj0Apsu0EbDkGomamxqGD7nC4GQDnmoiDuCjOT04pzq0ar94E9QwpglcHBoknCBchWyOeOnNVxdIzbfKxz2NSSShVUhRhhn6c//WqJLj5vmGVzmphKuwMU4NM8xQSNvP1pdw3EEEEdaep5qTOOK//Z'\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-0-2\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:19:21\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-0-2' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-0-2'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APNQKlVeenWp0U1YjTJA7VIgwStSEYUHFSxripdow3HNRbMkjuBSiPIAoZAASfyqNlzTGjqPHao26dOgqFh3qqq4zViNRxntVpIwD1FSgcEgdqegyO3FS4yOntTlUBeM8CnKCwDYIz1B7UpTBz+lJnmmsO1NK89KifOP1phGPrUMn3cVER8vSoEGRUyp144NTqjKxI64qw3yDOOlSKCeccdqmC4HIpsYKsQRzU64HbFNb7opki7elJjOKb04ppUZOKhcYOQKhde9Rlciq6EcD1qwnIyOmanPBzUqMCRnn1qwGxnipF2vjI75FOdecZoUbV5PTvQORkU0+hpMcmmEAHpUY4JBpp5BqB+hGOajcYAHtVOMAYJ7VbjK4AAwalAGKkAwM1NHk8VKPapxlhz1pHBO0ggAHmmoM59PemvjdmkOQelI4xzTCOM1GByc1FKOQFHuajkIP9aooO9WIxg5qyq08elTr1zjipkGTUvanKAxwenvTWACkCmBcgcUjryCOlNYbhimMvGB3phTJXA4qGThxxzUDLgkVTSrCHoKsDk1IBk5qaPk/hU2GSPjrUi8jmnj0NAHOD3qRY1zntUcgAbPaotuOwwelN8vK8/zqNwQuVOGzUEgOfeq7Z5NUV4xirC9uasJ0571NHVhSFIxUwOfrS96fnkYpxJxwOacPlApr/N1702T76+gpjcdBVdmP3TUTtjAFU3lwTgZNVFqZMgnPSp1P6VYjOKmBqWNuTmpepzSq3J46U/OMEU0Mc89qHOFzzxUZcAhj26k00tn8Krvy2e4qEswkIIG3H45qsxIlbpjtVWL1qdQN31qYcEYHWpQ2CMdKlB96lVs81Mr8j2p2cnNLvwOTS9j7008sCeSKicg8MODwaazDPHbt6VCx2g4yT1qMsGGahcAnk1SRsKPrUqn5sVYBwP0pQcCnh/zqeNhUqmpMgDqKUEN1J+lKG+bHIpOp5qF2w3HrTnIK56VWYVGRhQO4qNs5xms2ORXTKkFQe3PNTxnNWM8AdqN2CPpmkEmDmp4pB/WrSsCnrTwfl96OxBP408nLnIIwBg+tRhyykjg01j1pu/I/CombNRkkg1BI2On4VjWECRMZEdjgbGBHGeDx/KtBSc5FTbjwaazYJOetRGQ9O1SxTZq9C+VFTq2H28461Ix43ClD5XPrxUbZCkLUe45xnNIz9h6dajLAU1nGcdqhkAySKyrdRHCqZyQOT6n1qwr4XP5U8vx1pjPkVBJJiiKQg1pW7nANXlfIpRLgYpRIMc8CmtJx9KjDbjzSPwajLdajY9s1E0g5rKSTin+dxR53HWtBNJ1Ca2E8Nv5yN08p1kJ9eASeM8+lQSaRqqsQdMvfwgbH8qrSQ3Fox+0QSxYbafMQrz+NWIbpQBg1ZF/n+IVILxXHJFSrcIwO0809GTaFP4mmM4Bz09qTzMtUTSYPXpUZcYNQs/FXtK0rRYrBLvxDfXMIn5gt7UDzCv945BwD2+lV/EWm6ZYzwy6PqBvbCdMq74EiMOCrDgg9D0Gc1gmVmcRqQD3J7Vs6LYWV1bajLe6hFAYLdmjQLIWZsgBhhduMnuQTnHuKjW06zRW8CzNcvjESocsWHGO5zn0rQv1vtHsLEySXsN7KjrLBcxMoEeRtChhyOp7jke9NPinW4QImnCFVUBfIQYAAxxt9MfUVebxDHbx2cl1p2lXbXEIeQC1VTCQ7Lt465VQ3OPvDsOYpvEekS7o/wDhHIVRudyTbG65B4TjuMehHpT9T1Oxh0y0aDR4YFu4fODGQuybXKFc4BOfLz9G9Tmsuy1W1huCbuzM8ZYnaJnXHGAOp47nOTkDkDOd2bVtNksormbR3QNlImKkK+1efmVlDHJXOB6/QUE1XTGiJNhL5yJ8oWb5HbuWHUDGTwfTtTNRZIJZLf7PJFcW7GOfnKgg4zwSOuBkMQT07ZomXINRmWv/2Q=='\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-0-3\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:19:51\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-0-3' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-0-3'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APOUGcVMq4arKg4zU6jLDI5PpU3lg446U9Vp3K4ParG0EZo2L6UNGAOKjMK5Jx146VA0WDwOlM8o8nueM0jpkEVCPNRSA/04HFVjvGSXJPrmoEB6YqdasKBkCrCgZFSqKkVadtDAg1KORxTiuOTS4BBFJtGMUwpjOaYUB7VCy8moXWqky98e1V0XipVGDmrCDoasL+lSp0/xqVetPwN1SgYNOAygpCvPvQeSKR1G3NRYIXpUbjI6VXcY/lVaRMpVNKsKtTxrxg1MBjmpUPy1Kgzj86kGBzUoXj604DAxSkcE8U3AzmggEVGRkcfjULDmoZB6VXI/dgdx1qgnY1YTrj0qzGKmPBI7e9OQbhirCY44p4HFSDGKUg7gaD8xwaQjnim5wcUmP1qBvvH2qNxwTVdxjOO9ZqdsVYQYqwjEdOKlGZOTU0fAqYHkVIvAHFPUYFPU56UkmDg+hpM8imSDIpoPHfNQN1NMbOP8arsetZsfWpx0qwvFSocA+pqaP1qVSS+KnHIp3bFOHejqDSdDTScj6VEDjIqKTg5xxUbcjioW4BNZkY4FTqf51YWpscDNSqfyqVD82anQginfSlzwcUo6Zpp6/Sm9DUTDDE0xh1qFj8tRSHjis1fSp1FWEzx7VKp4qVOakU5JFTRelSH1xR2pwPTnFNPSmsOlMI5NRtUEnXFRPisxTVlSBUytmpMnGKmU1IKljIBBzU27rxQBkZHShuPypCc8U0n9KZnioiagcjNRt71lIeasA8ZNToamB6mnK/8A9epgwNSBsqMVIzMOAeKUSe9KX96GfrUe48ioy3PXjFNz8oqu5+bHvTGNZMTqy5VgR6jmrAc1PE3y5Jp+/mkMoGMGpRLkDFWI5PlGO1SGQkjmlB+bPrS7snrTt2V/WmFvmP0xTSeKj3YyKhZu/FRO2RXO2ECxOZEkJIGxgRxng5H8q0Q/vViNyEFBkI61EZealjmOQPSrcL5FTJJk0/f2FOVuTnpTt3FNY81GW5NMZqhkb5TURbrWLbL5UQXOT3PqasBuRU6P8maa8nHWoS/NSRvV6B/lGfSrCOMU7f1PenB/SneZxikZsims+aiZ6iZqidqxg+KkElPM2AAKurpOozWwnht/ORvu+S6uT+CknjPPpUT6TqyNg6Zef9+G5/SoJI7m2z9ot5YsHafMQrz1xzUsd1hetTreDpuxUn2oc809LkZ60/zgTx6U4y5HWk8zI5qN5O+ajeTjNRl6taXpWiRWKXfiK9uIBNzDb2oHmFf7xyDgHtUHiHT9NsJ4ZdH1D7bYTJlWfAkRh1VhwQehyQM5rAMrPJ5akD1J6CtnRbCyurXUZb3UIoDBbs0aBZCzNkAHhduMkdSCcgY7io1tOs8VvAs7XL4xEqHcxYZG3uc59Kv3632kWFi0kt7DezI6ywXMLriPI2Bdw5HU9xyO+aRvFOtwDymnCbVVQvkIMKACONvpj6irzeIkt4rOS507SrtriEO4FqoMJDsu3g85VQ3OPvDsOY5vEmkS7o/+EdiVGOdyz7G65BGF47jHoR6U7VNTsYtMtDBo8MC3cPnBjKzlNrlCueM58vP0b1OayrLVLWC4JurIzRFidomdccYA6njuc85A5Aznel1bTnsYrmXSHRWykTlCqvtUZ+ZWUMclc4Hr9BQTVdNeEk2EvmonyhZvkdu5YdQMZPB9O1M1B0gkktzBJFcW7GOfn5QQcZ4JHXjIYgnp71DLxTPN4r//2Q=='\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-0-4\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:21:31\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-0-4' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-0-4'\n",
       "                src='data:image/jpeg;base64,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'\n",
       "                class='ppy-images-img'/></div>\n",
       "            </div></div>\n",
       "            <div class='ppy-h2 ppy-images-step-header' onclick='toggleMetadata(1, \"nfo\")'>\n",
       "                Step 1: sampling\n",
       "                <span id='ppy-images-arrow-nfo-1'\n",
       "                    class='ppy-images-toggle-arrow ppy-font-color-brown'>▼\n",
       "                </span>\n",
       "            </div>\n",
       "            <div id='ppy-images-metadata-nfo-1' class='ppy-images-metadata' style='display:block;'><div class='ppy-images'>\n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-1-0\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:16:31\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-1-0' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-1-0'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/AOxAoxmnAUoFLikIpMcUoFPUU/FOAoK0YqF15qMikC08DilxQBzTwKTFIRxSYzTgKeop4FLiloIqNhmo/LyaCuOKAOKXFGKcBxSNTMUoHNSBaUCnqO9OIpKKTaDQVHamsvGajAxS4oxThwKa1NA704DmpAKdinAUpFNNLjNKFwKNtIVzUGKXrSkYoqNuTSingdDTwKeBTgKXGaYRzTlXNO200ikxVfFKBSmkPSmdTmgCpBUiin0tLRinAUuKTZSbKrDpRig9KaelNxzSgU4dalXmngUuKdikpwpwpcUhFUwOKWmmkxkU2nClqROlSUopaKUU8UoFLiqJ7UGmmk7UmKUdKUdaevSng04U7pSilApwp4pcVnUE0hoptKOKdilzxxT1PFSA0tO6UZp9OBpc1ncUmaOtFNP1pM0+gU9TUop4paKcDS96dWbmjNGcUtIeDSUtKOlPWpRThThS0UtOzWbRSjrmiikpaUVIKfmlBpQaeDS07rSVm9qXNOzwPWg9KKb3pacpp4NOzRmnA08GnCng0GswUtKKWikpAacKdmnbqM04Gng08GnA0tZq470uRQDS5pKDRSg0ZpwNLnilBp4NPBp4NLmv/9k='\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-1-1\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:17:31\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-1-1' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-1-1'\n",
       "                src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/ANt03UgQj3oZKFWnheKjdcE0gGadjPGKcBjinLTxTqTtSe1LTWHanmPNN2YNNxQBTgOKY49qjIFKOadjNOUU/pSgZFKRUZ6gU7tSAZNWCvXioyOSDSFQaNvFJtxTWGaYV5o20Uo4pQamUDHTmhgMVGQKTNOWrDDPNMIpuOcU4dMUjCmlaYR+NNxRjmlx6U5VzzUyrikfoaiIpCAMe9OFWnGKYQKTbkZpBwaU80080wikI9ab3pyr3qRRTqRuTUZHOaQgd6UDirjDg1Ewpop2KQimGmkCgkdKjbilVh0qRTT8cUhphHNNIzTh92rh5qNhxTAMU76UGmMKjLcVH05pcZAoAwacDyKkByKXOKYaULgZpCOKuGo2HOabijGKSmnpUTCm9qM54FLSgYpwOO9LmjFPI6VGw4q6aYw5pgPNITTc4phNNJzxTOp6UdPelBzQxxTVOak9+9PB6UvekYjFXMZph61GfvUhphNMY8Go1PNOzxTD0pRjOaCDTcfMO1Sg5NPHPWgtimM2TV7NNbrzTMUwnmmHpUTnANMzzxS5pfrSDjjtS5xSd6XPNP3YprPTA3NaGc9DSZzSE1E9NzxUMh5+tRjg5zS5x9KAacp596dTc/Nik3Ubu1NY55pqnBrRXrTvxpjVEx70wtgcVGxzUecUE0q/pThkcmnBwTTSeTzTfTignmjNIBhq0AeKUtims1QsajPSmd6axGc00+9AbGMU8kHFNIIPHFLnmhSM0jdaRc5zTwMtV0nPSmk0hP6Uw8nNRkH0phyO1N689qYTyeKbuxzUinoP0NBbmgYwfWk3cn1oJp69qeOBVtAgALkj0Apsu0EbDkGomamxqGD7nC4GQDnmoiDuCjOT04pzq0ar94E9QwpglcHBoknCBchWyOeOnNVxdIzbfKxz2NSSShVUhRhhn6c//WqJLj5vmGVzmphKuwMU4NM8xQSNvP1pdw3EEEEdaep5qTOOK//Z'\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-1-2\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:19:21\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-1-2' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-1-2'\n",
       "                src='data:image/jpeg;base64,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'\n",
       "                class='ppy-images-img'/></div>\n",
       "            \n",
       "        <div>\n",
       "            <p onclick='toggleImage(\"image-nfo-1-3\", \"nfo\")' class=\"ppy-images-image-p\" >\n",
       "                Image: 2018-06-11T04:19:51\n",
       "                <span id='ppy-images-arrow-nfo-image-nfo-1-3' class='ppy-images-toggle-arrow ppy-font-color-brown'>▼</span>\n",
       "            </p>\n",
       "        \n",
       "            <img id='image-nfo-1-3'\n",
       "                src='data:image/jpeg;base64,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'\n",
       "                class='ppy-images-img'/></div>\n",
       "            </div></div></div></div>"
      ],
      "text/plain": [
       "<paidiverpy.images_layer.ImagesLayer at 0x7695bda69000>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# See the output images\n",
    "resample.images"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b8d08e1c-c9e1-478f-95fa-a368ee58d00c",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
