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 +}