diff --git a/.appveyor.yml b/.appveyor.yml
index 24bbd1ffc933b4af2c9d5e37e10ec2b698f213a6..20b351f28611fefcc652ac9a17f5da57431ed39b 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -24,6 +24,7 @@ before_build:
 
 build_script:
   - python ..\setup.py install
+# pip3 install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org -e ..
   - cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON -G "Visual Studio 16 2019" -A x64 -DALE_BUILD_TESTS=OFF ..
   - cmake --build . --target ALL_BUILD --config Release
 
diff --git a/ale/drivers/msi_drivers.py b/ale/drivers/msi_drivers.py
new file mode 100644
index 0000000000000000000000000000000000000000..c06476f35ee1ec5971dd78b7e59ee9e04e2b7897
--- /dev/null
+++ b/ale/drivers/msi_drivers.py
@@ -0,0 +1,112 @@
+import os
+import spiceypy as spice
+import json
+import numpy as np
+import pvl
+
+import ale
+from ale.base import Driver
+from ale.base.label_isis import IsisLabel
+from ale.base.data_naif import NaifSpice
+from ale.base.type_distortion import RadialDistortion, NoDistortion
+from ale.base.type_sensor import Framer, LineScanner
+from ale.util import generate_kernels_from_cube
+from ale.base.type_sensor import Framer
+from ale.base.type_distortion import NoDistortion
+
+from ale import util
+
+
+class MsiIsisLabelNaifSpiceDriver(Framer, IsisLabel, NaifSpice, NoDistortion, Driver):
+    """
+    Driver for reading Multi-Spectral Image ISIS3 Labels
+    """
+
+    @property
+    def instrument_id(self):
+        """
+        Returns an instrument id for uniquely identifying the instrument,
+        but often also used to be piped into Spice Kernels to acquire
+        IKIDS. Therefore they are the same ID that Spice expects in bods2c
+        calls. Expect instrument_id to be defined in the IsisLabel mixin.
+        This should be a string of the form NEAR EARTH ASTEROID RENDEZVOUS
+
+        Returns
+        -------
+        : str
+          instrument id
+        """
+        lookup_table = {"MSI": "NEAR EARTH ASTEROID RENDEZVOUS"}
+        return lookup_table[super().instrument_id]
+
+    @property
+    def sensor_name(self):
+        """
+        Returns the name of the instrument
+
+        Returns
+        -------
+        : str
+          instrument name
+        """
+        return "MULTI-SPECTRAL IMAGER"
+
+    @property
+    def sensor_model_version(self):
+        """
+        Returns ISIS sensor model version
+
+        Returns
+        -------
+        : int
+          ISIS sensor model version
+        """
+        return 1
+
+    @property
+    def spacecraft_clock_start_count(self):
+        """
+        The spacecraft clock start count, frequently used to determine the start time
+        of the image.
+
+        Returns
+        -------
+        : str
+          spacecraft clock start count
+        """
+        if "SpacecraftClockStartCount" in self.label["IsisCube"]["Instrument"]:
+            return str(
+                self.label["IsisCube"]["Instrument"]["SpacecraftClockStartCount"])
+        else:
+            return None
+
+    @property
+    def spacecraft_clock_stop_count(self):
+        """
+        The spacecraft clock stop count, frequently used to determine the stop time
+        of the image.
+
+        Returns
+        -------
+        : str
+          spacecraft clock stop count
+        """
+        if "SpacecraftClockStopCount" in self.label["IsisCube"]["Instrument"]:
+            return str(
+                self.label["IsisCube"]["Instrument"]["SpacecraftClockStopCount"])
+        else:
+            return None
+
+    @property
+    def ikid(self):
+        """
+        Overridden to grab the ikid from the Isis Cube since there is no way to
+        obtain this value with a spice bods2c call. Isis sets this value during
+        ingestion, based on the original fits file.
+
+        Returns
+        -------
+        : int
+          Naif ID used to for identifying the instrument in Spice kernels
+        """
+        return self.label["IsisCube"]["Kernels"]["NaifFrameCode"]
diff --git a/notebooks/write_MsiIsisLabelNaifSpiceDriver.ipynb b/notebooks/write_MsiIsisLabelNaifSpiceDriver.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..9552ccf438aef5edf5c522b2404300a7786519f1
--- /dev/null
+++ b/notebooks/write_MsiIsisLabelNaifSpiceDriver.ipynb
@@ -0,0 +1,1419 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "e6ee49c3",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# You will need the ISISDATA area in your environment to get the appropriate kernel paths\n",
+    "import os\n",
+    "os.environ[\"ISISDATA\"] = \"/Users/ahibl/working/astro/local_isis_data/\"\n",
+    "os.environ[\"ISISTESTDATA\"] = \"/Users/ahibl/astro_efs/isis_testData/\"\n",
+    "os.environ[\"ISISROOT\"] = \"/Users/ahibl/working/astro/ISIS3/build/\"\n",
+    "os.environ[\"ALESPICEROOT\"] = \"/Users/ahibl/astro_efs/usgs_data/\"\n",
+    "\n",
+    "import spiceypy as spice\n",
+    "import json\n",
+    "import numpy as np\n",
+    "import pvl\n",
+    "\n",
+    "import ale\n",
+    "from ale.base import Driver\n",
+    "from ale.base.label_isis import IsisLabel\n",
+    "from ale.base.data_naif import NaifSpice\n",
+    "from ale.base.type_distortion import RadialDistortion, NoDistortion\n",
+    "from ale.base.type_sensor import Framer, LineScanner\n",
+    "from ale.util import generate_kernels_from_cube\n",
+    "from ale.base.type_sensor import Framer\n",
+    "from ale.base.type_distortion import NoDistortion\n",
+    "from ale.drivers.msl_drivers import MslMastcamPds3NaifSpiceDriver\n",
+    "from ale.formatters.usgscsm_formatter import to_usgscsm\n",
+    "\n",
+    "from ale import util\n",
+    "from ale.util import generate_kernels_from_cube\n",
+    "from ale.drivers import AleJsonEncoder, load, loads\n",
+    "from ale.formatters.formatter import to_isd"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "6ef22a77",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "['/Users/ahibl/working/astro/local_isis_data//base/kernels/spk/de405.bsp',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//near/kernels/tspk/erosephem_1999004_2002181.bsp',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//near/kernels/spk/near_erosorbit_nav_v1.bsp',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//near/kernels/ck/near_2000056_v01.bc',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//near/kernels/fk/eros_fixed.tf',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//base/kernels/pck/pck00009.tpc',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//near/kernels/ik/msi15.ti',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//base/kernels/lsk/naif0012.tls',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//near/kernels/sclk/near_171.tsc',\n",
+       " '/Users/ahibl/working/astro/local_isis_data//near/kernels/iak/msiAddendum002.ti']"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Generate kernels from an ISIS spiceinit'd label\n",
+    "cube = \"/Users/ahibl/working/astro/img_data/MSI/cubes/ale/ale_spice01.cub\"\n",
+    "kernels = generate_kernels_from_cube(cube, expand=True, format_as='list')\n",
+    "kernels\n",
+    "a\n",
+    "# change to desired PDS3 image path\n",
+    "#file_name = '/Users/ahibl/working/astro/img_data/0269ML0011790000106115E01_DRCX.lbl'\n",
+    "\n",
+    "# metakernels are furnished when entering the context (with block) with a driver instance\n",
+    "# most driver constructors simply accept an image path \n",
+    "#with MslMastcamPds3NaifSpiceDriver(file_name, props={'kernels': [\"/Users/ahibl/working/astro/rand/msl_2017_v01.tm\"]}) as driver:\n",
+    "    # pass driver instance into formatter function\n",
+    "    #usgscsmString = to_usgscsm(driver)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "0721b82d",
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "NameError",
+     "evalue": "name 'isis_isd' is not defined",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn [4], line 2\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mopen\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/Users/ahibl/working/astro/ISDs/msl_2.json\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m fp:\n\u001b[0;32m----> 2\u001b[0m     json\u001b[38;5;241m.\u001b[39mdump(\u001b[43misis_isd\u001b[49m, fp, \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m=\u001b[39mAleJsonEncoder, indent\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m)\n",
+      "\u001b[0;31mNameError\u001b[0m: name 'isis_isd' is not defined"
+     ]
+    }
+   ],
+   "source": [
+    "with open(\"/Users/ahibl/working/astro/ISDs/msl_2.json\", 'w') as fp:\n",
+    "    json.dump(ale_isd, fp, cls=AleJsonEncoder, indent=2)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "2d21b857",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Build new driver in this cell\n",
+    "\n",
+    "class MsiIsisLabelNaifSpiceDriver(Framer, IsisLabel, NaifSpice, NoDistortion, Driver):\n",
+    "    \n",
+    "    @property\n",
+    "    def instrument_id(self):\n",
+    "        \"\"\"\n",
+    "        Returns an instrument id for uniquely identifying the instrument,\n",
+    "        but often also used to be piped into Spice Kernels to acquire\n",
+    "        IKIDS. Therefor they are the same ID that Spice expects in bods2c\n",
+    "        calls. Expect instrument_id to be defined in the IsisLabel mixin.\n",
+    "        This should be a string of the form NEAR EARTH ASTEROID RENDEZVOUS\n",
+    "\n",
+    "        Returns\n",
+    "        -------\n",
+    "        : str\n",
+    "          instrument id\n",
+    "        \"\"\"\n",
+    "        lookup_table = {\n",
+    "        \"MSI\": \"NEAR EARTH ASTEROID RENDEZVOUS\"\n",
+    "        }\n",
+    "        print(lookup_table[super().instrument_id])\n",
+    "        return lookup_table[super().instrument_id]\n",
+    "\n",
+    "    @property\n",
+    "    def sensor_name(self):\n",
+    "        \"\"\"\n",
+    "        Returns the name of the instrument\n",
+    "\n",
+    "        Returns\n",
+    "        -------\n",
+    "        : str\n",
+    "          instrument name\n",
+    "        \"\"\"\n",
+    "        return \"MULTI-SPECTRAL IMAGER\"\n",
+    "\n",
+    "    @property\n",
+    "    def sensor_model_version(self):\n",
+    "        \"\"\"\n",
+    "        Returns ISIS sensor model version\n",
+    "\n",
+    "        Returns\n",
+    "        -------\n",
+    "        : int\n",
+    "          ISIS sensor model version\n",
+    "        \"\"\"\n",
+    "        return 1\n",
+    "    \n",
+    "    # Overridden to remove decimal and 2multiply by a factor of 100 helps remove 2 fields issue cleanly\n",
+    "    @property\n",
+    "    def spacecraft_clock_start_count(self):\n",
+    "        \"\"\"\n",
+    "        The spacecraft clock start count, frequently used to determine the start time\n",
+    "        of the image.\n",
+    "\n",
+    "        Returns\n",
+    "        -------\n",
+    "        : str\n",
+    "          spacecraft clock start count\n",
+    "        \"\"\"\n",
+    "        if 'SpacecraftClockStartCount' in self.label['IsisCube']['Instrument']:\n",
+    "            \n",
+    "            return str(self.label['IsisCube']['Instrument']['SpacecraftClockStartCount'])\n",
+    "        else:\n",
+    "            return None\n",
+    "\n",
+    "    # Overridden to remove decimal and 2multiply by a factor of 100 helps remove 2 fields issue cleanly\n",
+    "    @property\n",
+    "    def spacecraft_clock_stop_count(self):\n",
+    "        \"\"\"\n",
+    "        The spacecraft clock stop count, frequently used to determine the stop time\n",
+    "        of the image.\n",
+    "\n",
+    "        Returns\n",
+    "        -------\n",
+    "        : str\n",
+    "          spacecraft clock stop count\n",
+    "        \"\"\"\n",
+    "        if 'SpacecraftClockStopCount' in self.label['IsisCube']['Instrument']:\n",
+    "            return str(self.label['IsisCube']['Instrument']['SpacecraftClockStopCount'] * 100).replace(\".\",\"\")\n",
+    "        else:\n",
+    "            return None\n",
+    "\n",
+    "    @property\n",
+    "    def ephemeris_stop_time(self):\n",
+    "        \"\"\"\n",
+    "        Returns the sum of the starting ephemeris time and the exposure duration.\n",
+    "        Expects ephemeris start time and exposure duration to be defined. These\n",
+    "        should be double precision numbers containing the ephemeris start and\n",
+    "        exposure duration of the image.\n",
+    "        Returns\n",
+    "        -------\n",
+    "        : double\n",
+    "          Ephemeris stop time for an image\n",
+    "        \"\"\"\n",
+    "        return self.ephemeris_start_time + self.exposure_duration\n",
+    "    \n",
+    "    @property\n",
+    "    def ikid(self):\n",
+    "        \"\"\"\n",
+    "        Overridden to grab the ikid from the Isis Cube since there is no way to\n",
+    "        obtain this value with a spice bods2c call. Isis sets this value during\n",
+    "        ingestion, based on the original fits file.\n",
+    "        \n",
+    "        Returns\n",
+    "        -------\n",
+    "        : int\n",
+    "          Naif ID used to for identifying the instrument in Spice kernels\n",
+    "        \"\"\"\n",
+    "        return self.label['IsisCube']['Kernels']['NaifFrameCode']\n",
+    "    "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "27ed1125",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pprint\n",
+    "\n",
+    "# Create ISD from ISIS label\n",
+    "ale_file = \"/Users/ahibl/working/astro/img_data/MSI/cubes/ale/ale_spice01.cub\"\n",
+    "#unspiced_file = \"/Users/ahibl/working/astro/img_data/MSI/ad_1.cub\"\n",
+    "#isis_file = \"/Users/ahibl/working/astro/img_data/MSI/spicy_ad_1.cub\"\n",
+    "\n",
+    "with MsiIsisLabelNaifSpiceDriver(ale_file, props = {\"kernels\" : kernels}) as driver:\n",
+    "    ale_isd = to_isd(driver)\n",
+    "\n",
+    "#with MsiIsisLabelNaifSpiceDriver(isis_file, props = {\"kernels\" : kernels}) as driver:\n",
+    "    #isis_isd = to_isd(driver)\n",
+    "\n",
+    "#with MsiIsisLabelNaifSpiceDriver(unspiced_file, props = {\"kernels\" : kernels}) as driver:\n",
+    "    #unspicy_isd = to_isd(driver)\n",
+    "    \n",
+    "#isds = [ale_isd, isis_isd, unspicy_isd]\n",
+    "\n",
+    "#pprint.pprint(isds[0])\n",
+    "\n",
+    "#print(\"\\n\\n\")\n",
+    "\n",
+    "#pprint.pprint(isds[1])\n",
+    "\n",
+    "#print(\"\\n\\n\")\n",
+    "\n",
+    "#pprint.pprint(isds[2])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "24390fc9",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# with open(\"/Users/ahibl/working/astro/ISDs/msl_1.json\", 'w') as fp:\n",
+    "#     json.dump(usgscsmString, fp, cls=AleJsonEncoder, indent=2)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5c091e62",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "file = \"/Users/ahibl/working/astro/ISIS3/isis/tests/data/near/msi2isis/test.cub\"\n",
+    "\n",
+    "with MsiIsisLabelNaifSpiceDriver(file, props = {\"kernels\" : kernels}) as driver:\n",
+    "    #test area"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "71e5d6cb",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Write ISD to file\n",
+    "with open(\"/Users/ahibl/working/astro/ISDs/msi_aled.json\", 'w') as fp:\n",
+    "    json.dump(ale_isd, fp, cls=AleJsonEncoder, indent=2)\n",
+    "#with open(\"/Users/ahibl/working/astro/ISDs/msi_isis.json\", 'w') as fp:\n",
+    "#    json.dump(isis_isd, fp, cls=AleJsonEncoder, indent=2)\n",
+    "#with open(\"/Users/ahibl/working/astro/ISDs/msi_unspiced.json\", 'w') as fp:\n",
+    "#    json.dump(unspicy_isd, fp, cls=AleJsonEncoder, indent=2)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "85d6606d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Banana False False\n",
+      "[<class 'ale.drivers.msi_drivers.MsiIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.osirisrex_drivers.OsirisRexCameraIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.galileo_drivers.GalileoSsiIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.clipper_drivers.ClipperEISNACFCIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.clipper_drivers.ClipperEISNACPBIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.clipper_drivers.ClipperEISWACFCIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.clipper_drivers.ClipperEISWACPBIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.dawn_drivers.DawnFcPds3NaifSpiceDriver'>, <class 'ale.drivers.co_drivers.CassiniIssIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.co_drivers.CassiniIssPds3LabelNaifSpiceDriver'>, <class 'ale.drivers.msl_drivers.MslMastcamPds3NaifSpiceDriver'>, <class 'ale.drivers.lro_drivers.LroLrocNacIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.lro_drivers.LroLrocNacPds3LabelNaifSpiceDriver'>, <class 'ale.drivers.lro_drivers.LroLrocWacIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.lro_drivers.LroMiniRfIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.mex_drivers.MexHrscIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.mex_drivers.MexHrscPds3NaifSpiceDriver'>, <class 'ale.drivers.mex_drivers.MexSrcPds3NaifSpiceDriver'>, <class 'ale.drivers.viking_drivers.VikingIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.chandrayaan_drivers.Chandrayaan1M3IsisLabelNaifSpiceDriver'>, <class 'ale.drivers.mro_drivers.MroCrismIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.mro_drivers.MroCtxIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.mro_drivers.MroCtxPds3LabelNaifSpiceDriver'>, <class 'ale.drivers.mro_drivers.MroHiRiseIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.mro_drivers.MroMarciIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.nh_drivers.NewHorizonsLeisaIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.nh_drivers.NewHorizonsLorriIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.nh_drivers.NewHorizonsMvicIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.nh_drivers.NewHorizonsMvicTdiIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.selene_drivers.KaguyaMiIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.selene_drivers.KaguyaMiPds3NaifSpiceDriver'>, <class 'ale.drivers.selene_drivers.KaguyaTcPds3NaifSpiceDriver'>, <class 'ale.drivers.mess_drivers.MessengerMdisIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.mess_drivers.MessengerMdisPds3NaifSpiceDriver'>, <class 'ale.drivers.voyager_drivers.VoyagerCameraIsisLabelNaifSpiceDriver'>, <class 'ale.drivers.co_drivers.CassiniIssIsisLabelIsisSpiceDriver'>, <class 'ale.drivers.lro_drivers.LroLrocNacIsisLabelIsisSpiceDriver'>, <class 'ale.drivers.lro_drivers.LroLrocWacIsisLabelIsisSpiceDriver'>, <class 'ale.drivers.viking_drivers.VikingIsisLabelIsisSpiceDriver'>, <class 'ale.drivers.mro_drivers.MroCtxIsisLabelIsisSpiceDriver'>, <class 'ale.drivers.isis_ideal_drivers.IdealLsIsisLabelIsisSpiceDriver'>, <class 'ale.drivers.selene_drivers.KaguyaTcIsisLabelIsisSpiceDriver'>, <class 'ale.drivers.mess_drivers.MessengerMdisIsisLabelIsisSpiceDriver'>]\n",
+      "Attempting to pre-parse label file\n",
+      "First parse attempt failed with\n",
+      "(LexerError(...), 'Expecting an Aggregation Block, an Assignment Statement, or an End Statement, but found \"+\" : line 366 column 42 (char 8915) near \"    = LT+S\\n \"')\n",
+      "Successfully pre-parsed label file\n",
+      "Trying <class 'ale.drivers.msi_drivers.MsiIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.osirisrex_drivers.OsirisRexCameraIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.galileo_drivers.GalileoSsiIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.clipper_drivers.ClipperEISNACFCIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.clipper_drivers.ClipperEISNACPBIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.clipper_drivers.ClipperEISWACFCIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.clipper_drivers.ClipperEISWACPBIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.dawn_drivers.DawnFcPds3NaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.co_drivers.CassiniIssIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.co_drivers.CassiniIssPds3LabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.msl_drivers.MslMastcamPds3NaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.lro_drivers.LroLrocNacIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.lro_drivers.LroLrocNacPds3LabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.lro_drivers.LroLrocWacIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.lro_drivers.LroMiniRfIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mex_drivers.MexHrscIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mex_drivers.MexHrscPds3NaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mex_drivers.MexSrcPds3NaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.viking_drivers.VikingIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.chandrayaan_drivers.Chandrayaan1M3IsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mro_drivers.MroCrismIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mro_drivers.MroCtxIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mro_drivers.MroCtxPds3LabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mro_drivers.MroHiRiseIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mro_drivers.MroMarciIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.nh_drivers.NewHorizonsLeisaIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.nh_drivers.NewHorizonsLorriIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.nh_drivers.NewHorizonsMvicIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.nh_drivers.NewHorizonsMvicTdiIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.selene_drivers.KaguyaMiIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.selene_drivers.KaguyaMiPds3NaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.selene_drivers.KaguyaTcPds3NaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mess_drivers.MessengerMdisIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mess_drivers.MessengerMdisPds3NaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.voyager_drivers.VoyagerCameraIsisLabelNaifSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.co_drivers.CassiniIssIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.lro_drivers.LroLrocNacIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.lro_drivers.LroLrocWacIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.viking_drivers.VikingIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mro_drivers.MroCtxIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.isis_ideal_drivers.IdealLsIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.selene_drivers.KaguyaTcIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n",
+      "Trying <class 'ale.drivers.mess_drivers.MessengerMdisIsisLabelIsisSpiceDriver'>\n",
+      "Failed: Expecting value: line 1 column 1 (char 0)\n",
+      "\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n",
+      "Traceback (most recent call last):\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/drivers/__init__.py\", line 153, in load\n",
+      "    res = driver(label, props=props, parsed_label=parsed_label)\n",
+      "  File \"/Users/ahibl/working/astro/ale/ale/base/base.py\", line 26, in __init__\n",
+      "    self._props = json.loads(props)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/__init__.py\", line 346, in loads\n",
+      "    return _default_decoder.decode(s)\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 337, in decode\n",
+      "    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n",
+      "  File \"/Users/ahibl/homebrew/Caskroom/miniconda/base/envs/ale-dvlp/lib/python3.10/json/decoder.py\", line 355, in raw_decode\n",
+      "    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\n",
+      "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n"
+     ]
+    },
+    {
+     "ename": "Exception",
+     "evalue": "No Such Driver for Label",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mException\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn [3], line 2\u001b[0m\n\u001b[1;32m      1\u001b[0m file \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/Users/ahibl/working/astro/img_data/MSI/labels/ale_spice01.lbl\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m----> 2\u001b[0m \u001b[43male\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfile\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43male\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n",
+      "File \u001b[0;32m~/working/astro/ale/ale/drivers/__init__.py:166\u001b[0m, in \u001b[0;36mload\u001b[0;34m(label, props, formatter, verbose, only_isis_spice, only_naif_spice)\u001b[0m\n\u001b[1;32m    164\u001b[0m             \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFailed: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m    165\u001b[0m             traceback\u001b[38;5;241m.\u001b[39mprint_exc()\n\u001b[0;32m--> 166\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mNo Such Driver for Label\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
+      "\u001b[0;31mException\u001b[0m: No Such Driver for Label"
+     ]
+    }
+   ],
+   "source": [
+    "file = '/Users/ahibl/working/astro/img_data/MSI/labels/ale_spice01.lbl'\n",
+    "ale.load(file, \"ale\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "a1d84d0e",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Object = IsisCube\n",
+      "  Object = Core\n",
+      "    StartByte   = 65537\n",
+      "    Format      = Tile\n",
+      "    TileSamples = 179\n",
+      "    TileLines   = 412\n",
+      "\n",
+      "    Group = Dimensions\n",
+      "      Samples = 537\n",
+      "      Lines   = 412\n",
+      "      Bands   = 1\n",
+      "    End_Group\n",
+      "\n",
+      "    Group = Pixels\n",
+      "      Type       = Real\n",
+      "      ByteOrder  = Lsb\n",
+      "      Base       = 0.0\n",
+      "      Multiplier = 1.0\n",
+      "    End_Group\n",
+      "  End_Object\n",
+      "\n",
+      "  Group = Instrument\n",
+      "    SpacecraftName                    = \"NEAR EARTH ASTEROID RENDEZVOUS\"\n",
+      "    InstrumentId                      = MSI\n",
+      "    TargetName                        = EROS\n",
+      "    StartTime                         = 2000-02-25T05:16:12.656\n",
+      "    StopTime                          = 2000-02-25T05:16:12.745\n",
+      "    SpacecraftClockStartCount         = 126865998830\n",
+      "    SpacecraftClockStopCount          = 126865998919\n",
+      "    ExposureDuration                  = 89.00 <ms>\n",
+      "    OriginalSpacecraftClockStartCount = 126865998.830\n",
+      "    OriginalSpacecraftClockStopCount  = 126865998.919\n",
+      "    DpuDeckTemperature                = 286.50 <K>\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Archive\n",
+      "    DataSetId          = NEAR-A-MSI-3-EDR-EROS/ORBIT-V1.0\n",
+      "    ProducerFullName   = \"Scott L. Murchie\"\n",
+      "    ProductId          = M0126865998F4_2P_IOF.FIT\n",
+      "    ProductVersionId   = 1.0\n",
+      "    InstrumentHostName = \"NEAR EARTH ASTEROID RENDEZVOUS\"\n",
+      "    InstrumentName     = \"MULTI-SPECTRAL IMAGER\"\n",
+      "    InstrumentId       = MSI\n",
+      "    TargetName         = EROS\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = BandBin\n",
+      "    FilterNumber = 4\n",
+      "    Center       = 950 <nm>\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Kernels\n",
+      "    NaifFrameCode             = -93001\n",
+      "    LeapSecond                = $base/kernels/lsk/naif0012.tls\n",
+      "    TargetAttitudeShape       = $base/kernels/pck/pck00009.tpc\n",
+      "    TargetPosition            = (Table, $base/kernels/spk/de405.bsp,\n",
+      "                                 $near/kernels/tspk/erosephem_1999004_2002181.-\n",
+      "                                 bsp)\n",
+      "    InstrumentPointing        = (Table, $near/kernels/ck/near_2000056_v01.bc,\n",
+      "                                 $near/kernels/fk/eros_fixed.tf)\n",
+      "    Instrument                = $near/kernels/ik/msi15.ti\n",
+      "    SpacecraftClock           = $near/kernels/sclk/near_171.tsc\n",
+      "    InstrumentPosition        = (Table,\n",
+      "                                 $near/kernels/spk/near_erosorbit_nav_v1.bsp)\n",
+      "    InstrumentAddendum        = $near/kernels/iak/msiAddendum002.ti\n",
+      "    ShapeModel                = Null\n",
+      "    InstrumentPositionQuality = Reconstructed\n",
+      "    InstrumentPointingQuality = Reconstructed\n",
+      "    CameraVersion             = 2\n",
+      "    Source                    = ale\n",
+      "  End_Group\n",
+      "End_Object\n",
+      "\n",
+      "Object = Label\n",
+      "  Bytes = 65536\n",
+      "End_Object\n",
+      "\n",
+      "Object = Table\n",
+      "  Name                = InstrumentPointing\n",
+      "  StartByte           = 955907\n",
+      "  Bytes               = 128\n",
+      "  Records             = 2\n",
+      "  ByteOrder           = Lsb\n",
+      "  TimeDependentFrames = (-93000, 1)\n",
+      "  ConstantFrames      = (-93001, -93000)\n",
+      "  ConstantRotation    = (-0.0014422521585656, 6.97819591591179e-07,\n",
+      "                         0.99999895995357, -4.83840156360023e-04,\n",
+      "                         -0.99999988294934, 0.0, 0.99999884290304,\n",
+      "                         -4.83839653143797e-04, 0.0014422523273822)\n",
+      "  CkTableStartTime    = 4727836.2200713\n",
+      "  CkTableEndTime      = 4727837.220071\n",
+      "  CkTableOriginalSize = 2\n",
+      "  FrameTypeCode       = 3\n",
+      "  Description         = \"Created by spiceinit\"\n",
+      "  Kernels             = ($near/kernels/ck/near_2000056_v01.bc,\n",
+      "                         $near/kernels/fk/eros_fixed.tf)\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q0\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q1\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q2\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q3\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = AV1\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = AV2\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = AV3\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = ET\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "End_Object\n",
+      "\n",
+      "Object = Table\n",
+      "  Name                 = InstrumentPosition\n",
+      "  StartByte            = 956035\n",
+      "  Bytes                = 56\n",
+      "  Records              = 1\n",
+      "  ByteOrder            = Lsb\n",
+      "  CacheType            = Linear\n",
+      "  SpkTableStartTime    = 4727836.8855711\n",
+      "  SpkTableEndTime      = 4727836.8855711\n",
+      "  SpkTableOriginalSize = 1.0\n",
+      "  Description          = \"Created by spiceinit\"\n",
+      "  Kernels              = $near/kernels/spk/near_erosorbit_nav_v1.bsp\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000X\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Y\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Z\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000XV\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000YV\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000ZV\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = ET\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "End_Object\n",
+      "\n",
+      "Object = Table\n",
+      "  Name                = BodyRotation\n",
+      "  StartByte           = 956091\n",
+      "  Bytes               = 64\n",
+      "  Records             = 1\n",
+      "  ByteOrder           = Lsb\n",
+      "  TimeDependentFrames = (2000433, 1)\n",
+      "  CkTableStartTime    = 4727836.8855711\n",
+      "  CkTableEndTime      = 4727836.8855711\n",
+      "  CkTableOriginalSize = 1\n",
+      "  FrameTypeCode       = 3\n",
+      "  Description         = \"Created by spiceinit\"\n",
+      "  Kernels             = ($base/kernels/spk/de405.bsp,\n",
+      "                         $near/kernels/tspk/erosephem_1999004_2002181.bsp,\n",
+      "                         $base/kernels/pck/pck00009.tpc)\n",
+      "  SolarLongitude      = 128.72797999357\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q0\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q1\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q2\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Q3\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = AV1\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = AV2\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = AV3\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = ET\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "End_Object\n",
+      "\n",
+      "Object = Table\n",
+      "  Name                 = SunPosition\n",
+      "  StartByte            = 956155\n",
+      "  Bytes                = 56\n",
+      "  Records              = 1\n",
+      "  ByteOrder            = Lsb\n",
+      "  CacheType            = Linear\n",
+      "  SpkTableStartTime    = 4727836.8855711\n",
+      "  SpkTableEndTime      = 4727836.8855711\n",
+      "  SpkTableOriginalSize = 1.0\n",
+      "  Description          = \"Created by spiceinit\"\n",
+      "  Kernels              = ($base/kernels/spk/de405.bsp,\n",
+      "                          $near/kernels/tspk/erosephem_1999004_2002181.bsp)\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000X\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Y\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000Z\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000XV\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000YV\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = J2000ZV\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "\n",
+      "  Group = Field\n",
+      "    Name = ET\n",
+      "    Type = Double\n",
+      "    Size = 1\n",
+      "  End_Group\n",
+      "End_Object\n",
+      "\n",
+      "Object = History\n",
+      "  Name      = IsisCube\n",
+      "  StartByte = 956211\n",
+      "  Bytes     = 2503\n",
+      "End_Object\n",
+      "\n",
+      "Object = OriginalLabel\n",
+      "  Name      = IsisCube\n",
+      "  StartByte = 950513\n",
+      "  Bytes     = 3820\n",
+      "End_Object\n",
+      "\n",
+      "Object = NaifKeywords\n",
+      "  BODY2000433_LONG_AXIS              = 0\n",
+      "  BODY2000433_PM                     = (326.07, 1639.38864745, 0)\n",
+      "  BODY2000433_POLE_DEC               = (17.22, 0, 0)\n",
+      "  BODY2000433_POLE_RA                = (11.35, 0, 0)\n",
+      "  BODY2000433_RADII                  = (17, 5.5, 5.5)\n",
+      "  BODY_CODE                          = 2000433\n",
+      "  BODY_FRAME_CODE                    = 2.00043e+06\n",
+      "  FRAME_-93001_CENTER                = -93\n",
+      "  FRAME_-93001_CLASS                 = 4\n",
+      "  FRAME_-93001_CLASS_ID              = -93001\n",
+      "  FRAME_-93001_NAME                  = NEAR_MSI\n",
+      "  FRAME_2000433_CENTER               = 2.00043e+06\n",
+      "  FRAME_2000433_CLASS                = 2\n",
+      "  FRAME_2000433_CLASS_ID             = 2.00043e+06\n",
+      "  FRAME_2000433_NAME                 = EROS_FIXED\n",
+      "  INS-93001_BORESIGHT                = (1, 0, 0)\n",
+      "  INS-93001_BORESIGHT_LINE           = 206.5\n",
+      "  INS-93001_BORESIGHT_SAMPLE         = 269\n",
+      "  INS-93001_FOCAL_LENGTH             = 166.85\n",
+      "  INS-93001_FOV_BOUNDARY_CORNERS     = (1, 0.01974485714, 0.02575366124, 1,\n",
+      "                                        -0.01974485714, 0.02575366124, 1,\n",
+      "                                        -0.01974485714, -0.02575366124, 1)\n",
+      "  INS-93001_FOV_FRAME                = NEAR_MSI\n",
+      "  INS-93001_FOV_SHAPE                = POLYGON\n",
+      "  INS-93001_FRAME_ID                 = -93001\n",
+      "  INS-93001_ITRANSL                  = (0, 0, -62.5)\n",
+      "  INS-93001_ITRANSS                  = (0, 62.5, 0)\n",
+      "  INS-93001_K1                       = -7e-05\n",
+      "  INS-93001_LIGHTTIME_CORRECTION     = LT+S\n",
+      "  INS-93001_LT_SURFACE_CORRECT       = FALSE\n",
+      "  INS-93001_PIXEL_PITCH              = 0.016\n",
+      "  INS-93001_PLATFORM_ID              = -93000\n",
+      "  INS-93001_SWAP_OBSERVER_TARGET     = TRUE\n",
+      "  INS-93001_TRANSX                   = (0, 0.016, 0)\n",
+      "  INS-93001_TRANSY                   = (0, 0, -0.016)\n",
+      "  OBJECT_2000433_FRAME               = EROS_FIXED\n",
+      "  TKFRAME_-93001_ANGLES              = (90, -179.972278, -0.082635)\n",
+      "  TKFRAME_-93001_AXES                = (2, 1, 2)\n",
+      "  TKFRAME_-93001_RELATIVE            = NEAR_SC_BUS_PRIME\n",
+      "  TKFRAME_-93001_SPEC                = ANGLES\n",
+      "  TKFRAME_-93001_UNITS               = DEGREES\n",
+      "  CLOCK_ET_-93_126865998830_COMPUTED = eb1bd43507095241\n",
+      "End_Object\n",
+      "End\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "with open(file) as f:\n",
+    "    print(f.read())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4e8eae81",
+   "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.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}