diff --git a/custom_theme/main.html b/custom_theme/main.html index b863d49..8fa8a7f 100644 --- a/custom_theme/main.html +++ b/custom_theme/main.html @@ -1,28 +1,12 @@ {% extends "base.html" %} {% block scripts %} - - - - -{{super()}} + + {{super()}} {% endblock %} {% block header %} - - - - - - - - - - - - -
@@ -222,8 +206,8 @@ {% endblock %} - {% block styles %} +{% block styles %} - - {{ super() }} - {% endblock %} \ No newline at end of file + + {{ super() }} +{% endblock %} \ No newline at end of file diff --git a/definitions.md b/definitions.md index f4e2aab..26a2157 100644 --- a/definitions.md +++ b/definitions.md @@ -2,7 +2,8 @@ *[Band]: A 3rd dimensional layer of pixels in an image, typically representing spectral information. The number of bands indicates the depth of an image in terms of these layers. *[Bit]: Short for binary digit, which in a computer is the smallest unit of storage. Bits are either "0" or "1". *[Byte]: Short for binary term. A byte is a collection of computer bits. On most modern computers, a byte is a group of eight bits. Typically, computers handle and store information in binary (base-2), and a group of eight bits represents an eight digit binary number. -*[CSM]: Community Sensor Model. A standard for sensor models USGS uses for interoperability. +*[CSM]: Community Sensor Model. A standard for sensor models USGS uses for interoperability. +*[DN]: Digital Number. The numeric value of a single pixel in an image. The value can represent a measurement in various units, such as reflectance (I/F), radiance, elevation, or radius. Digital Numbers can be discrete integers or floating point values. *[EMCAscript]: A standard for scripting languages. C++'s standard library uses the EMCAscript standard for regular expressions. *[SPICE]: Spacecraft & Planetary ephemerides, Instrument C-matrix and Event kernels. SPICE refers to all the information required by ISIS in order to compute and map each image pixel onto a surface with reference to spacecraft position, sun position, instrument, and mission activities. ISIS uses software (ToolKit) supplied by the Navigation and Ancillary Information Facility (NAIF) for SPICE access and kernel management (Refer to spiceinit). *[NAIF]: Navigation and Ancillary Information Facility. They engineered and support the SPICE observation geometry information system. diff --git a/docs/assets/isis-fundamentals/16-bit.cub b/docs/assets/isis-fundamentals/16-bit.cub new file mode 100644 index 0000000..dda232e Binary files /dev/null and b/docs/assets/isis-fundamentals/16-bit.cub differ diff --git a/docs/assets/isis-fundamentals/32-bit.cub b/docs/assets/isis-fundamentals/32-bit.cub new file mode 100644 index 0000000..f812356 Binary files /dev/null and b/docs/assets/isis-fundamentals/32-bit.cub differ diff --git a/docs/assets/isis-fundamentals/8-bit.cub b/docs/assets/isis-fundamentals/8-bit.cub new file mode 100644 index 0000000..51b47a0 Binary files /dev/null and b/docs/assets/isis-fundamentals/8-bit.cub differ diff --git a/docs/assets/isis-fundamentals/Bit-byte-word.jpg b/docs/assets/isis-fundamentals/Bit-byte-word.jpg new file mode 100644 index 0000000..531a8db Binary files /dev/null and b/docs/assets/isis-fundamentals/Bit-byte-word.jpg differ diff --git a/docs/assets/isis-fundamentals/Cube.png b/docs/assets/isis-fundamentals/Cube.png new file mode 100644 index 0000000..eaaebe8 Binary files /dev/null and b/docs/assets/isis-fundamentals/Cube.png differ diff --git a/docs/assets/isis-fundamentals/Intro2isis.cub.gz b/docs/assets/isis-fundamentals/Intro2isis.cub.gz new file mode 100644 index 0000000..21284a0 Binary files /dev/null and b/docs/assets/isis-fundamentals/Intro2isis.cub.gz differ diff --git a/docs/assets/isis-fundamentals/LowpassScreenShot1.png b/docs/assets/isis-fundamentals/LowpassScreenShot1.png new file mode 100644 index 0000000..c87c57a Binary files /dev/null and b/docs/assets/isis-fundamentals/LowpassScreenShot1.png differ diff --git a/docs/assets/isis-fundamentals/LowpassScreenShot2.png b/docs/assets/isis-fundamentals/LowpassScreenShot2.png new file mode 100644 index 0000000..a6eb53a Binary files /dev/null and b/docs/assets/isis-fundamentals/LowpassScreenShot2.png differ diff --git a/docs/assets/isis-fundamentals/LowpassScreenShot3.png b/docs/assets/isis-fundamentals/LowpassScreenShot3.png new file mode 100644 index 0000000..bfdf2e6 Binary files /dev/null and b/docs/assets/isis-fundamentals/LowpassScreenShot3.png differ diff --git a/docs/assets/isis-fundamentals/Mars_hemi.gif b/docs/assets/isis-fundamentals/Mars_hemi.gif new file mode 100644 index 0000000..80baef3 Binary files /dev/null and b/docs/assets/isis-fundamentals/Mars_hemi.gif differ diff --git a/docs/assets/isis-fundamentals/QviewTwoCubes.png b/docs/assets/isis-fundamentals/QviewTwoCubes.png new file mode 100644 index 0000000..26614d3 Binary files /dev/null and b/docs/assets/isis-fundamentals/QviewTwoCubes.png differ diff --git a/docs/assets/isis-fundamentals/Qview_vims_bandrgb.png b/docs/assets/isis-fundamentals/Qview_vims_bandrgb.png new file mode 100644 index 0000000..15cdfe9 Binary files /dev/null and b/docs/assets/isis-fundamentals/Qview_vims_bandrgb.png differ diff --git a/docs/assets/isis-fundamentals/Qview_vims_singleband.png b/docs/assets/isis-fundamentals/Qview_vims_singleband.png new file mode 100644 index 0000000..c5c5017 Binary files /dev/null and b/docs/assets/isis-fundamentals/Qview_vims_singleband.png differ diff --git a/docs/concepts/control-networks/autoseed.md b/docs/concepts/control-networks/autoseed.md index 44450c4..32d5a90 100644 --- a/docs/concepts/control-networks/autoseed.md +++ b/docs/concepts/control-networks/autoseed.md @@ -297,11 +297,7 @@ program. The following is an example of the **qview** measurement tool, depicted as a ruler on the right side, to measure the distance of the widest overlap area: -!!! danger "TODO - Update link" - - TODO: Update **Using Qview to view cubes** link once that page is migrated. - -See [Using Qview to view cubes](https://github.com/DOI-USGS/ISIS3/wiki/Introduction_to_Isis) for more +See [Using Qview to view cubes](../../getting-started/using-isis-first-steps/introduction-to-isis.md#using-qview-to-view-cubes) for more information about **qview**. ![Measurement tool on two side-by-side Clementine images to show the overlap area]( diff --git a/docs/concepts/glossary.md b/docs/concepts/glossary.md index 2cc63ae..3eca18b 100644 --- a/docs/concepts/glossary.md +++ b/docs/concepts/glossary.md @@ -1,200 +1,309 @@ -###Adjusted - The term, Adjusted, refers to the output pixel coordinate or output geographic location within a control network. Applications such as pointreg or jigsaw report and update the "Adjusted" output pixel coordinate (pointreg) or geographic location (jigsaw) in the output control network. -###A Priori - The term, "A Priori", refers to the initial or original value of a pixel coordinate or geographic location within a control network. Applications such as pointreg or jigsaw refer to the a priori values for an input pixel coordinate (pointreg) or geographic location (jigsaw) in an input control network. -###Band - A 3rd dimensional layer of pixels in an image, typically representing spectral information. The number of bands indicates the depth of an image in terms of these layers. -###Bit - Short for binary digit, which in a computer is the smallest unit of storage. Bits are either "0" or "1". -###Bit Type - Refers to how many bits there are per single meaningful value in an image cube file. -###Byte - Short for binary term. A byte is a collection of computer bits. On most modern computers, a byte is a group of eight bits. Typically, computers handle and store information in binary (base-2), and a group of eight bits represents an eight digit binary number. -###SPICE - Spacecraft & Planetary ephemerides, Instrument C-matrix and Event kernels. SPICE refers to all the information required by ISIS in order to compute and map each image pixel onto a surface with reference to spacecraft position, sun position, instrument, and mission activities. ISIS uses software (ToolKit) supplied by the Navigation and Ancillary Information Facility (NAIF) for SPICE access and kernel management (Refer to spiceinit). -###NAIF - Navigation and Ancillary Information Facility. -###Special Pixels - Special Pixels are defined to distinguish valid pixels from non-valid pixels. -###Planetary Data System - The Planetary Data System (PDS) is an archive of scientific data acquired from NASA planetary missions, astronomical observations, and laboratory measurements. By developing standards for data and archive formats and architectures for use within the archive, the PDS ensures long-term access and usability of NASA planetary data. -###NULL - NULL is a Special Pixel value that is tracked and reported to the user. NULL represents "No Data". NULL is set in all 8, 16, 32-bit type image data. -###LRS - LRS [Low Representation Saturation] is a representation special pixel value that is tracked and reported to the user. LRS is set when an ISIS application causes the output DN pixel to fall 'below' the possible range of valid values. -###HRS - HRS [High Representation Saturation] is a representation special pixel value that is tracked and reported to the user. HRS is set when an ISIS application causes the output DN pixel to fall 'above' the possible range of valid values. -###LIS - LIS [Low Instrument Saturation] is an instrument special pixel value that is tracked and reported to the user. LIS is set during the ingestion of the image data into ISIS. The input image sensor acquired a value too low to be measured accurately. -###HIS - HIS [High Instrument Saturation] is an instrument special pixel value that is tracked and reported to the user. HIS is set during the ingestion of the image data into ISIS. The input image sensor acquired a value too high to be measured accurately. -###Control Network - A network of Control Points. Within the ISIS environment, the control network file is binary file. The network contains multiple fields of information for control points and measures collected between any number of image cubes. -###Control Measure - The sample and line pixel coordinate (measurement) within a single image cube that has been measured and associated with a Control Point and other overlapping image cubes. -###Control Point - One or more measurements (image coordinates) that identify the same feature or location in different overlapping images. -###Serial Number - A unique identifier constructed and assigned to each individual image within a control network. The serial number (SN) is constructed by most of the control network applications "in real time" from specific instrument keywords on the image labels (Instrument keywords are populated by mission specific ingestion applications). -###Reference Measure - Reference Measure is a fundamental component of the control network. For every point within the network, there is always one and only one associated Reference Measure (Reference=True). The Reference Measure refers to a single image and it's pixel coordinate (measure) that best represents a control point location or feature. -###Cube - A cube is a 3-dimensional image with axis: samples, lines, and bands. The physical dimensions of a cube are called the number of samples (NS), number of lines (NL), and number of bands (NB). -###Line - A row of pixels in an image, typically representing spatial information. The number of lines indicates the total height of an image in pixels. -###Sample - A column of pixels in an image, typically representing spatial information. The number of samples indicates the total width of an image in pixels. -###Digital Number - The numeric value of a single pixel in an image. The value may represent almost any unit. For example: reflectance (I/F), radiance, elevation, or radius. Digital Numbers (DNs) can be discrete integers or floating point values. -###Level0 - Level0 is a standard cartographic processing phase that describes an image has been ingested into ISIS (PDS EDR) and will often have SPICE information loaded on the ISIS cube labels (spiceinit). Level0 image cubes are often the input to mission specific radiometric calibration applications if supported in ISIS. -###Level1 - Level1 is a standard cartographic processing phase that describes an image has been radiometrically calibrated (PDS CDR or the ISIS output of a mission specific calibration application) with SPICE information loaded on the ISIS cube labels. -###Level2 - Level2 is a standard cartographic processing phase that describes an image has been map projected (PDS RDR). The Level2 image cube labels contain Mapping keywords that describe the projection and all associated map characteristics. -###Elevation - The height above or below a fixed point on the surface of a body. -###Albedo - Reflectivity of a surface or particle. Commonly in I/F units for radiometrically calibrated data. -###Emissivity - A measure describing a substance's ability to absorb and radiate electromagnetic energy. -###Radiance - A measurement describing the amount of electromagnetic energy emitted from an area of a planet. -###Reflectance - The ratio of reflected energy to incoming energy. -###Radius - The distance (vector) value between the center of and a point on a circle, sphere, ellipse or ellipsoid. Refer to qview, camstats, or campt as examples of applications that report radius value at every image pixel location. -###Emission Angle - The emission angle (EMA) is the angle between the spacecraft and a vector drawn perpendicular to the planet's surface (surface normal). Using SPICE, ISIS applications compute this angle from the ellipsoid. Emission Angle is in degrees. The valid range is between 0 and 90. -###Incidence Angle - The incidence angle (INC) is the angle between the sun and the surface normal. ISIS applications use SPICE to compute this angle from the ellipsoid or the elevation model (e.g., local slopes) at every pixel. -###Phase Angle - The phase angle is the angle between the sun and the spacecraft at a point on the surface. ISIS applications will use SPICE to compute this angle from the ellipsoid or the elevation model (e.g., local slopes) at every pixel. -###Pixel Resolution - The ground distance in meters from the left edge to the right edge of a pixel. -###Oblique Pixel Resolution - The ground distance (in meters) from the left edge to the right edge of a pixel. This value is based on the -###Line Resolution - The ground distance (in meters) from the top edge to the bottom edge of a pixel. -###Oblique Line Resolution - The ground distance (in meters) from the top edge to the bottom edge of a pixel. This value is based on the -###Sample Resolution - The ground distance (in meters) from the left edge to the right edge of a pixel. -###Oblique Sample Resolution - The ground distance (in meters) from the left edge to the right edge of a pixel. This value is based on the -###Detector Resolution - The ground distance in meters from the left edge to the right edge of a detector. If the lines and samples are not being summed and averaged, this value is equal to the pixel resolution. The formula for estimating this value works well if the image is taken near nadir, but the accuracy falls off rapidly the farther off-nadir the image is taken. For an estimate that handles off-nadir images with higher accuracy, one should use -###Oblique Detector Resolution - This provides an improved estimate to the standard -###I/F - Irradiance/SolarFlux. Unit of DN values for a reference distance of target body from the Sun (5.2 AU). The valid values range between 0.0 and 1.0. -###Polygon Thickness - The thickness of a polygon is defined as follows: -###Ground Azimuth - A clockwise angle between one reference point and another reference point. Each pixel location has a latitude and longitude associated with it (ground point). The only information required to calculate a ground azimuth is to form a spherical triangle from three points on the planet (ground point, North Pole, and point of interest). The point of interest is often the sub-spacecraft or sub-solar point. Spherical trigonometry is then used to calculate the angle. -###Azimuth - A clockwise angle from a point of origin to a point of interest. -###North Azimuth - A clockwise angle from a point of origin to true North. -###Sun Azimuth - A clockwise angle from a point of origin to the direction of the Sun. -###Spacecraft Azimuth - A clockwise angle from a point of origin to the direction of the Spacecraft. -###Off Nadir Angle - From the spacecraft, the Off Nadir is the angle between the nadir vector (subspacecraft vector) and the look vector. Every pixel in the image will result in a different Off Nadir Angle. -###Slew Angle - From the spacecraft, the Slew is the angle between the boresight (i.e., center of framing camera) and the nadir vector (subspacecraft vector). The Slew angle will be a constant value across the image. -###SubSpacecraft Ground Azimuth - The Ground azimuth to the SubSpacecraft point (where the look vector from the spacecraft intercepts the target body) is obtained by taking true North (90 deg Latitude) and finding the clockwise angle to the subspacecraft latitude and longitude point. -###Subsolar Ground Azimuth - The Ground azimuth to the SubSolar point is obtained by taking true North (90 deg Latitude) and finding the clockwise angle to the subsolar latitude and longitude point. -###Local Emission Angle - The local emission angle is the angle between the spacecraft and a vector drawn perpendicular to the planet's surface (surface normal). -###Local Incidence Angle - The local incidence angle is the angle between the sun and a vector drawn perpendicular to the planet's surface (surface normal). -###Control Island - Ideally a control network will represent a single island of a list of overlapping images all tied together through a network of control points and image measures (Refer to Control Measures). -###Body Fixed Coordinate - A planetary coordinate system where the coordinates are not time varying. -###Right Ascension - Right Ascension (RA) is one of two angles of the North Pole of a target body as a function of time. -###Declination - Declination (Dec) is one of two angles of the North Pole of a target body as a function of time. -###Prime Meridian - Prime Meridian (W) location is the third Euler angle which is expressed as a rotation about the North Pole as a function of time. The reference frame is J2000. -###Euler Angles - All the NAIF orientation models use three Euler angles to describe body orientation. The Euler angles describe the orientation of the coordinate axes of the 'body equator and prime meridian' system with respect to the J2000 system. -###Planetocentric Latitude - Planetocentric Latitude is the angle between the equatorial plane and a line from the center of the body. -###Planetographic Latitude - Planetographic Latitude is the angle between the equatorial plane and a line that is normal (perpendicular) to the surface body. -###Latitude - Latitude represents a geographic position and is measured from the equator, with positive longitudes going North and negative values going South. -###Latitude Type - Latitudes can be represented either in Planetographic or Planetocentric form. Both latitudes are equivalent on a sphere (i.e., the equatorial radius is equal to the polar radius); however they differ on an ellipsoid body (e.g., Mars, Earth). -###Longitude - Longitude represents a geographic position and is measured from a specified Prime Meridian (default is IAU) for the target body. -###Longitude Direction - Longitude direction of a target body indicates whether longitude increases (positive) to the east or the west. -###Positive East Longitude - The reported longitude values for a target body increase positive to the East. -###Positive West Longitude - The reported longitude values for a target body increase positive to the West. -###Longitude Domain - Longitude Domain specifies how longitudes should be interpreted and reported for a target body. -###Local Radius - The distance from a point on the surface of a body to its geometric center. -###Spacecraft Position - The Spacecraft Position is the position of the spacecraft (x,y,z) in body-fixed rotating coordinate system. -###Slant Distance - The distance from the spacecraft to the point of interest on the surface of the planet. -###Target Center Distance - The distance from the spacecraft to the target body center. -###Ephemeris Time - Ephemeris Time (ET) as defined by NAIF (Toolkit used by ISIS), is the uniform scale represented by the independent variable in the differential equations that describe the motions of the planets, sun and moon. Ephemeris time is described as a count of ephemeris seconds past the ephemeris reference epoch (J2000). -###UTC - Coordinated Universal Time (UTC) is a system of time keeping that gives an understandable name to each instant of time. The names are formed from the calendar date and time of day. UTC format consists of year, month, day, hour, minutes and seconds. -###Local Solar Time - How high the sun is in the sky as seen from a particular site on the surface of a planet. The local solar time at a site on a body is the angular difference between the planetocentric longitude of the site and the planetocentric longitude of the Sun as seen from the center of the body. -###Solar Longitude - The Solar Longitude is the planetocentric longitude of the sun as seen from a point on a body. It is considered a seasonal angle. -###PVL - Parameter Value Language (PVL) is used extensively by ISIS as a standard keyword value type language for naming and expressing data values. PVL format in ISIS is compatible with syntax used by the Planetary Data System. -###MAP - A representation of a three dimensional target such as a sphere, ellipsoid or an irregular shaped body onto a plane -###Map Projection - A map projection is an algorithm or equation for mapping a three dimensional coordinate (latitude, longitude, radius) into a two dimensional coordinate plane (x,y). -###SubSpacecraft Latitude - The latitude value of the Subspacecraft Point -###SubSpacecraft Longitude - The longitude value Subspacecraft Point -###SubSpacecraft Point - The point on the surface of the target body which lies directly beneath the spacecraft. -###SubSolar Latitude - The latitude of the subsolar point. -###SubSolar Longitude - The longitude of the subsolar point. -###SubSolar Point - The subsolar point is the target surface intercept of the line from the Sun and the target body's center. A triaxial ellipsoid is used to model the surface of the target body. -###IAU - The International Astronomical Union -###Projection X - Projection X is the x-coordinate (Easting) for a point on a geographic Cartesian coordinate system -###Projection Y - Projection Y is the y-coordinate (Northing) for a point on a geographic Cartesian coordinate system -###Universal Coordinate - The ISIS default coordinate system -###Scale - The map resolution measured in pixels per degree -###Polar Radius - The distance from the geometric center of an ellipsoid to either of its poles. -###Equatorial Radius - The distance from the geometric center of an ellipsoid to its equator. -###Look Direction - The look direction is the direction that the instrument is pointing. In ISIS, it is represented as a mathematical unit vector. For images that have a body (i.e. not star fields), this vector is parallel to the line from the sensor to the observed point on the surface of the target. The look direction can be represented in any of several coordinate systems, including: -###Body-Fixed Coordinate System - A body-fixed coordinate system is used to determine positions and directions of objects and vectors with respect to a target body. The origin is at the center of mass for the target and the axes rotate and move through space with the body. These systems are non-inertial, meaning the velocity of the origin is non-constant. Many body-fixed coordinate systems, or reference frames, are defined in NAIF PCK files. -###Camera Coordinate System - A camera coordinate system is used to determine positions and directions of objects and vectors with respect to a sensor (i.e. camera). The origin is at the center of the sensor and the axes rotate and move through space with the sensor. These systems are non-inertial, meaning the velocity of the origin is non-constant. The location of the center of a spacecraft and its instruments at a given time are defined in NAIF SPK files. Generally, one or more frames are associated with a particular instrument. -###J2000 Coordinate System - The J2000 coordinate system (also known as EME2000) is based on the earth mean equator and dynamical equinox at midnight January 1, 2000. The origin is at the solar system barycenter. This system is inertial, since it does not rotate with respect to stars and the origin is not accelerating (i.e it has a constant velocity). This coordinate system is the root reference for NAIF's SPICE files and software. \ No newline at end of file + +## A + +### Adjusted +The term, Adjusted, refers to the output pixel coordinate or output geographic location within a control network. Applications such as pointreg or jigsaw report and update the "Adjusted" output pixel coordinate (pointreg) or geographic location (jigsaw) in the output control network. +### Albedo +Reflectivity of a surface or particle. Commonly in I/F units for radiometrically calibrated data. +### A Priori +The term, "A Priori", refers to the initial or original value of a pixel coordinate or geographic location within a control network. Applications such as pointreg or jigsaw refer to the a priori values for an input pixel coordinate (pointreg) or geographic location (jigsaw) in an input control network. +### Azimuth +A clockwise angle from a point of origin to a point of interest. + +## B + +### Band +A 3rd dimensional layer of pixels in an image, typically representing spectral information. The number of bands indicates the depth of an image in terms of these layers. +### Bit +Short for binary digit, which in a computer is the smallest unit of storage. Bits are either "0" or "1". +### Bit Type +Refers to how many bits there are per single meaningful value in an image cube file. +### Body Fixed Coordinate +A planetary coordinate system where the coordinates are not time varying. +### Body-Fixed Coordinate System +A body-fixed coordinate system is used to determine positions and directions of objects and vectors with respect to a target body. The origin is at the center of mass for the target and the axes rotate and move through space with the body. These systems are non-inertial, meaning the velocity of the origin is non-constant. Many body-fixed coordinate systems, or reference frames, are defined in NAIF PCK files. +### Byte +Short for binary term. A byte is a collection of computer bits. On most modern computers, a byte is a group of eight bits. Typically, computers handle and store information in binary (base-2), and a group of eight bits represents an eight digit binary number. + +## C + +### Camera Coordinate System +A camera coordinate system is used to determine positions and directions of objects and vectors with respect to a sensor (i.e. camera). The origin is at the center of the sensor and the axes rotate and move through space with the sensor. These systems are non-inertial, meaning the velocity of the origin is non-constant. The location of the center of a spacecraft and its instruments at a given time are defined in NAIF SPK files. Generally, one or more frames are associated with a particular instrument. +### Control Island +Ideally a control network will represent a single island of a list of overlapping images all tied together through a network of control points and image measures (Refer to Control Measures). +### Control Measure +The sample and line pixel coordinate (measurement) within a single image cube that has been measured and associated with a Control Point and other overlapping image cubes. +### Control Network +A network of Control Points. Within the ISIS environment, the control network file is binary file. The network contains multiple fields of information for control points and measures collected between any number of image cubes. +### Control Point +One or more measurements (image coordinates) that identify the same feature or location in different overlapping images. +### Cube +A cube is a 3-dimensional image with axis: samples, lines, and bands. The physical dimensions of a cube are called the number of samples (NS), number of lines (NL), and number of bands (NB). + +## D + +### Declination +Declination (Dec) is one of two angles of the North Pole of a target body as a function of time. +### Detector Resolution +The ground distance in meters from the left edge to the right edge of a detector. If the lines and samples are not being summed and averaged, this value is equal to the pixel resolution. The formula for estimating this value works well if the image is taken near nadir, but the accuracy falls off rapidly the farther off-nadir the image is taken. For an estimate that handles off-nadir images with higher accuracy, one should use +### Digital Number +(or DN) The numeric value of a single pixel in an image. The value can represent a measurement in various units, such as reflectance (I/F), radiance, elevation, or radius. Digital Numbers can be discrete integers or floating point values. +### DN +Digital Number. The numeric value of a single pixel in an image. The value can represent a measurement in various units, such as reflectance (I/F), radiance, elevation, or radius. Digital Numbers can be discrete integers or floating point values. + +## E + +### Elevation +The height above or below a fixed point on the surface of a body. +### Ephemeris Time +Ephemeris Time (ET) as defined by NAIF (Toolkit used by ISIS), is the uniform scale represented by the independent variable in the differential equations that describe the motions of the planets, sun and moon. Ephemeris time is described as a count of ephemeris seconds past the ephemeris reference epoch (J2000). +### Emission Angle +The emission angle (EMA) is the angle between the spacecraft and a vector drawn perpendicular to the planet's surface (surface normal). Using SPICE, ISIS applications compute this angle from the ellipsoid. Emission Angle is in degrees. The valid range is between 0 and 90. +### Emissivity +A measure describing a substance's ability to absorb and radiate electromagnetic energy. +### Equatorial Radius +The distance from the geometric center of an ellipsoid to its equator. +### Euler Angles +All the NAIF orientation models use three Euler angles to describe body orientation. The Euler angles describe the orientation of the coordinate axes of the 'body equator and prime meridian' system with respect to the J2000 system. + +## F + +## G + +### Ground Azimuth +A clockwise angle between one reference point and another reference point. Each pixel location has a latitude and longitude associated with it (ground point). The only information required to calculate a ground azimuth is to form a spherical triangle from three points on the planet (ground point, North Pole, and point of interest). The point of interest is often the sub-spacecraft or sub-solar point. Spherical trigonometry is then used to calculate the angle. + +## H + +### HRS +HRS [High Representation Saturation] is a representation special pixel value that is tracked and reported to the user. HRS is set when an ISIS application causes the output DN pixel to fall 'above' the possible range of valid values. + +## I + +### IAU +The International Astronomical Union +### I/F +Irradiance/SolarFlux. Unit of DN values for a reference distance of target body from the Sun (5.2 AU). The valid values range between 0.0 and 1.0. +### Incidence Angle +The incidence angle (INC) is the angle between the sun and the surface normal. ISIS applications use SPICE to compute this angle from the ellipsoid or the elevation model (e.g., local slopes) at every pixel. + +## J + +### J2000 Coordinate System +The J2000 coordinate system (also known as EME2000) is based on the earth mean equator and dynamical equinox at midnight January 1, 2000. The origin is at the solar system barycenter. This system is inertial, since it does not rotate with respect to stars and the origin is not accelerating (i.e it has a constant velocity). This coordinate system is the root reference for NAIF's SPICE files and software. + +## K + +## L + +### Latitude +Latitude represents a geographic position and is measured from the equator, with positive longitudes going North and negative values going South. +### Latitude Type +Latitudes can be represented either in Planetographic or Planetocentric form. Both latitudes are equivalent on a sphere (i.e., the equatorial radius is equal to the polar radius); however they differ on an ellipsoid body (e.g., Mars, Earth). +### Level0 +Level0 is a standard cartographic processing phase that describes an image has been ingested into ISIS (PDS EDR) and will often have SPICE information loaded on the ISIS cube labels (spiceinit). Level0 image cubes are often the input to mission specific radiometric calibration applications if supported in ISIS. +### Level1 +Level1 is a standard cartographic processing phase that describes an image has been radiometrically calibrated (PDS CDR or the ISIS output of a mission specific calibration application) with SPICE information loaded on the ISIS cube labels. +### Level2 +Level2 is a standard cartographic processing phase that describes an image has been map projected (PDS RDR). The Level2 image cube labels contain Mapping keywords that describe the projection and all associated map characteristics. +### Line +A row of pixels in an image, typically representing spatial information. The number of lines indicates the total height of an image in pixels. +### Line Resolution +The ground distance (in meters) from the top edge to the bottom edge of a pixel. +### LIS +LIS [Low Instrument Saturation] is an instrument special pixel value that is tracked and reported to the user. LIS is set during the ingestion of the image data into ISIS. The input image sensor acquired a value too low to be measured accurately. +### Local Emission Angle +The local emission angle is the angle between the spacecraft and a vector drawn perpendicular to the planet's surface (surface normal). +### Local Incidence Angle +The local incidence angle is the angle between the sun and a vector drawn perpendicular to the planet's surface (surface normal). +### Local Radius +The distance from a point on the surface of a body to its geometric center. +### Local Solar Time +How high the sun is in the sky as seen from a particular site on the surface of a planet. The local solar time at a site on a body is the angular difference between the planetocentric longitude of the site and the planetocentric longitude of the Sun as seen from the center of the body. +### Longitude +Longitude represents a geographic position and is measured from a specified Prime Meridian (default is IAU) for the target body. +### Longitude Direction +Longitude direction of a target body indicates whether longitude increases (positive) to the east or the west. +### Longitude Domain +Longitude Domain specifies how longitudes should be interpreted and reported for a target body. +### Look Direction +The look direction is the direction that the instrument is pointing. In ISIS, it is represented as a mathematical unit vector. For images that have a body (i.e. not star fields), this vector is parallel to the line from the sensor to the observed point on the surface of the target. The look direction can be represented in any of several coordinate systems, including: Body-fixed coordinate system, Camera coordinate system, J2000 coordinate system. +### LRS +LRS [Low Representation Saturation] is a representation special pixel value that is tracked and reported to the user. LRS is set when an ISIS application causes the output DN pixel to fall 'below' the possible range of valid values. + +## M + +### MAP +A representation of a three dimensional target such as a sphere, ellipsoid or an irregular shaped body onto a plane +### Map Projection +A map projection is an algorithm or equation for mapping a three dimensional coordinate (latitude, longitude, radius) into a two dimensional coordinate plane (x,y). + +## N +### NAIF +Navigation and Ancillary Information Facility. +### North Azimuth +A clockwise angle from a point of origin to true North. +### NULL +NULL is a Special Pixel value that is tracked and reported to the user. NULL represents "No Data". NULL is set in all 8, 16, 32-bit type image data. + +## O + +### Oblique Detector Resolution +This provides an improved estimate to the standard detector resolution when the image is taken at an oblique angle. In Figure 1A below, an image of the Dufay X crater that was taken near nadir is displayed. Figure 1B is a color map showing the relative difference between the oblique detector resolution, and the original detector resolution as a function of the emission angle. For small emission angles (near nadir) the relative difference between the two estimates is very small. For larger emission angles (off-nadir), the relative difference between the two estimates increases rapidly. Figure 2A is an image of the Carlini crater group taken at an oblique angle. Figure 2B is a color plot of the relative difference between the two estimates showing a minimum of approximately 120% when the emission angles off-nadir are in the range 64-75 degrees. The traditional approximation is obviously not adequate for a case such as this, and the oblique detector resolution should be used. +### Oblique Line Resolution +The ground distance (in meters) from the top edge to the bottom edge of a pixel. This value is based on the oblique detector resolution estimate, rather than the detector resolution and is more accurate (particularly for off-nadir images). +### Oblique Pixel Resolution +The ground distance (in meters) from the left edge to the right edge of a pixel. This value is based on the oblique detector resolution estimate, rather than the detector resolution and is more accurate (particularly for off-nadir images). +### Oblique Sample Resolution +The ground distance (in meters) from the left edge to the right edge of a pixel. This value is based on the oblique detector resolution estimate, rather than the detector resolution and is more accurate (particularly for off-nadir images). +### Off Nadir Angle +From the spacecraft, the Off Nadir is the angle between the nadir vector (subspacecraft vector) and the look vector. Every pixel in the image will result in a different Off Nadir Angle. + +## P + +### Phase Angle +The phase angle is the angle between the sun and the spacecraft at a point on the surface. ISIS applications will use SPICE to compute this angle from the ellipsoid or the elevation model (e.g., local slopes) at every pixel. +### Pixel Resolution +The ground distance in meters from the left edge to the right edge of a pixel. +### Planetary Data System +The Planetary Data System (PDS) is an archive of scientific data acquired from NASA planetary missions, astronomical observations, and laboratory measurements. By developing standards for data and archive formats and architectures for use within the archive, the PDS ensures long-term access and usability of NASA planetary data. +### Planetocentric Latitude +Planetocentric Latitude is the angle between the equatorial plane and a line from the center of the body. +### Planetographic Latitude +Planetographic Latitude is the angle between the equatorial plane and a line that is normal (perpendicular) to the surface body. +### Polar Radius +The distance from the geometric center of an ellipsoid to either of its poles. +### Polygon Thickness +The thickness of a polygon is defined as follows: +### Positive East Longitude +The reported longitude values for a target body increase positive to the East. +### Positive West Longitude +The reported longitude values for a target body increase positive to the West. +### Prime Meridian +Prime Meridian (W) location is the third Euler angle which is expressed as a rotation about the North Pole as a function of time. The reference frame is J2000. +### Projection X +Projection X is the x-coordinate (Easting) for a point on a geographic Cartesian coordinate system +### Projection Y +Projection Y is the y-coordinate (Northing) for a point on a geographic Cartesian coordinate system +### PVL +Parameter Value Language (PVL) is used extensively by ISIS as a standard keyword value type language for naming and expressing data values. PVL format in ISIS is compatible with syntax used by the Planetary Data System. + +## Q + +## R + +### Radiance +A measurement describing the amount of electromagnetic energy emitted from an area of a planet. +### Radius +The distance (vector) value between the center of and a point on a circle, sphere, ellipse or ellipsoid. Refer to qview, camstats, or campt as examples of applications that report radius value at every image pixel location. +### Reference Measure +Reference Measure is a fundamental component of the control network. For every point within the network, there is always one and only one associated Reference Measure (Reference=True). The Reference Measure refers to a single image and it's pixel coordinate (measure) that best represents a control point location or feature. +### Reflectance +The ratio of reflected energy to incoming energy. +### Right Ascension +Right Ascension (RA) is one of two angles of the North Pole of a target body as a function of time. + +## S +### Sample +A column of pixels in an image, typically representing spatial information. The number of samples indicates the total width of an image in pixels. +### Sample Resolution +The ground distance (in meters) from the left edge to the right edge of a pixel. +### Scale +The map resolution measured in pixels per degree +### Serial Number +A unique identifier constructed and assigned to each individual image within a control network. The serial number (SN) is constructed by most of the control network applications "in real time" from specific instrument keywords on the image labels (Instrument keywords are populated by mission specific ingestion applications). +### Slant Distance +The distance from the spacecraft to the point of interest on the surface of the planet. +### Slew Angle +From the spacecraft, the Slew is the angle between the boresight (i.e., center of framing camera) and the nadir vector (subspacecraft vector). The Slew angle will be a constant value across the image. +### Solar Longitude +The Solar Longitude is the planetocentric longitude of the sun as seen from a point on a body. It is considered a seasonal angle. +### Spacecraft Azimuth +A clockwise angle from a point of origin to the direction of the Spacecraft. +### Spacecraft Position +The Spacecraft Position is the position of the spacecraft (x,y,z) in body-fixed rotating coordinate system. +### Special Pixels +Special Pixels are defined to distinguish valid pixels from non-valid pixels. +### SPICE +Spacecraft & Planetary ephemerides, Instrument C-matrix and Event kernels. SPICE refers to all the information required by ISIS in order to compute and map each image pixel onto a surface with reference to spacecraft position, sun position, instrument, and mission activities. ISIS uses software (ToolKit) supplied by the Navigation and Ancillary Information Facility (NAIF) for SPICE access and kernel management (Refer to spiceinit). +### Subsolar Ground Azimuth +The Ground azimuth to the SubSolar point is obtained by taking true North (90 deg Latitude) and finding the clockwise angle to the subsolar latitude and longitude point. +### SubSolar Latitude +The latitude of the subsolar point. +### SubSolar Longitude +The longitude of the subsolar point. +### SubSolar Point +The subsolar point is the target surface intercept of the line from the Sun and the target body's center. A triaxial ellipsoid is used to model the surface of the target body. +### SubSpacecraft Ground Azimuth +The Ground azimuth to the SubSpacecraft point (where the look vector from the spacecraft intercepts the target body) is obtained by taking true North (90 deg Latitude) and finding the clockwise angle to the subspacecraft latitude and longitude point. +### SubSpacecraft Latitude +The latitude value of the Subspacecraft Point +### SubSpacecraft Longitude +The longitude value Subspacecraft Point +### SubSpacecraft Point +The point on the surface of the target body which lies directly beneath the spacecraft. +### Sun Azimuth +A clockwise angle from a point of origin to the direction of the Sun. + +## T + +### Target Center Distance +The distance from the spacecraft to the target body center. + +## U + +### Universal Coordinate +The ISIS default coordinate system + +### UTC +Coordinated Universal Time (UTC) is a system of time keeping that gives an understandable name to each instant of time. The names are formed from the calendar date and time of day. UTC format consists of year, month, day, hour, minutes and seconds. + +## V +## W +## X +## Y +## Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/concepts/isis-fundamentals/bit-types.md b/docs/concepts/isis-fundamentals/bit-types.md new file mode 100644 index 0000000..f146047 --- /dev/null +++ b/docs/concepts/isis-fundamentals/bit-types.md @@ -0,0 +1,300 @@ +# Bit-Type + +## Bit-Type Basics +----- + +Computers store values in base-2 or binary, ones and zeros. +Values are stored in chunks of 8, 16, or 32 binary digits, or bits. The number +of bits per pixel (8-bit, 16-bit, 32-bit) is called **Bit-Depth**. A **Data Type** (Unsigned Byte, Signed Word, Real) is a unit of information. + +In ISIS, each data type has a corresponding bit-depth, and together these are called the **Bit-Type**. Bit-type is a term unique to ISIS. + +The a cube's bit-type affects the file size, and determines the +range and number of values that can be stored in each pixel of a cube. Larger bit-types (those with higher bit-depths) allow each pixel to represent its data with greater precision. + +There are three bit-types supported in ISIS: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Bit-DepthData TypeBytes per ValueRange
8-bitUnsigned Byte10 to 255
16-bitSigned Word2-32768 to 32767
32-bitReal4-3.40282E+38 to 3.04282E+38
+ +[![Bit-byte-word.jpg](../../assets/isis-fundamentals/Bit-byte-word.jpg)](../../assets/isis-fundamentals/Bit-byte-word.jpg "Dimensions of an ISIS3 Cube") + +There are 8 bits in 1 byte, and 16 bits in 2 bytes, as shown above. A word in ISIS is a 16-bit value. + +!!! note + + In ISIS, the data type and bit-depth will always correspond as follows: Unsigned Byte (8-bit), Signed Word (16-bit), and Real (32-bit). Therefore, ISIS's Bit-Type can refer to Bit-Depth or Data Type. (Outside of ISIS, it is possible for bytes, words and reals to be different bit-depths. But within ISIS, you don't have to worry about that.) + +There are 256 possible values (called digital numbers, or DNs) that can +be represented in an 8-bit pixel. If all the bits above are set to 1, the +output DN value would be 255. The values 0 to 255 are derived by setting +different bit positions to 0 or 1. The table below shows the binary +number stored by the computer, and the corresponding DN value the user +would see on a computer monitor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Binary NumberDN Value
000000000
000000011
000000102
......
11111110254
11111111255
+ +When the number of bits is increased to 16 or 32, the number of possible DN values +that can be represented also increases. + +### Glossary & Review + +* **Binary** : A base-2 numeral system. [Binary Number on Wikipedia](http://en.wikipedia.org/wiki/Binary_number). +* **Bit** : Short for binary digit, the smallest unit of digital storage. Bits are either "0" or "1". +* **Byte** : Short for binary term. In ISIS (and in most places), a byte is a group of eight bits. These 8 bits together can represent an 8-digit binary number from 00000000 (0) to 11111111 (255). +* **Bit-Type** : Refers to bit-depth or data type, representing how many bits there are per single pixel in a cube. +* **DN** : An abbreviation of digital number. For images, particularly ISIS cubes, a DN is also referred to as a pixel. + + +## What's the bit-type of my image? + +----- + +The **Type** keyword in the Pixels group of an image label will be set +to `UnsignedByte` for 8-bit cubes, `SignedWord` for 16-bit cubes, or `Real` +for 32-bit cubes. + +!!! abstract "Portion of ISIS Cube Label Showing the Data Type or Bit-Type" + + The **Type** keyword here is `UnsignedByte`, meaning this is an 8-bit cube. Type is a keyword in the **Pixels** group. + ``` + Object = IsisCube + Object = Core + ... + Group = Pixels + Type = UnsignedByte + ByteOrder = Lsb + Base = -128.00395256917 + Multiplier = 1.00395256917 + End_Group + End_Object + End_Object + ``` + +## How does the bit-type affect my file? + +----- + +The file size for the output file increases as the bit-type increases. +With larger bit-types, each pixel in the data portion of the file requires +a larger number of bytes to hold the value of that pixel, regardless +of what that value is. While the data portion of the cube usually takes the +biggest share of the file size, the text portions of a cube (the labels and +history) can add to the file size as well. The minimum label size +is 64 kilobytes. The following sizes are for a file that is 100 samples +by 100 lines: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Bit-TypeData Size (bytes)Label & History Size (bytes)File size (bytes)Possible Discrete DNsDN Range
8-bit.cub10,00072,34882,3482560 to 255
16-bit.cub20,00078,73698,73665,535-32768 to 32767
32-bit.cub40,00091,507131,507about 4 billion-3.40282E+38 to 3.40282E+38
+ +## How do I set the bit-type? + +----- + +Many of the ISIS3 programs allow the user to set the bit-type by setting +the bit-type attribute for an output file. + +!!! example "Sample Cubes" + + Try converting the bit-types of these cubes with ISIS as described below. + + | Bytes per Value | Output Bit-Type | Sample Cube | + | --------------- | --------------- | ----------- | + | 1 | 8-bit | [8-bit.cub](../../assets/isis-fundamentals/8-bit.cub) (80.4 KB) Ian Humphrey, 2016-06-01 10:41 AM | + | 2 | 16-bit | [16-bit.cub](../../assets/isis-fundamentals/16-bit.cub) (96.4 KB) Ian Humphrey, 2016-06-01 10:41 AM | + | 4 | 32-bit | [32-bit.cub](../../assets/isis-fundamentals/32-bit.cub) (128 KB) Ian Humphrey, 2016-06-01 10:41 AM | + +### Increasing the Bit-Type of a Cube + +Increasing the bit-type of a cube is a fairly straightforward matter +because the range of data in a smaller bit-type cube fits easily in the +increased range offered by the larger bit-type. Increasing the bit-type +of a cube will not increase the accuracy of the data in the cube, but +could allow the results of future operations to be recorded with more precision. + +Example - create a 16-bit (signed word) cube from an 8-bit (unsigned byte) cube using +[cubeatt](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/cubeatt/cubeatt.html) +by appending the attributes you wish to change to the file name: + +``` + cubeatt from=8bit.cub to=16bit.cub+SignedWord + OR + cubeatt from=8bit.cub to=16bit.cub+16-bit +``` + +In the +[cubeatt](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/cubeatt/cubeatt.html) +graphical user interface (GUI), simply hit the ATT (attributes) button +next to the output file selection box and select the desired bit-type in +the Attributes dialog. Notice when you change the attributes through the +ATT dialog, the attributes are appended to the output filename in the +main application window in the same fashion as the command line. Most +ISIS3 applications allow you to change key cube attributes through the +Attributes dialog. + +!!! tip + + Increasing the Bit-Type of a cube will increase the file size. + +### Decreasing the Bit-Type of a Cube + +Decreasing the bit-type of a cube is a bit trickier because the range of +data in a larger bit-type cube probably does not fit easily in the +decreased range of the smaller bit-type. In this case, you must supply +the minimum and maximum values of the input file to convert to valid DNs +in the output file. The values will then be stretched (scaled) as +necessary to fit into the reduced data range. To perform this operation, +you must know the range of the input data and provide that information +to the application that is used to reduce the bit-type. + +1. Get statistics for your image: Run **stats** to get the data range: + + ``` + stats from=32bit.cub + ``` + + stats produces: + + ``` + Group = Results + From = 32bit.cub + Average = 3386367.6610505 + StandardDeviation = 7446.038790893 + Variance = 55443493.675484 + Median = 3385719.8387097 + Mode = 3382280.056696 + Skew = 0.26100683557387 + Minimum = 3372788.0 + Maximum = 3417331.0 + TotalPixels = 265420800 + ValidPixels = 265420800 + NullPixels = 0 + LisPixels = 0 + LrsPixels = 0 + HisPixels = 0 + HrsPixels = 0 + End_Group + ``` + +1. **Change the bit-type attribute of your image** : Run **cubeatt** , + using the minimum and maximum values from stats (refer to the output + from stats above) for the data range attribute. Append the attribute + **3372788.0:3417331.0** to the output filename create the 16-bit + cube: + + ``` + cubeatt from=32bit.cub to=16bit.cub+UnsignedWord+3372788.0:3417331.0 + OR + cubeatt from=32bit.cub to=16bit.cub+16-bit+3372788.0:3417331.0 + ``` + +1. **Voila\!** The resulting output cube will have the values from + 3372788.0 to 3417331.0 from the original cube scaled to the range of + -32752 to 32767. Note the use of -32752 instead of -32768. This is + because the values below -32752 to -32768 are reserved for special + pixels in ISIS3 + + +!!! tip + + When reducing the bit-type, the original values may be stretched + (scaled) to fit in the range of the target bit-type. This may not + only shift the DN values to the new range, but may actually merge + ranges of DNs into a single value if the number of distinct values + in the original file is greater than the range of the output bit-type. diff --git a/docs/concepts/isis-fundamentals/cube-format.md b/docs/concepts/isis-fundamentals/cube-format.md new file mode 100644 index 0000000..e95b612 --- /dev/null +++ b/docs/concepts/isis-fundamentals/cube-format.md @@ -0,0 +1,103 @@ +# ISIS Cube Format + +## What Is A Cube? +--------------- + +![Three axes from the top left front corner of a cube, showing lines in the Y dimension, samples in the X dimension, and bands in the Z dimension.](../../assets/isis-fundamentals/Cube.png "Dimensions of an ISIS Cube"){ align=right } + +A cube is a 3-dimensional image with axis: samples, lines, and bands. The physical dimensions of a cube are called the number of samples (NS), number of lines (NL), and number of bands (NB). Typically, the sample and line dimensions are used to represent spatial information while the band dimension represents spectral information. See the table below for examples of the line, sample, and band dimensions of a few data sets from planetary missions. + +> Illustration of an ISIS3 image cube, showing the three dimensions of an ISIS3 image: width (samples), height (lines), and depth (bands) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instrument/Camera# Lines# Samples# BandsBands
Mars Odyssey - Thermal Emission Imaging System, Infrared (THEMIS-IR)24032010All 10 are Infrared, ranging from 6.78 to 14.88 microns
Mars Odyssey - Thermal Emission Imaging System, Visible Imaging Subsystem (THEMIS-VIS)102410245visible
Viking Orbiter105612041 ?blue, minus-blue, violet, green, red, clear
Mars Global Surveyor - Mars Oribiter Camera Wide Angle (MOC-WA)*34561bandwidth encompasses visible and near-infrared
Galileo Near-Infrared Mapping Spectrometer (NIMS)*20408visible to infrared
+ + +## What Are Pixels? +---------------- + +The individual cells within a cube are called pixels. Each pixel in a cube has a location, which is similar to rectangular coordinates (i.e.., (samples, lines, bands)). A cube can be as small as one sample, by one line, by one band (1,1,1). If we had a cube of this size, it would contain only one pixel. A cube can be as large as thousands of samples, by thousands of lines, by thousands of bands. A cube with dimensions (1000, 1000, 1000) would contain one billion pixels. See the [ISIS Cube Demo](https://doi-usgs.github.io/ISIS3/ISIS_Cube_Format.html#Cube-Demo) for an interactive visual of samples, lines, and bands. + +!!! tip + + Notice sample 1 is on the left edge of the image and line 1 is on the top edge. Therefore, to figure out the coordinates of a pixel, count lines and samples staring with 1,1 in the upper left corner and move down and to the right. + + +## Bit-Depth (aka Bit-Type) + +For more info about the amount of data stored per-pixel, or range of DNs, see [Bit-Type](../../concepts/isis-fundamentals/bit-types.md) + +## Pixel Values: Digital Numbers +----------------------------- + +Each pixel contains a numerical value, often referred to as the digital number, or DN. Low DNs typically show up as black in the image and high DN as white. DNs represent a measurement in units such as: + +* Radiance - A measurement describing the amount of electromagnetic energy emitted from an area of a planet +* Reflectance - The ratio of reflected energy to incoming energy +* Elevation - The height above or below a fixed point on the surface of a body +* Emissivity - A measure describing a substances ability to absorb and radiate electromagnetic energy + +## Core Base and Multiplier Basics +------------------------------- + +An 8-bit cube needs to represent elevations in meters. Unfortunately, 8-bit pixels have a range of 0 to 255, which is very restrictive for elevation. ISIS3 deals with this problem by using a **Core Base** and **Multiplier**. Each DN is really treated as a kind of floating point number in all ISIS3 programs. A multiplier of 100 on an 8-bit cube would make the DN range from 0 to 25500. A base of 30 with a multiplier of 100 would make that range from 30 to 25530. + +*Base + Multiplier * DN = True DN* + +## Sub-Pixel Positioning +-------------------- + +ISIS3 programs and users often need to interact at the sub-pixel level. That is, fractional pixel positions. The integral sample/line position is defined to be the center of a pixel. + +Take a pixel centered at (5, 5) for example. The upper left of the pixel contains the point (4.75, 4.75), and the lower right of the pixel contains the point (5.25, 5.25). The threshold between pixels is a value ending in .5 + +## Summary +------- + +Cubes are made up of individual pixels. Each pixel usually represents some area of a planet, moon, asteroid or other body. Pixels hold a DN (digital number). That number can be one, two or four bytes long depending on the accuracy necessary to represent the data. DNs can be modified by a "Base" and "Multiplier". The columns of a cube are called samples, the rows are called lines and a plane of samples and lines is called a band. \ No newline at end of file diff --git a/docs/concepts/isis-fundamentals/kernel-selection.md b/docs/concepts/isis-fundamentals/kernel-selection.md new file mode 100644 index 0000000..2e9b338 --- /dev/null +++ b/docs/concepts/isis-fundamentals/kernel-selection.md @@ -0,0 +1,36 @@ +# ISIS Kernel Load Selection + +ISIS selects the SPICE kernels to be used with an ISIS cube as part of running the spiceinit application. + +The user can enter kernels they would like to load via `spiceinit` (either by hand, or with a parameter file) or use the spice server, but that is not covered by this write up. This documents what happens when `spiceinit` selects kernels from the default location (`$ISIS3DATA/mission/kernels` or a different location specified by the `IsisPreferences` file) using the ISIS kernel databases. + +In spiceinit, the `KernelDb` class is used to select which kernels to load. This class can be called directly to query the ISIS kernel databases if desired. + +## Kernel Types + +First, the allowed kernel “types” are specified for both cks and spks: + +- **Nadir** : The worst quality kernel. Used as a last resort because it assumes the spacecraft is always nadir-looking. +- **Predicted** : Preliminary kernels produced by a mission with best-estimates of where the spacecraft will be. +- **Reconstructed** : Typically produced by a mission a few weeks after the target has been reached. +- **Smithed** : The best quality kernel, will be used first when selected. Smithed kernels have been improved or adjusted for accuracy by a mission team or for the purpose of a cartographic product. Consider the source, content and completeness of Smithed kernels when selecting this level of quality. + +Kernels of a non-allowed type will not be selected, and the highest quality kernel that meets the other selection criteria will be returned. + +Above, the types are in order of lowest to highest quality kernel category. For more information about these kernel quality categories, and the spiceinit application, please see [spiceinit documentation](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/spiceinit/spiceinit.html). + +## Kernel Selection + +1. The location of the correct kernel database file to use is determined using the mission name, the cube’s label (to get the `InstrumentID`), and the user's `IsisPreferences` file. There is one kernel.db file for each "type" of kernel needed by the image (ck, spk, fk, ik, iak...) but these are simple files for all but the cks and spks (TODO: Add more detail here). + +1. The most recent kernel database file in the appropriate directory is loaded (unless there is a kernel configuration file, see *Kernel Configuration File* below). Kernel databases are updated when new kernels become available or there is a change to which kernels need to be loaded communicated from the team. + +1. The `StartTime` and `StopTime` keywords from the `Instrument` group in the input cube label are used to search through the available kernels as specified by PVL groups in the kernel database file and determine the best match. `StopTime` is an optional keyword in ISIS cubes, so if it is not available, it is set equal to the `StartTime` + +!!! info "Kernel Configuration File" + + A kernel configuration file is a file of the form `kernels.????.conf` that contains information about which kernel database files to load in which cases. + +## Kernel Distribution Infrastructure + +In the ISIS data area, shell scripts within each ck and spk directory that receive new kernels from an automated download script are run to re-generate kernel database files when new kernels are downloaded. These scripts are usually named `makedb` and call the ISIS application makedb. After update, in most cases, these new kernels and kernel database files are immediately pushed to the rsync server. \ No newline at end of file diff --git a/docs/concepts/isis-fundamentals/special-pixels.md b/docs/concepts/isis-fundamentals/special-pixels.md new file mode 100644 index 0000000..b4995f6 --- /dev/null +++ b/docs/concepts/isis-fundamentals/special-pixels.md @@ -0,0 +1,153 @@ + +# Special Pixels + +### What are special pixels? + +Special pixels are defined to distinguish valid pixels from non-valid pixels in ISIS. This is very important to scientists who evaluate the density values, and draw conclusions about the physical properties of a scene. + +### How are special pixels set? + +There are two ways that [Digital Number (DN)](../../concepts/glossary.md#dn) values are set to special pixels in ISIS: + +* **Instrument Special Pixels** : These types of special pixels are set during the ingestion of the data into ISIS because the acquired measurement either exceeded the dynamic range of the sensor based on its inherent properties (such as sensitivity) and settings (such as gain) or the measurement wasn't collected due to an instrument or transmission error. + * _Low Instrument Saturation (LIS)_ : The sensor registered a value too low to be measured accurately (i.e. undersaturated). + * _High Instrument Saturation (HIS)_ : The sensor registered a value too high to be measured accurately (i.e. oversaturated). + * _No Data Collected (NULL)_ : The instrument did not collect a measurement due to an sensor malfunction (such as a damaged CCD element) or an error in transmission prevented the value from being recorded. +* **Representation Special Pixels** : These types of special pixels are set due to being processed by ISIS applications that cause the DNs to fall outside the data range of the file, either due to settings defined by the user or the effects of the algorithms within the application. + * _Low Representation Saturation (LRS)_ : The resulting DN calculated by the application fall below the possible range of values (i.e. undersaturated). + * _High Representation Saturation (HRS)_ : The resulting DN calculated by the application are higher than the possible range of values (i.e. oversaturated). + * _Data Removed (NULL)_ : NULL values are set by an application when it removes data, such as during masking or geometric warping. + +## Special Pixels in ISIS +----------------------------------------------------- + +### How many special pixel values exist in ISIS? + +There are five special pixel values defined in the ISIS software system for 16-bit and 32-bit data type. Each of the five special pixels is denoted by a specific value that represents that specific type of invalid data. **Having one of these special value is the only way ISIS can tell that a given pixel is in fact a special pixel of a particular type.** + +The **NULL** special pixel identifies pixels where either the instrument failed to collect data, or data was removed or empty pixels created during processing. + +The **LRS** (Low Representation Saturation) and **HRS** (High Representation Saturation) represent saturated pixels that fall outside the minimum and maximum valid range of the file respectively. + +The **LIS** (Low Instrument Saturation) values represent pixels that fall below the lowest value the instrument can accurately record. The **HIS** (High Instrument Saturation) values represent pixels that exceed the highest value the instrument can accurately record. + +See the [Special Pixel Demo](https://doi-usgs.github.io/ISIS3/Special_Pixels.html#Interactive-Special-Pixel-Demonstration) to visualize the concept of special pixels in a cube. + +!!! warning "Non-differentiation of Special Pixels in 8-bit Cubes" + + 8-bit data can only has two special pixel types, represented by values of 0 (**NULL**, **LIS**, and **LRS**) and 255 (**HIS** and **HRS**). Thus 8-bit data does not distinguish between **NULL**, **LIS**, and **LRS** pixels, nor between **HIS** and **HRS** pixels. You may lose data differentiating special pixels if you convert a higher bit-depth cube down to an 8-bit cube. + +### Numerical and Visual Representation of Special Pixels + +_Visual refers to the appearance of a special pixel in an ISIS display application, like **qview**._ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Special Pixel Name32-bit*16-bit8-bitVisual
NULL-3.40282e+38-327680black
Low Representation Saturation (LRS)-3.40282e+38-327670black
Low Instrument Saturation (LIS)-3.40282e+38-327660black
High Instrument Saturation (HIS)-3.40282e+38-32765255white
High Representation Saturation (HRS)-3.40282e+38-32764255white
+ +!!! tip "Differentiating 32-bit Special Pixels" + + The 32-bit values representing different special pixels do differ just like those representing the 16-bit values. However, the variations are on the last digit, and thus are not visible in this display since it does not show all 38 digits. + +### Are the special pixel values propagated between different bit types? + +The special pixel values are converted without loss of information between 16-bit and 32-bit data. See the chart above to see what the values are set to after conversion from one bit type to the other. For example, if a pixel in 16-bit data with a DN of -32766 (thus representing an LIS pixel) is converted to 32-bit data, its DN value will be changed to that value representing an LIS pixel in 32-bit format. + +If the image is converted from 16-bit or 32-bit to an 8-bit data type, then all the LIS, LRS, and NULL special pixels have their values set to 0, and all HIS and HRS special pixels have their values set to 255. Note that this conversion results in a loss of information, as it is no longer possible to distinguish between LIS, LRS, and NULL pixels since they all have the same pixel value of 0. Similarly, converting from 16-bit or 32-bit to 8-bit will make it impossible to distinguish between HIS and HRS pixels (both having the value 255). + +### Is the NULL special pixel defined as 0 for all bit types? + +No. The DN value 0 is defined as NULL (or LRS or LIS) only in an 8-bit file. For the 16-bit and 32-bit data, 0 is a valid DN! + +## Working with Special Pixels +------------------------------------------------------------- + +Q: _How do I find out if there are any special pixels in my file?_ + +A: Statistics: **hist** & **stats** + +There are two programs [**stats**](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/stats/stats.html) and [**hist**](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/hist/hist.html) that will provide statistics about the pixels of an image. + +??? abstract "Output from stats" + + ``` + Group = Results + From = Intro2isis.cub + Band = 1 + Average = 61.770642254011 + StandardDeviation = 8.0295403784653 + Variance = 64.473518689404 + Median = 62.0 + Mode = 66.0 + Skew = -0.085692730285373 + Minimum = 2.0 + Maximum = 252.0 + Sum = 76029592.0 + TotalPixels = 1271424 + ValidPixels = 1230837 + OverValidMaximumPixels = 0 + UnderValidMinimumPixels = 0 + NullPixels = 40587 + LisPixels = 0 + LrsPixels = 0 + HisPixels = 0 + HrsPixels = 0 + End_Group + ``` + +### Viewing images in qview + +You can display the image on a monitor using the program [**qview**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/qview/qview.html), and position the cursor over a very dark pixel. The DN displayed on the screen will either be NULL, LIS, LRS, or a very low DN value. The HIS and HRS pixels will be displayed as white pixels on a monitor. + +## Related ISIS Applications +----------------------------------------------------------- + +* [**hist**](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/hist/hist.html) +* [**stats**](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/stats/stats.html) +* [**qview**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/qview/qview.html) +* [**isis2ascii**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/isis2ascii/isis2ascii.html) \ No newline at end of file diff --git a/docs/concepts/isis-fundamentals/spice-format.md b/docs/concepts/isis-fundamentals/spice-format.md new file mode 100644 index 0000000..c722b27 --- /dev/null +++ b/docs/concepts/isis-fundamentals/spice-format.md @@ -0,0 +1,133 @@ +# The ISIS Attached Spice Format + +## Overview + +Running the [spiceinit](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/spiceinit/spiceinit.html) application with `attach=true` will attach all of the SPICE data required by the camera model directly to the Cube. There are 6 locations information is added to the Cube: + +* [The Kernels Group](#the-kernels-group) +* [The NaifKeywords Object](#the-naifkeywords-object) +* [The InstrumentPointing Table](#the-instrumentpointing-table) +* [The InstrumentPosition Table](#the-instrumentposition-table) +* [The BodyRotation Table](#the-bodyrotation-table) +* [The SunPosition Table](#the-sunposition-table) + +The following sections outline what is stored in each of these locations. The [spiceinit application documentation](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/spiceinit/spiceinit.html) shows what textual information is added to these locations. + +## The Kernels Group + +### Before spiceinit + +The Kernels group is already a part of the Cube label after ingestion (it is nested under the `IsisCube` object). Usually, the only information it contains after ingestion is the `NaifFrameCode` keyword. The `NaifFrameCode` keyword contains the NAIF code for the instrument. So, information about the instrument will be stored as `INS{NaifFrameCode}_{Some property}` in the NAIF kernels. For example the `NaifFrameCode` for Kaguya Terrain Camera 2 is `-131371`. So, the focal length for Kaguya Terrain Camera 2 is stored as `INS-131371_FOCAL_LENGTH`. Usually, the NAIF ID for the instrument is also the NAIF ID for the sensor reference frame. If this is not the case, then there will be also be a `NaifCkCode` keyword in the `Kernels` group that contains the NAIF ID for the sensor reference frame. If using a DSK shapemodel, then the ray casting engine used will also be added to the Kernels group as the `RayTraceEngine` keyword. There are also `OnError` and `Tolerance` keywords added that determine behavior with the ray casting engine. + +### After spiceinit + +All of the kernels used will be added to the Kernels group under the following keywords: + +* `LeapSecond` +* `TargetAttitudeShape` +* `TargetPosition` +* `InstrumentPointing` +* `Instrument` +* `SpacecraftClock` +* `InstrumentPosition` +* `InstrumentAddendum` + +If a shapemodel is is used, then that shapemodel will also be specified by the `ShapeModel` keyword. The `InstrumentPositionQuality` and `InstrumentPointingQuality` keywords will specify the quality of the kernels used for the InstrumentPositon and InstrumentPointing Tables. Finally, the `CameraVersion` keyword specifies the version of the camera model that the Cube will now work with. + +## The NaifKeywords Object + +The NaifKeywords object is a PVL object that contains values queried from SPICE text kernels. It is not a part of the Cube prior to spiceinit being run. After spiceinit, the group is located at the very end of the Cube label. + +This object contains all of the keywords and values collected from the [SPICE kernel pool](https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/kernel.html#Text%20Kernels%20and%20the%20Kernel%20Pool). Some examples what is usually contained in the NaifKeywords object are the target body radii, the instrument focal length, distortion model coefficients, and the transformations between image pixels and detector pixels. + +The sensor model specifies what is contained in the `NaifKeywords` object. Keywords and values are added to the `NaifKeywords` object the following Spice class methods (methods in italics are protected): + +* getDouble +* getInteger +* getString +* _readValue_ +* _storeResult_ +* _storeValue_ + +The sensor model and its maps use these methods to get any keyword values they need from the SPICE kernel pool. The keyword and its values are then stored in the `NaifKeywords` object as a keyword, value pair. For example, if getDouble was called with the NAIF keyword `INS-131371_FOCAL_LENGTH`, then `INS-131371_FOCAL_LENGTH` would be added to the NaifKeywords ovject as a PVL keyword whose values is the value returned by the NAIF SPICE ToolKit. Any future calls to access keyword values that have been stored use the `NaifKeywords` object instead of the SPICE kernel pool. + +## ISIS Tables + +The `InstrumentPointing` Table, `InstrumentPosition` Table, `BodyRotation` Table, and `SunPosition` Table are ISIS Tables. These are tables of binary information stored on the Cube file. Each Table consists of two parts; the label, and the binary data. + +### ISIS Table Labels + +The labels for all of the Tables in a Cube file are located in the Cube label after the `IsisCube` object. Each label is an object called `Table`, each Table is identified by the values of its `Name` keyword. So, the InstrumentPointing Table label is the `Table` object whose `Name` keyword has a value of `InstrumentPointing`. The Table label also contains information about where the binary data is stored in the `StartByte` and `Bytes` keywords. The format of the table is defined by the `Records`` and ByteOrder` keywords and the `Field` groups. The `Records` keyword specifies how many records, or rows, there are in the Table. Each `Field` group describes a field, or column, in the table. Each `Field` group contains a `Name` keyword that describes the field's name, a `Type` keyword that describes what type of binary data that field contains, and a `Size` keyword that describes how many pieces of binary data are stored in that field. + +### ISIS Table Binary Data + +The binary data for ISIS Tables are stored as contiguous blocks of binary data at the end of the Cube file. Each record, or row, in the Table is stored contiguously starting with the first record. Within a record, the values for each field, or column, are stored in the order that the `Field` groups are stored in the Table Label. + +## The InstrumentPointing Table + +The InstrumentPointing Table contains information needed to rotate from the J2000 reference frame to the sensor reference frame. It is not a part of the Cube prior to spiceinit being run. After spiceinit, the label for the Table is located after the `IsisCube` object in the Cube label and the binary table data is located at the end of the file. + +### The InstrumentPointing Table Label + +The InstrumentPointing Table's label contains all of the information described in [ISIS Table Labels](#ISIS-Table-Labels) along some additional keywords. The `TimeDependentFrames` and `ConstantFrames` keywords contain the NAIF codes of the reference frames that are rotated through. These keywords should be read right to left, so the start frame is last in the value array and the final frame is first in the value array. The `ConstantRotation` keyword contains a 3x3 rotation matrix that rotates from the last time dependent frame to the final frame, that is the frames in the `ConstantFrames` keyword. The rotations through the frames in the `TimeDependentFrames` are stored in the binary portion of the InstrumentPointing Table. The `CkTableStartTime` and `CkTableEndTime` keywords contain the valid time range for the rotation information in the InstrumentPointing Table. The `CkTableOriginalSize` keyword describes how many records were in the InstrumentPointing Table prior to any reduction steps. The `FrameTypeCode` keyword describes what type of NAIF SPICE C Kernel the rotation information came from. The `Kernels` keyword contains the SPICE Kernels the rotation information came from. + +### The InstrumentPointing Table Binary Data + +The InstrumentPointing Table's binary data contains the rotations from the starting frame (always J2000) to the last time dependent frame (usually the spacecraft). This data can be stored in two formats: + +* A quaternion cache +* coefficients for Euler angles + +#### Quaternion Cache + +After spiceinit, the InstrumentPointing Table binary data is always a quaternion cache. Each record contains, a rotation quaternion, the time for that quaternion, and optionally the 3-element rotational velocity. The quaternions use [NAIF's format](ftp://naif.jpl.nasa.gov/pub/naif/misc/Quaternion_White_Paper/Quaternions_White_Paper.pdf) which is not the same as the standard quaternion format. NAIF stores the quaternion as (w, x, y, z). Most other tools and libraries store the quaternion as (x, y, z, w). + +#### Coefficients + +During bundle adjustment (the jigsaw application mostly), the InstrumentPointing is converted to polynomials equations for Euler angles. After this point, the InstrumentPointing Table binary data contains coefficients, precisely stored time scaling values, and the polynomial degree. The first record in the table contains the 0th degree coefficients, the second record in the table contains the 1st degree coefficients, and so on through the second to last record. The final record of the table contains the time scaling offset in the first field, the time scale in the second field, and the polynomial degree in the third field. ISIS uses the 3, 1, 3 axis order for Euler angles. The only exception to this is the appjit application uses 1, 2, 3 axis order. + +## The InstrumentPosition Table + +The InstrumentPosition Table contains the position and velocity of the sensor relative to the target body in the J2000 reference frame. It is not a part of the Cube prior to spiceinit being run. After spiceinit, the label for the Table is located after the `IsisCube` object in the Cube label and the binary table data is located at the end of the file. + +### The InstrumentPosition Table Label + +The InstrumentPosition Table's label contains all of the information described in [ISIS Table Labels](#ISIS-Table-Labels) along some additional keywords.The `SpkTableStartTime` and `SpkTableEndTime` keywords contain the valid time range for the information. The `SpkTableOriginalSize` keyword contains the original number of entries in the InstrumentPosition Table prior to any reduction techniques. The `CacheType` keyword describes what type of information is stored in the binary portion of the Table. The `Kernels` keyword contains the SPICE Kernels the information came from. The possible values of `CacheType` are `Linear`, `HermiteSpline`, and `PolyFunction`. + + +### The InstrumentPosition Table Binary Data + +The InstrumentPosition Table's binary data contains the position and optionally the velocity of the sensor relative to the target body in the J2000 reference frame. The format of the Table depends on the value of the `CacheType` keyword in the Table label. + +#### Linear + +Each record in the InstrumentPosition Table contains the sensor position and potentially velocity at a specific time. If there is a single record, that position and velocity will be used for any time within the valid time range. If there are multiple records, then the position and velocity are linearly interpolated between times. + +#### HermiteSpline + +Each record in the InstrumentPosition Table contains the sensor position and velocity at a specific time. Unlike the Linear case, velocity is required for every time. Position and velocity are interpolated from a hermite spline fit over all of the times. + +#### PolyFunction + +During bundle adjustment (the jigsaw application mostly), the InstrumentPosition is converted to polynomials equations for the sensor position. After this point, the InstrumentPosition Table binary data contains coefficients, precisely stored time scaling values, and the polynomial degree. The first record in the table contains the 0th degree coefficients, the second record in the table contains the 1st degree coefficients, and so on through the second to last record. The final record of the table contains the time scaling offset in the first field, the time scale in the second field, and the polynomial degree in the third field. + +## The BodyRotation Table + +The BodyRotation Table contains the rotation information between the J2000 reference frame and the target body reference frame. It is not a part of the Cube prior to spiceinit being run. After spiceinit, the label for the Table is located after the `IsisCube` object in the Cube label and the binary table data is located at the end of the file. + +Depending on what type of PCK was used to create the BodyRotation table, it will have a different format. + +### Binary PCK BodyRotation Table + +When a binary PCK is used, the BodyRotation Table has the same format as the [InstrumentPointing Table](#the-instrumentpointing-table) except it has the rotation from J2000 to the target body reference frame and it always has a [quaternion cache](#quaternion-cache). + + +### Text PCK BodyRotation Table + +When a text PCK is used, the BodyRotation Table contains coefficients for polynomials that define the rotation from the J2000 reference frame to the target body reference frame. Similar to the [InstrumentPointing Table Label](#the-instrumentpointing-table-label), The BodyRotation Table label will have the `TimeDependentFrames`, `CkTableStartTime`, `CkTableEndTime`, `CkTableOriginalSize`, `FrameTypeCode`, and `Kernels` keywords. Unlike, the [InstrumentPointing Table Label](#the-instrumentpointing-table-label), it will not have the `ConstantFrames` or `ConstantRotation` keywords because the rotation is handled by a single time dependent rotation, hence the `TimeDependentFrames` keyword will have only the target body reference frame ID and the J2000 reference frame ID (1) in it. The coefficients for the rotation polynomials are stored in the `PoleRa`, `PoleDec`, and `PrimeMeridian` keywords. These polynomials have a slightly different format than other polynomials, see the [NAIF documentation](https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/pck.html#Models%20for%20the%20Sun,%20Planets,%20and%20some%20Minor%20Bodies%20in%20Text%20PCK%20Kernels) for a detailed description. There may also be `PoleRaNutPrec`, `PoleDecNutPrec`, `PmNutPrec`, `SysNutPrec0`, and/or `SysNutPrec1` keywords. These keywords contain the nutation precession angles, again see the [NAIF documentation](https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/pck.html#Models%20for%20Satellites%20in%20Text%20PCK%20Kernels) for how to use these values. + +The polynomial coefficients for the rotation from J2000 to the target body reference frame are stored on the BodyrRotation Table label, but the binary data also contains a [quaternion cache](#quaternion-cache) derived from the rotation polynomials. + +## The SunPosition Table + +The SunPosition Table contains the position of the Sun relative to the target body in the J2000 reference frame. The SunPosition Table has the same format as the [the InstrumentPosition Table](#the-instrumentposition-table) except it always has a [linear cache](#linear). The Position is in kilometers and the Velocity is in kilometers per second. \ No newline at end of file diff --git a/docs/css/extras.css b/docs/css/extras.css index 88b8c2c..4b8851f 100644 --- a/docs/css/extras.css +++ b/docs/css/extras.css @@ -1,2 +1,6 @@ -:root { - } \ No newline at end of file +/* This handles the issue where mkdocs-css and uswds-css are in conflict. Both try to set html to a specific font-size percentage. + mkdocs-css makes the font too large causing the usa banner to be too large. uswds-css makes the page font too small. + Therefore a solution is to set the font-size percentage in the middle.*/ +html { + font-size: 120%!important; +} diff --git a/docs/getting-started/using-isis-first-steps/introduction-to-isis.md b/docs/getting-started/using-isis-first-steps/introduction-to-isis.md new file mode 100644 index 0000000..4aa7abb --- /dev/null +++ b/docs/getting-started/using-isis-first-steps/introduction-to-isis.md @@ -0,0 +1,371 @@ +# Introduction to ISIS + +## What is ISIS? + +----- + +ISIS is an image processing software package. The focus of the software +is to manipulate imagery collected by current and past NASA planetary +missions sent to Mars, Jupiter, Saturn, and other solar system bodies. + +If you're familiar with commercial image processing packages like +Photoshop, Envi, or ERDAS Imagine, you'll recognize many of the +standard image processing operations ISIS is capable of, such as +contrast, stretch, image algebra, filters, and statistical analysis. + +However, the real power of ISIS is its unique capabilities for +processing data from NASA spacecraft missions such as Voyager, Viking, +Galileo, Mars Global Surveyor, and Mars Odyssey. ISIS is able to import +raw mission data into a usable geospatial image product, and has tools +for digital mosaicking of adjacent images, photometric modeling and +normalization, removal of systematic noise patterns, overlaying +graticules, and numerous other cartographic and scientific analysis +functions. + +!!! info inline end "Valles Marineris Mosaic" + + ![Mars Hemisphere Mosaic](../../assets/isis-fundamentals/Mars_hemi.gif){ width=200 } + + This famous mosaic of the Valles Marineris hemisphere of Mars was + created using ISIS. The mosaic is composed of 102 Viking Orbiter + images of Mars, and is projected into point perspective, a view + similar to that which one would see from a spacecraft at a distance of + 2500 kilometers from the surface of the planet. + +The following are just a few examples of how the USGS Astrogeology +Research Program has used ISIS in our work (links open in a new +window): + + - **Global mosaics** : mosaicking hundreds or thousands of images + collected by space exploration missions to create seamless, + cartographically accurate, global image maps for use by the + planetary science community for research and mapping. See our + [Map-a-Planet](https://astrogeology.usgs.gov/tools/map-a-planet-2) site to view these + products. + + - **Geologic Mapping** : we create accurate base image maps for + geologists to use in creating geologic maps. See our [Planetary + Geologic Mapping + Program](http://astrogeology.usgs.gov/Projects/PlanetaryMapping/) + for more information about this work. + + - **Scientific Research** : Using ISIS to mosaic images of a region + of interest to create a scientifically accurate image product, and + analyzing the imagery based on spectral, textural, or other + attributes. See the following Science Magazine abstract for examples + of images from the Mars Exploration Rover Mission Microscopic Image + that were processed and analyzed using ISIS as part of the + scientific research resulting from the mission: [Textures of the + Soils and Rocks at Gusev Crater from Spirit's Microscopic + Imager](http://astrogeology.usgs.gov/search/details/Mars/MER/ImagerFindings/ScienceMI824/pdf). + +## User Interface for ISIS + +----- + +ISIS programs fall into two main groups: interactive and +non-interactive. Interactive programs allow you to observe the results +of actions you take almost immediately. The main interactive program is +[**qview**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/qview/qview.html), +the image display program for ISIS. However, most programs in ISIS +fall into the non-interactive group. These programs process the data you +supply, usually one or more image files, and write the results to a new +file. Some examples are +[**lowpass**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/lowpass/lowpass.html), +[**ratio**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/ratio/ratio.html) +and +[**moc2isis**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/moc2isis/moc2isis.html). +At this point we will concentrate on the user interface for +non-interactive programs because their interfaces are all similar. +Interactive programs are somewhat unique, so they each have their own +documentation. + +[![QviewTwoCubes.png](../../assets/isis-fundamentals/QviewTwoCubes.png)](../../assets/isis-fundamentals/QviewTwoCubes.png "QviewTwoCubes.png") + +> **qview**, ISIS's interactive image display application + +All ISIS programs are launched via the command line. The command line +refers to the text typed at the prompt of a terminal window such as +xterm, console, or putty, or in a script like cshell, or perl. ISIS +programs are started by typing the name of the program followed by any +arguments. All arguments must be separated from each other by at least +one space. + +Command line arguments are broken into two categories: reserved and +parameter. Reserved arguments always begin with a dash (-) and change +major things about how the program runs while parameter arguments supply +data to the application and control how it processes that input data to +create output data. + + +## Reserved Command Line Arguments + +----- + +Reserved arguments all begin with a dash (-), and are not sensitive to +case (i.e., `-help` is the same as `-HElp`). A list of basic reserved +arguments includes: + + - **-webhelp** Launch a web browser showing the ISIS help page for + that program. All other arguments will be ignored. + - **-help** Display a list of the program's parameters showing their + default values. For example: +``` + > equalizer -help + FROMLIST = Null + HOLDLIST = Null + TOLIST = Null + OUTSTATS = NULL + INSTATS = NULL + PROCESS = (*BOTH, CALCULATE, APPLY) + SOLVEMETHOD = (QRD, *SPARSE) + ADJUST = (*BOTH, BRIGHTNESS, CONTRAST, GAIN) + MINCOUNT = 1000 + WEIGHT = FALSE + PERCENT = 100.0 +``` + + - **-last** Run the program using the same parameter arguments from + the most recent time the program was run. This does not include any + reserved arguments. + - **-restore=filename** Run the program using the arguments from the + file specified in filename. + +Reserved arguments come in two forms, solitary keyword or keyword value +pair. Solitary keywords tell the program to perform some special action +such as the `-help` keyword above. Keyword value pairs also tell the +program to perform some special action, but use additional information +for that action like in the `-restore` argument above. The keyword and +value must be separated from each other with an equals sign (=). The +equals sign may have spaces on either or both sides of it. + +## Parameter Command Line Arguments + +----- + +Parameter arguments are always made up of keyword value pairs. The +keyword and value are separated by an equals sign just like reserved +arguments, but they begin with an alphabetic letter instead of a dash. +Parameters control what input data to use, what settings to use to +process that input data, and where to put the output data. There are six +different types of parameters: + + - **Cube file names** - A cube file name is the location on disk of an + ISIS cube. It can be either the input to this program or where to + place the output. Input cubes must be the output from some other + ISIS program. Most programs can process cubes from ISIS2, but some + information may be interpreted differently. Output cubes, will + always be the location to place processed results from the + application. When entering the filename of a cube it is not + necessary to enter the .cub extension. It will be added for you if + you do not type it. + + ``` + from=r0700563_lev1.cub + to=f431a62 + ``` + + - **Data file names** - A data file name is the location on disk of a file + which is not an ISIS cube. This includes input files from missions + such as Mars Global Surveyor or Viking, and output files such as + that produced by the program **stats** or **isis2std**. + + ``` + to=myStatistic.dat + ``` + + - **Floating point numbers** - Floating point numbers are numeric values + with a whole part and/or a fractional part. Parameters with this + type can be given values like `1.0`, `0.7823`, `127` or `0.31416E+1` + + ``` + radius=317.681 + ``` + + - **Integers** - Integer numbers have only a whole part. Parameters of + this type can be given values like `0`, `2`, `-18223` or `255`. + + ``` + lines=1024 + ``` + + - **Booleans** - Boolean parameters are used as flags to indicate true or + false. The ISIS user interface allows true values to be represented + by `True`, `T`, `Yes` or `Y`. False values can be `False`, `F`, `No` or `N`. Any + mixture of upper and lower case letters is allowed. The name of the + parameter for boolean's is usually a question such as USEDEM. This + should be read as "Do you want the program to use a DEM when it + processes the input?" + + ``` + CREATESPECIAL=FALSE + emission=true + ``` + + - **Strings** - A string is a simple sequence of printable characters. For + example `MARS`, `BiLinear` or `The quick brown fox`. + + ``` + bittype=real + ``` + +## Application Running Modes + +----- + +All non-interactive programs can run in one of two modes, text mode +(runs without launching a window) or graphical mode (launches a window +for providing parameters). Which mode the program runs in depends on +what arguments you supplied on the command line. If any parameter +arguments are present on the command line, the program will run in text +mode unless explicitly overridden using the reserved argument `-gui`. + +## ISIS Graphical Mode + +----- + +To run an ISIS program in graphical mode, simply type the name of the +program followed by the `Enter ↵` key. The program will display a window +that allows you to set parameters for the program, start/stop running +the algorithm on the data, observe the current status of the program, +and see any logged information. + +As mentioned earlier, if there are any parameter arguments on the +command line the program will run in text mode. You can override this +feature by supplying the `-gui` reserved argument on the command line. The +`-gui` flag refers to the term Graphical User Interface (GUI), and forces the +application to run in graphical mode. The program will then load any parameter +arguments and launch the program in graphical mode instead of text mode. + +[![LowpassScreenShot1.png](../../assets/isis-fundamentals/LowpassScreenShot1.png){ align=right width=400 }](../../assets/isis-fundamentals/LowpassScreenShot1.png "LowpassScreenShot1.png") + +### lowpass, regular graphical mode + +``` +lowpass +``` + +When run with no parameters, lowpass opens in graphical mode to let +you fill in the parameters. + +----- + +### lowpass, forced into graphical mode with -gui + + ``` + lowpass from=f431a63.cub to=f431a63_lpf3x3.cub lines=3 samples=3 -gui + ``` + +[![LowpassScreenShot2.png](../../assets/isis-fundamentals/LowpassScreenShot2.png){ align=right width=400 }](../../assets/isis-fundamentals/LowpassScreenShot2.png "LowpassScreenShot2.png") + +Here, lowpass was run with parameters, but by using the `-gui` flag, +lowpass opens in graphical mode and automatically fills in values for +any parameters you passed it on the command line. + +As you can see the parameter arguments on the command line were used to +set the values for the **lowpass** application, and the `-gui` reserved +argument caused the program to run in graphical mode instead of in text +mode. + +----- + +## ISIS Text Mode + +For text mode, ISIS programs get all their parameters from you via the +command line arguments, process the data, and then exit. Programs may or +may not show a status message and results on the terminal window. While +running, an application that encounters an error will show the error +message on the terminal window and then exit. It is then up to you to +correct the error and try again. + +### lowpass running in text mode + +[![LowpassScreenShot3.png](../../assets/isis-fundamentals/LowpassScreenShot3.png){ align=right width=400 }](../../assets/isis-fundamentals/LowpassScreenShot3.png "LowpassScreenShot3.png") + +We ran the **lowpass** application, passing all the parameters along +on the command line. Oops! "samples" was spelled wrong, but +**lowpass** gives us a handy error message to let us know what the +problem was. We run it again, it shows us its status as it runs, and +returns us to the command line prompt when it's finished. + +----- + +## Using qview to View Cubes + +Naturally, one of the first things anyone wants to do when they get +their hands on image data is look at it! The **qview** application is +the image viewer for ISIS. **qview** has a number of tools to let you +zoom in and out, change the contrast, choose color combinations, +compare, and otherwise interact with and look at your images. We'll talk +about some of these tools in detail later. For now, let's just learn how +to open an image in **qview**. + +1. Run **qview** by typing qview on the command line. The **qview** + viewer application window will open. + +2. Select Open... from the File menu. A dialog box labeled "Open" will + appear. Images in the native ISIS format are called ISIS cubes or + simply cubes. + + - Find the directory containing your ISIS cubes + - Select one or more to open + - Click the Open button + +3. Your image(s) will appear in the **qview** window! + +### Load and Display a Multi-Band Cube + +**qview** will load an entire multi-band cube into memory. + +----- + +![Black and White](../../assets/isis-fundamentals/Qview_vims_singleband.png){ align=right width=400 } + +#### Displaying a Single Band in Black and White + +Each band can be selected to view. + +----- + +![Color Composite](../../assets/isis-fundamentals/Qview_vims_bandrgb.png){ align=right width=400 } + +#### Displaying a Red, Green, Blue Color Composite + +----- + +## Try It + +Now that you know how to run ISIS programs go experiment with some of +the basic ones like **stats**, **hist** or **mirror**. + +Download the ISIS cube +[Intro2isis.cub.gz](../../assets/isis-fundamentals/Intro2isis.cub.gz) - the +cube is compressed in a GZIP archive file. Use gunzip to uncompress the +cube. The filename of the cube is Intro2isis.cub. + +Run each of the following applications, using intro2isis.cub as your +input '(FROM)' file. Try running in both the GUI and command line modes. +The following links to application documentation may be helpful: + + - [**stats**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/stats/stats.html) + : The **stats** application computes statistics (such as average, + mode, minimum, maximum, etc.) for the pixels in a single band. To + choose a band other than the default (band 1) in GUI mode, click the + arrow to the right of the "From" field and choose "Change + attributes..." from the menu. You can then enter a different band + number. + + - [**hist**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/hist/hist.html) + : The **hist** application creates a tabular representation of the + histogram of a single band in a cube. Like stats, the default band + is band 1 and can be changed in the file attributes in the GUI. + + - [**mirror**](http://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/mirror/mirror.html) + : The **mirror** application flips a cube from left to right (making + an output cube that looks like the mirror-image of the input cube). + Make sure your output '(TO)' filename is different than your input + '(FROM)' filename! + +After running the **mirror** application, open both the input cube +(intro2isis.cub) and output cube in **qview** to see the results! + diff --git a/docs/getting-started/using-isis-first-steps/isis-faq.md b/docs/getting-started/using-isis-first-steps/isis-faq.md new file mode 100644 index 0000000..e9e82e9 --- /dev/null +++ b/docs/getting-started/using-isis-first-steps/isis-faq.md @@ -0,0 +1,90 @@ +#ISIS FAQ + +??? question "How do I install ISIS?" + + There are two main ways of installing ISIS: + + __As a user__: ISIS releases are distributed using the Anaconda package manager. Through the package manager, you can download precompiled versions of ISIS including older versions. See [Installation][8] for installing via Anaconda. + + + __As a developer__: Anaconda is also used to maintain ISIS dependencies, so we generally advise developers to use Anaconda environments and provided environment files to build ISIS. See [Developing ISIS3 with cmake][9]. + + [8]: ../../how-to-guides/environment-setup-and-maintenance/installing-isis-via-anaconda.md + [9]: ../../how-to-guides/isis-developer-guides/developing-isis3-with-cmake.md + + +??? question "How do I install a specific version of ISIS/update my current copy of ISIS?" + + During the installation process, you can use Anaconda’s syntax for specifying version numbers. + + To update your version of ISIS, you simply run `conda update -c usgs-astrogeology isis3=`. + + ISIS release candidates are tagged with “RC”. Installing/updating RC’s would require you to explicitly mention the RC label with `-c usgs-astrogeology/label/RC `. + + Examples: + `conda install -c usgs-astrogeology isis`, install the latest version of ISIS + `conda update -c usgs-astrogeology isis`, update to the latest version of ISIS + `conda update -c usgs-astrogeology isis=3.9.1`, update to ISIS version 3.9.1 + `conda install -c usgs-astrogeology isis=3.9.1`, install ISIS version 3.9.1 + `conda install -c usgs-astrogeology/label/RC isis=3.9.1`, install release candidate for ISIS version 3.9.1 + + Full list of supported versions including release candidates: [https://anaconda.org/usgs-astrogeology/isis3/files](https://anaconda.org/usgs-astrogeology/isis3/files) + + Info on maintaining your anaconda packages: [https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html) + +??? question "How do I keep two different versions of ISIS on my system and switch between them?" + + An example of when this functionality may be useful is to test out a release candidate (RC) version of the ISIS3 software (if you have questions about RC’s, see the [Release Schedule][1] info). The solution is to use multiple environments. Follow the steps for installing ISIS using a new environment with a different name (e.g. `isis3.9` vs `isis3.9_RC`). + + [1]: https://github.com/DOI-USGS/ISIS3/wiki/Release-Schedule + +??? question "I Installed ISIS but I get “: command not found” or similar error." + + If you successfully installed ISIS with Anaconda, but still get this error, it’s because the installation directory was not added to your PATH. It’s generally not recommended you manually set your PATH to your Anaconda environment and instead should ensure your environment is activated by running `conda activate `. + +??? question "How do I install ISIS on Windows?" + + We do not officially support ISIS on windows. It may be possible using the Linux subsystem ([How to Install Linux on Windows with WSL](https://learn.microsoft.com/en-us/windows/wsl/install), [ISIS and ASP on Windows 11 (WSL, take 3)](https://planetarygis.blogspot.com/2024/02/isis-and-asp-on-windows-11-wsl-take-3.html)). This approach isn’t tested and we strongly recommend ISIS users operate MacOS, Linux or a Linux VM on Windows machines. + +??? question "When trying to run an ISIS command, I get `Please set ISISROOT before running any Isis applications`" + + The environment variable `ISISROOT` needs to be set to the root of your installation directory. This is critical for using ISIS applications. Without this variable set correctly, ISIS applications cannot run. + + Run `isisVarInit.py`, located in the ISIS3 installation directory. This will make ISISROOT, ISIS3DATA, and ISIS3TESTDATA be set on environment activation. + + +??? question "Why is `spiceinit` failing?" + + Spiceinit attaches kernel information to ingested ISIS cubes for later use in commands that require camera models (campt, cam2map, etc.). See [ISIS3 spiceinit documentation][3] for more details on spiceinit. If spiceinit is erroring there are two likely causes: + + * Base data area is not installed (See [Full or Partial ISIS Data Download][4] from the ISIS readme) + * Mission-specific area is not installed (See [Mission Specific Data Downloads][5] from the ISIS readme) + + These errors can also be remedied by using the [SPICE Web Server][6] (web=true in command line or activating the web check box in GUI). __However__, some instruments require mission data to be present for calibration, which may not be supported by the SPICE Web Server exclusively, and some programs that are designed to run an image from ingestion through the mapping phase do not have an option to use the SPICE Web Service. For information specific to an instrument, see the documentation for radiometric calibration programs. + + If spiceinit fails with `**PROGRAMMER ERROR** No value or default value to translate for translation group [MissionName]`, this is typical behavior in `spiceinit` when `spiceinit` input was output from `pds2isis`. `pds2isis` generates a cube without instrument specific data. Instead use an ingestion app specific to the image’s instrument. See [Locating and Ingesting Image Data][7] for basic ingestion workflows in ISIS. + +??? question "Why is my mission calibration command (‘ctxcal’,’lronaccal’, etc.) producing cubes filled with zero data?" + + The default setting for ‘RadiometricType’ on a lot of calibration commands is ‘IOF’ which stands for incidence solar flux. The calculation of this metric requires knowledge of the distance from the target body to the sun. Currently, the SPICE Web Server currently does not attach this information to the cube, so local version of the mission data are still necessary for this calculation. Using ‘RadiometricType=RADIANCE’ will not result in this error. To fix this error, download the base ISIS3 data and the mission specific data: + + - For base data installation see [Full or Partial ISIS Data Download][4] from the ISIS readme + - For mission-specific area installation see [Mission Specific Data Downloads][5] from the ISIS readme + +??? question "I updated my ISIS version and now my mission calibration command is throwing errors." + + Some ISIS software updates include mission specific command updates motivated by new information (updated kernels, format changes, etc.) from mission teams. When the software is updated the data area should also be updated, see [Mission Specific Data Downloads][5]. + + [3]: https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/spiceinit/spiceinit.html + [4]: https://github.com/DOI-USGS/ISIS3?tab=readme-ov-file#full-isis-data-download + [5]: https://github.com/DOI-USGS/ISIS3?tab=readme-ov-file#mission-specific-data-downloads + [6]: https://github.com/DOI-USGS/ISIS3?tab=readme-ov-file#isis-spice-web-service + [7]: ../../getting-started/using-isis-first-steps/locating-and-ingesting-image-data.md + +???+ abstract "Additional Helpful Docs" + + [Exhaustive list of ISIS commands](https://isis.astrogeology.usgs.gov/Application/index.html) + + [Glossary of terminology used in ISIS documentation](../../concepts/glossary.md) + + [Dictionary explaining label terms for ISIS cubes](https://isis.astrogeology.usgs.gov/documents/LabelDictionary/LabelDictionary.html) \ No newline at end of file diff --git a/docs/how-to-guides/software-management/public-release-process.md b/docs/how-to-guides/software-management/public-release-process.md index af0e2be..215d8e2 100644 --- a/docs/how-to-guides/software-management/public-release-process.md +++ b/docs/how-to-guides/software-management/public-release-process.md @@ -194,7 +194,7 @@ After the conda build completes, it should be tested by uploading it to your per * Use the command ```anaconda upload -u ``` to upload the conda build to your personal anaconda channel. -* Follow the standard [installation instructions](https://github.com/DOI-USGS/ISIS3#isis3-installation-with-conda) to install this package locally for testing, but at the installation step, instead of running `conda install -c usgs-astrogeology isis`, run `conda install -c -c usgs-astrogeology isis` +* Follow the standard [installation instructions](../../how-to-guides/environment-setup-and-maintenance/installing-isis-via-anaconda.md#isis-installation-with-conda) to install this package locally for testing, but at the installation step, instead of running `conda install -c usgs-astrogeology isis`, run `conda install -c -c usgs-astrogeology isis` ???+ Note "Troubleshooting conda install" If you are having trouble installing ISIS from your personal account, try specifying the version, e.g., `conda install -c -c usgs-astrogeology isis=8.1.0_RC1` @@ -253,7 +253,7 @@ This step covers creating the builds and the installation environments of ISIS f ### Part B: Installing ISIS -* Follow the standard [installation instructions](https://github.com/DOI-USGS/ISIS3#isis3-installation-with-conda) to install the latest version of ISIS into a new environment. +* Follow the standard [installation instructions](../../how-to-guides/environment-setup-and-maintenance/installing-isis-via-anaconda.md#isis-installation-with-conda) to install the latest version of ISIS into a new environment. * For a standard release, the environment should be named `isisX.Y.Z`. @@ -277,7 +277,7 @@ This step will update the ISIS documentation on our [website](https://isis.astro ### Part A: Build the documentation -* Perform a local build (not a conda build) using the instructions available [here](https://github.com/DOI-USGS/ISIS3/wiki/Developing-ISIS3-with-cmake) +* Perform a local build (not a conda build) using the instructions for [developing ISIS with cmake](../../how-to-guides/isis-developer-guides/developing-isis3-with-cmake.md). * setisis to the build directory from [Step 3 Part A](#part-a-setup-repository). diff --git a/mkdocs.yml b/mkdocs.yml index 01c18ae..fed613c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,6 +15,7 @@ theme: - navigation.indexes - search.suggest - search.suggest + - content.code.copy palette: # Palette toggle for dark mode @@ -41,9 +42,11 @@ nav: - CSM Stack: - Generating an ISD, creating a CSM model, and converting coordinates: getting-started/csm-stack/image-to-ground-tutorial.ipynb - "Using ISIS: First Steps": + - Introduction to ISIS: getting-started/using-isis-first-steps/introduction-to-isis.md - Locating and Ingesting Image Data: getting-started/using-isis-first-steps/locating-and-ingesting-image-data.md - Adding SPICE: getting-started/using-isis-first-steps/adding-spice.md - Exporting ISIS Data: getting-started/using-isis-first-steps/exporting-isis-data.md + - ISIS FAQ: getting-started/using-isis-first-steps/isis-faq.md - How-To Guides: - Home: how-to-guides/index.md - Environment Setup and Maintenance: @@ -57,7 +60,7 @@ nav: - Map Projecting Images: how-to-guides/image-processing/map-projecting-images.md - Removing Striping Noise: how-to-guides/image-processing/removing-striping-noise.md - General Utility with FX: how-to-guides/image-processing/general-utility-with-fx.md - - Software Management: + - Software Management: - ISIS Public Release Process: how-to-guides/software-management/public-release-process.md - Software Support: how-to-guides/software-management/software-support.md - Guidelines for Reporting Issues: how-to-guides/software-management/guidelines-for-reporting-issues.md @@ -74,6 +77,12 @@ nav: - Camera Geometry and Projections: - Camera Geometry: concepts/camera-geometry-and-projections/camera-geometry.md - Learning About Map Projections: concepts/camera-geometry-and-projections/learning-about-map-projections.md + - ISIS Fundamentals: + - ISIS Cube Format: concepts/isis-fundamentals/cube-format.md + - ISIS Attached Spice Format: concepts/isis-fundamentals/spice-format.md + - ISIS Kernel Load Selection: concepts/isis-fundamentals/kernel-selection.md + - Bit Types: concepts/isis-fundamentals/bit-types.md + - Special Pixels: concepts/isis-fundamentals/special-pixels.md - SPICE: - SPICE Overview: concepts/spice/spice-overview.md - SPICE Position Functions and Requirements: concepts/spice/spice-position-functions-and-requirements.md @@ -97,6 +106,7 @@ extra_css: extra_javascript: - https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/js/uswds-init.min.js + - https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/js/uswds.min.js plugins: - search