1
0
mirror of https://gitlab.com/Anson-Projects/projects.git synced 2025-08-02 03:21:32 +00:00

Add alt text and meta descriptions to every document

This commit is contained in:
2024-11-24 20:16:35 +00:00
parent a5d831884a
commit f2c52e4b4b
8 changed files with 38 additions and 28 deletions

View File

@@ -1,8 +1,7 @@
---
title: "ISS Eclipse Determination"
description: |
Determining how much sunlight a body orbiting a planet is receiving.
Calculate sunlight exposure for orbiting spacecraft like the ISS. This Julia project demonstrates how to determine eclipse times, considering umbra, penumbra, and full sunlight. Visualizations and code included. Learn about orbital mechanics and mission design considerations.
date: 2021-05-01
date-modified: 2024-02-292
categories:
@@ -27,11 +26,11 @@ Determining the eclipses a satellite will encounter is a major driving factor wh
## What is an Eclipse
![Geometry of an Eclipse](geometry.svg)
![Geometry of an Eclipse](geometry.svg){fig-alt="A diagram of an eclipse. The sun is shown as a large yellow circle on the left. A smaller blue circle labeled "Body" is to the right of the sun. A spacecraft is shown above the body. The umbra and penumbra are labeled."}
The above image is a simple representation of what an eclipse is. First, you'll notice the Umbra is complete darkness, then the Penumbra, which is a shadow of varying darkness, and then the rest of the orbit is in full sunlight. For this example, I will be using the ISS, which has a very low orbit, so the Penumbra isn't much of a problem. However, you can tell by looking at the diagram that higher altitude orbits would spend more time in the Penumbra.
![Body Radius's and Position Vectors](vectors_radiuss.svg)
![Body Radius's and Position Vectors](vectors_radiuss.svg){fig-alt="A diagram expanding on the last figure, but with distances marked for the radii of the sun and body, and the distance between the body and spacecraft."}
Here is a more detailed view of the eclipse that will make it easier to explain what is going on. There are 2 Position vectors, and 2 radius that need to be known for simple eclipse determination. More advanced cases where the atmosphere of the body your orbiting can significantly affect the Umbra and Penumbra, and other bodies could also potentially block the Sun. However, we will keep it simple for this example since they have minimal effect on the ISSs orbit. <code style="color:#0b7285">Rsun</code> and <code style="color:#c92a2a">Rbody</code> are the radius of the Sun and Body (In this case Earth), respectively. <code style="color:#5f3dc4">r_sun_body</code> is a vector from the center of the Sun to the center of the target body. For this example I will only be using one vector, but for more rigorous eclipse determination it is important to calculate the ephemeris at least once a day since it does significantly change over the course of a year. The reason that I am ignoring it at the moment is because there is currently no good way to calculate [Ephemerides](https://ssd.jpl.nasa.gov/?ephemerides) in Julia but the package is being worked on so I may revisit this and do a more rigorous analysis in the future. <code style="color:#5c940d">r_body_sc</code> is a position vector from the center of the body being orbited, to the center of our spacecraft.
@@ -112,6 +111,8 @@ The `sunlight` function returns values from 0 to 1, 0 being complete darkness, 1
```{julia}
#| code-fold: true
#| fig-cap: ISS Sunlight
#| alt-text: A graph titled "ISS Sunlight Over a Day" showing the percentage of sunlight the ISS receives over a 24-hour period. The x-axis represents time in hours, and the y-axis represents sunlight percentage. The graph shows a period of near-total sunlight followed by a period of darkness, and the cycle repeats.
# Get fancy with the line color.
light_range = range(colorant"black", stop=colorant"orange", length=101);
light_colors = [light_range[unique(round(Int, 1 + s * 100))][1] for s in S];