diff --git a/docs/getting-started/csm-stack/knoten-chandrayaan.ipynb b/docs/getting-started/csm-stack/knoten-chandrayaan.ipynb new file mode 100644 index 00000000..8de7a88d --- /dev/null +++ b/docs/getting-started/csm-stack/knoten-chandrayaan.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bab40472", + "metadata": {}, + "source": [ + "# Knoten - Chandrayaan 2 TMC-2 Images\n", + "\n", + "### Environment - ISIS Dev, ALE 1.0.2, Knoten 0.4.0\n", + "\n", + "As of August 2025, support for Chandrayaan 2 Images is still in development. You will need to install knoten 0.4.0, ale 1.0.2, and the `dev` version of ISIS.\n", + "\n", + "To install the requirements with conda:\n", + "```sh\n", + "CONDA_SUBDIR=osx-64 conda create -n chand2-dev \\\n", + " -c conda-forge -c usgs-astrogeology \\\n", + " matplotlib knoten=0.4.0 ale=1.0.2 usgs-astrogeology/label/dev::isis\n", + "conda activate chand2-csm\n", + "```\n", + "\n", + "You will need to use the python kernel from this environment for this notebook.\n", + "\n", + "### Image Data, Label, and Template\n", + "\n", + "The `.img` image and `.xml` label are required to import a TMC image into the ISIS cube format. These can be downloaded [ISRO](https://chmapbrowse.issdc.gov.in). (New users must register an account.)\n", + "\n", + "A [template file](https://github.com/DOI-USGS/ISIS3/blob/dev/isis/appdata/import/PDS4/Chandrayaan2TMC2.tpl) for ISIS is also required for ISIS versions less than 9.0.0.\n", + "\n", + "### Importing into ISIS with *isisimport*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bca9f954", + "metadata": {}, + "outputs": [], + "source": [ + "import kalasiris as isis\n", + "import os\n", + "\n", + "data_dir = 'ch2' # Put the files in this folder\n", + "\n", + "tmc_tpl = 'Chandrayaan2TMC2.tpl' # TMC import template\n", + "\n", + "tmc_xml = 'ch2_tmc_nca_20200207T0716469418_d_img_d18.xml' # label\n", + "# ch2_tmc_nca_20200207T0716469418_d_img_d18.img, the image,\n", + "# should be in the same directory as the .xml\n", + "\n", + "tmc_cub = 'tmc_img.cub' # The ISIS .cub file to save to\n", + "\n", + "\n", + "tmc_tpl_path = os.path.join(data_dir, tmc_tpl)\n", + "tmc_xml_path = os.path.join(data_dir, tmc_xml)\n", + "tmc_cub_path = os.path.join(data_dir, tmc_cub)\n", + "\n", + "\n", + "isis.isisimport(tmc_xml_path, to=tmc_cub_path, template=tmc_tpl_path)\n", + "# output: tmc_img.cub" + ] + }, + { + "cell_type": "markdown", + "id": "9107a602", + "metadata": {}, + "source": [ + "### Generating Image Support Data with *isd_generate*\n", + "\n", + "Image Support Data (ISD) is required to create a CSM (Community Sensor Model). With an ISD, you can generate a camera model for Knoten using `knoten.csm.create_csm()`, or for ISIS/ASP using ISIS's `csminit`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "370b81f7", + "metadata": {}, + "outputs": [], + "source": [ + "!isd_generate -n -w {tmc_cub_path}\n", + "# output: tmc_img.json\n", + "\n", + "tmc_isd = 'tmc_img.json'\n", + "tmc_isd_path = os.path.join(data_dir, tmc_isd)" + ] + }, + { + "cell_type": "markdown", + "id": "fccb6134", + "metadata": {}, + "source": [ + "### *csminit* - For ISIS or ASP\n", + "\n", + "Attaching the CSM state to the cube is not needed to continue in this notebook, but it will let you use the image further in ISIS or Ames Stereo Pipeline (ASP)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5fc35bf6", + "metadata": {}, + "outputs": [], + "source": [ + "isis.csminit(tmc_cub_path, isd=tmc_isd_path)\n", + "# Attaches CSM state to tmc_cub." + ] + }, + { + "cell_type": "markdown", + "id": "a0e4e679", + "metadata": {}, + "source": [ + "### Create ISD Dictionary\n", + "\n", + "After reading the json file into a dictionary, you can access the ISD values in Python." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ebbefc14", + "metadata": {}, + "outputs": [], + "source": [ + "import json # Read ISD as python dictionary\n", + "\n", + "with open(tmc_isd_path) as json_file:\n", + " isd_dict = json.load(json_file)" + ] + }, + { + "cell_type": "markdown", + "id": "9b3755b7", + "metadata": {}, + "source": [ + "### Create CSM for Knoten" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d0ed7b7", + "metadata": {}, + "outputs": [], + "source": [ + "from knoten import csm # Knoten CSM\n", + "\n", + "# Create Camera Model\n", + "camera = csm.create_csm(tmc_isd_path)" + ] + }, + { + "cell_type": "markdown", + "id": "29769b90", + "metadata": {}, + "source": [ + "### Map the image boundary\n", + "\n", + "Use the number of lines and samples in the image to map its boundary with the Camera Model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9bd4bf20", + "metadata": {}, + "outputs": [], + "source": [ + "nlines, nsamples = isd_dict[\"image_lines\"], isd_dict[\"image_samples\"]\n", + "\n", + "boundary = csm.generate_boundary((nlines, nsamples))\n", + "\n", + "lons, lats, alts = csm.generate_latlon_boundary(camera, boundary)\n", + "\n", + "# ------ Graphing the footprint ------\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import shapely.wkt\n", + "\n", + "plt.rcParams[\"figure.figsize\"] = [5, 5]\n", + "plt.axes().set_aspect('equal','datalim')\n", + "plt.plot(lons, lats)\n", + "plt.xlabel(\"Longitude (deg)\")\n", + "plt.ylabel(\"Latitude (deg)\")\n", + "plt.title(\"CSM footprint\")" + ] + }, + { + "cell_type": "markdown", + "id": "2a980d02", + "metadata": {}, + "source": [ + "### Generate Bodyfixed Footprint" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "02d96f58", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Body Fixed Footprint')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bodyfixed_footprint = csm.generate_bodyfixed_footprint(camera, boundary)\n", + "\n", + "csm_wkt = bodyfixed_footprint.ExportToWkt()\n", + "\n", + "csm_geom = shapely.wkt.loads(csm_wkt)\n", + "csm_x, csm_y = csm_geom.geoms[0].exterior.coords.xy\n", + "\n", + "plt.xlabel(\"x\")\n", + "plt.ylabel(\"y\")\n", + "plt.plot(csm_x, csm_y)\n", + "plt.xticks(\n", + " rotation=45, \n", + " horizontalalignment='right',\n", + " fontweight='light'\n", + ")\n", + "plt.title(\"Body Fixed Footprint\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "chand2-dev", + "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.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}