diff --git a/docs/anise/tutorials/Tutorial 05 - Using frame kernels and text planetary kernels.ipynb b/docs/anise/tutorials/Tutorial 05 - Using frame kernels and text planetary kernels.ipynb index c1d3a8b..1a7a6f4 100644 --- a/docs/anise/tutorials/Tutorial 05 - Using frame kernels and text planetary kernels.ipynb +++ b/docs/anise/tutorials/Tutorial 05 - Using frame kernels and text planetary kernels.ipynb @@ -10,7 +10,8 @@ "ANISE is a modern rewrite of NAIF SPICE, written in Rust and providing interfaces to other languages including Python.\n", "\n", "## Goal\n", - "By the end of this tutorial, you should be able to know how to use your custom frame kernels (FK) and text planetary constant kernels (TPC) in ANISE.\n", + "\n", + "By the end of this tutorial, you will know how to use your custom frame kernels (FK) and text planetary constant kernels (TPC) in ANISE.\n", "\n", "Let's start by installing ANISE: `pip install anise`" ] @@ -26,13 +27,13 @@ "\n", "This approach allows ANISE to parse through the FK and TPC equivalents significantly faster than SPICE, while storing the same information.\n", "\n", - "However, this also means that ANISE cannot load the text files directly. Instead, these must be converted into the ANISE format, respectively PCA and EPA for \"Planetary Constants ANISE\" kernel and \"Euler Parameter ANISE\" kernel. Euler parameters, also known as quaternion parameters, offer a compact and non-redundant representation of orientations in three dimensions, differing from quaternions in their normalization constraint and being slightly more robust to numerical errors in certain computational scenarios.\n", + "However, this also means that ANISE cannot load the text files directly. Instead, these must be converted into the ANISE format, respectively PCA and EPA for \"Planetary Constants ANISE\" kernel and \"Euler Parameter ANISE\" kernel. Euler parameters (also known as quaternion parameters) offer a compact and non-redundant representation of orientations in three dimensions. They differ from quaternions in their normalization constraint and are slightly more robust to numerical errors in some computational scenarios.\n", "\n", - "For details about the data set structure, refer to the API documentation: [`DataSet`](https://docs.rs/anise/latest/anise/structure/dataset/struct.DataSet.html). The `EulerParameterDataSet` and the `PlanetaryDataSet` are concrete implementation of this `DataSet` structure.\n", + "For details about the data set structure, refer to the API documentation: [`DataSet`](https://docs.rs/anise/latest/anise/structure/dataset/struct.DataSet.html). The `EulerParameterDataSet` and the `PlanetaryDataSet` are concrete implementations of this `DataSet` structure.\n", "\n", "### Version compatibility\n", "\n", - "ANISE guarantees to _not_ change the structure of these kernels in between patch versions (e.g. version `0.3.0` and version `0.3.99` are garanteed to have the compatible kernels). However, until version `1.0.0`, the structure _may_ change and if so, the updated version of the default PCA and EPA files will be added to the Nyx Space cloud.\n", + "ANISE guarantees not to change the structure of these kernels between patch versions (e.g., version `0.3.0` and version `0.3.99` are guaranteed to have compatible kernels). However, until version `1.0.0`, the structure _may_ change and if so, the updated version of the default PCA and EPA files will be added to the Nyx Space cloud.\n", "\n", "Since version `0.1.0`, the structure of the kernels has _not_ changed. However, the ANISE version is encoded at the start of each kernel. This is only used if the data set cannot be properly decoded to inform the user of the expected ANISE version and the one that they're trying to load. In other words, although there is a version `0.3` of the PCK08 and PCK11 kernels, the files used in version `0.1.0` are still compatible." ] @@ -44,7 +45,7 @@ "source": [ "## Planetary Constant ANISE kernels\n", "\n", - "Planetary Constant ANISE (PCA) kernels (or \"data set\") include a look up table for random access via a name or an ID, metadata, and more important the actual planetary data itself. This data include gravitational parameters, shape of the triaxial ellipsoid, phase angle polynominals for the prime meridian, pole right ascension and declination, and more. You'll find all of the specifications in the API documentation: [`PlanetaryData`](https://docs.rs/anise/latest/anise/structure/planetocentric/struct.PlanetaryData.html).\n", + "Planetary Constant ANISE (PCA) kernels (or a \"data set\") include a lookup table for random access via a name or an ID, metadata, and, more importantly, the actual planetary data itself. This data includes gravitational parameters, the shape of the triaxial ellipsoid, phase angle polynomials for the prime meridian, pole right ascension and declination, and more. You'll find all of the specifications in the API documentation: [`PlanetaryData`](https://docs.rs/anise/latest/anise/structure/planetocentric/struct.PlanetaryData.html).\n", "\n", "In the previous tutorials, we focused on fetching the frame information from the Almanac. This operation reads the PCA to return a copy of this information. This is why a PCA is provided in the `latest.dhall` configuration file for an Almanac.\n", "\n", @@ -175,7 +176,7 @@ "id": "4524157c-6d4d-4acb-93d0-ed0c02fcc883", "metadata": {}, "source": [ - "Since we don't have anything loaded other than these planetary constants, we can't do a whole load, but we can query the Almanac for the shape and gravitational data by using `frame_info`." + "Since we don't have anything loaded other than these planetary constants, we can't do a whole lot, but we can query the Almanac for the shape and gravitational data by using `frame_info`." ] }, { @@ -252,6 +253,8 @@ "\n", "Until [#175](https://github.com/nyx-space/anise/issues/175), rotation data is _not_ exposed to Python. \n", "\n", + "### How to build EPA files\n", + "\n", "However, it's possible to convert an FK file into the EPA file using the following function." ] }, @@ -299,10 +302,10 @@ "\n", "Here are the general steps:\n", "\n", - "1. Load the latest Almanac, and check (by printing it) that it includes both EPA and PCA data. Else, load the moon_fk.epa file from the Nyx Space Cloud using a MetaFile with the URL .\n", + "1. Load the latest Almanac, and check (by printing it) that it includes both EPA and PCA data. Else, load the `moon_fk.epa` file from the Nyx Space Cloud using a `MetaFile` with the URL .\n", "2. Define a time series over a year with a granularity of 12 hours. This crater is on the South Pole of the Moon, and its visibility is often below the horizon of an object as far north as Paris.\n", - "3. For each epoch, define Paris as an `Orbit` instance from its longitude and latitde (recall that the constants include the mean Earth angular rotation rate), in the IAU_EARTH frame. Also build the crater in the IAU_MOON frame.\n", - "4. Finally, call the AER function of the Almanac with each epoch to compute the AER data. Plot it!" + "3. For each epoch, define Paris as an `Orbit` instance from its longitude and latitude (recall that the constants include the mean Earth angular rotation rate), in the IAU_EARTH frame. Also, build the crater in the IAU_MOON frame.\n", + "4. Finally, call the `AER` function of the Almanac with each epoch to compute the AER data. Plot it!" ] }, { diff --git a/mkdocs.yml b/mkdocs.yml index 0bb0092..7b760b5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -96,6 +96,7 @@ nav: - Working with Orbit class: anise/tutorials/Tutorial 03 - Defining and working with the Orbit structure.ipynb - Azimuth, Elevation, Range (AER): anise/tutorials/Tutorial 04 - Computing Azimuth Elevation and Range data.ipynb - Planetary constant kernels (PCK): anise/tutorials/Tutorial 05 - Using frame kernels and text planetary kernels.ipynb + - Custom Plantary and Euler Parameter (Quaternion) Kernels (PCK & EPA): anise/tutorials/Tutorial 05 - Using frame kernels and text planetary kernels.ipynb - Sun Probe Earth angle (SPE): anise/tutorials/Tutorial 06 - Sun probe Earth angle.ipynb - Explanation: - Explanation index: anise/explanation/index.md