and basic math (point to point line, slope-intercept line, algebra, and trig) I figured how to calculate the 3D umbra cone. The only data I used is the Simon1994PlanetaryPositions built into Cesium itself, and Sun/Moon radius.
Pleasantly surprised to find that the cone to globe intercepts matched that found here
The 3D umbra cone is educational. It does not reach that far, and a combination of factors have to line up:
-The closer the Earth is to the Moon the better (deeper into the cone the Earth is.)
-The further the Moon is from the Sun the better (the more elongated the cone becomes.)
Going to test a couple more total eclipse dates, then finish up making a penumbra cone.
OK, this is the last total eclipse 3D umbra video before I add the penumbra cone. This one zips right down the middle of North America, and appears to be a good sized intersection.
Thanks! All of the geometry is done with scene.primitives (same with compass pointers), an umbra cone is created whenever the day changes. Finding what I call āpoint umbraā (tip of the cone) didnāt take long, just used 2D cross-section math to find the intersection of 2 lines:
-line top of Sun to top of Moon
-line bottom of Sun to bottom of Moon
I used the Moon center for the cone base (and Moon radius for cone radius), and point umbra to moon center is the length of the cone. Every frame would update cone position and orientation. I donāt update the cone length every frame but the change over the course of a few hours would be very minuscule anyhow. The cone length is set at the start of that day. (currently as you change days youāll end up with a few discarded cones here and there.)
The astronomical data that Cesium uses is very good. Apparently itās from 1994, but using that data it seems to be dead on accurate for the 2024 Apr 08 total eclipse 30 years later! Thatās the only data that I use for all primitives shown.
Penumbra is a slightly more difficult to calculate, but still fairly easy. āPoint Penumbraā, or the tip of the cone, is shared between 2 cones, facing 180 degrees from each-other. I calculate point penumbra and the cone angle for one, which will be the same cone angle for the other. I then use this cone angle to determine what base radius I need for whichever length I choose (probably no more than to Earthās center.) Iāll try to show the penumbra cone with a low alpha so you can easily see the umbra cone within it.
After that Iāll do the same for Earthās shadow onto the Moon. Iāll try to put it all into a function where you just input Sun pos/radius and āshadow creating objectā pos/radius and it returns 2 shadow cones emanating from that object.
Alright, I got both umbra and penumbra cones all in one on this video
I must say, the 2024 Apr 08 Eclipse is definitely the North American Eclipse! The only part of North America not in the penumbra is, well, most of Alaska.
Is there a way to not show the bottom texture of cylinder/cone primitives when seen from through their sides? Thatās the reason why I put the camera within the penumbra cone for most of the video, so I can see the Earth surface texture under it.
Now off to making umbra/penumbra cones for Earth onto the Moon. This should be easy, using the same code, different parameters.
EDIT: well Iām done with umbra/penumbra cones for Earth onto the Moon. And wow is it easy to get the entire moon totally eclipsed due to the huge size of the umbra cone. However due to visibility between the Moon model and cylinder/cone primitives Iām having trouble making a good video on the phenomenon. I have all cylinders set to transparent, but they still hide the moon even if you put the camera inside the cone primitive! Perhaps I could make a model to supersede the Moon model thatāll show up better.
I did just that, made a model that goes around the Cesium Moon model, same size/shape. Well its border shows up once inside the transparent primitives (shadow cones.) Itās not quite what Iād like, but I think itās enough to get a good sense of the dimensions of the cones in relation to the dimensions of the Moon. Iāve made the penumbra cone green, and umbra cone red. I also made the blue arrow point toward instead of away from Earth.
The movement is kind of weird because I move the camera relative to the Earth Fixed coordinate system, so much of the time Iām chasing the Moon as the Earth spins. Not only that, but the spin is at a 23.5 degree tilt from orbital planes making me move diagonally. However itās a piece of cake with a 3DMouse!
This upcoming lunar eclipse this week isnāt a total eclipse, in fact it isnāt that impressive at all as far as eclipses go, but I thought Iād share what I discovered using these tools.
The 3D views in Cesium is very educational for (Sun,Earth,Moon) astronomy:
-All 3 ellipsoids (Sun,Earth,Moon) are shown accurately (size, position).
-All 2 shadow cones (Umbra,Penumbra) are shown accurately (size, position).
Because of this I was able to determine many eclipse details.
On 2020 Jul 05 (BTW these times occur late Jul 04 for the United States)
03:00 UTC Moon enters Earthās penumbra cone
04:30 UTC Just over 1/3 the Moon (north part) is in penumbra cone (max for this eclipse)
05:45 UTC Moon leaves Earthās penumbra cone
-The southern portion of the eclipse: only a very small section of the Sun is blocked by the Earth
-The northern portion of the eclipse: only about 1/3 of the Sun is blocked by the Earth (not all that dark)
-As you walk south to north on the moon the amount blocked gradually rises from 0 to 1/3.
Using my plugin readout one can also quickly find other stats:
at 04:30 UTC
Florida: the Moon will be around 36deg above horizon
New York: the Moon will be around 24deg above horizon
So Cal: the Moon will be around 14deg above horizon
Seattle Wash: the Moon will be around 1.6deg above horizon (need to seek unobstructed high ground to view)
A recent news video showing 2D graphics of the event youtube.com/watch?v=YZIvB48N31I
2D graphics just arenāt sufficient. The 2D map shows some weird curves. In 3D itās just a simple, easy to understand cone to ellipsoid intersection. Also those 2D graphics canāt properly show the Moon only partially entering the penumbra cone.
Thatās really cool that youāre able to see a lot of things here with Cesium that just arenāt very intuitive or easy to see in all those educational animation videos. It would be pretty cool to see a little tutorial about how others can create these, or maybe an open source GitHub repo that others can build off of your code!
Thanks! The eclipse code I use is actually quite short, less than 100 lines. It might make a good sandcastle demo. Cesium already has Sun and Moon calculations built in, which is where I get all my astronomical data from. Perhaps have an option for the camera to rotate around the Earth for Solar eclipses, and the Moon for Lunar eclipses. I still havenāt figured out how to remove primitives yet, currently I just make new shadow cones (with a newly calculated length) when a certain time has passed, with the previous discarded cone just sort of hanging out where I last updated it. I should have some freetime soon where I can transfer it to a sandcastle (or other type of) project. Iāll be sure to post back here once I start making some progress on it.
Hereās a video going through 2020 in 5 minutes looking for close calls that may or not be eclipses
Kinda boring to watch, but somewhat educational learning how factors like the distance between the Earth and Moon can have on Eclipses.
I made some code adjustments after this to skip many days for when I do this for 2021, so the 2021 video will barely be over 2 minutes long.
Wow, time flies! The 2024 North American eclipse occurs tomorrow.2024 Apr 08. Penumbra covering basically the whole continent and umbra traveling from the tip of Baja California to Maine.
I came across this, as I am developing a nearly identical tool. Though, I have cut the umbral length short as I do not require visualizing the entire umbra. Sandcastle Link
For the tool I am developing, it is incredibly important that the ābottomā of the radius of the cylinder lines up exactly with the radius of the earth where the shadow lies. However, as you can see, my approximation of the radius is off by a few kilometers. I canāt tell from your video, but did you find out a way to get the earthās precise radius from the vantage point of the end of the umbra length (or the sun, it would be the same either way)? I also have concerns about my approximation of the sunās radius, how did you create a line from the bottom of the sun to the top of the moon?