Cool. It is neat to compare how accessible eclipses are now versus what I imagine things were like a thousand years ago. I guess they didn’t even have a global map.
Even the partial view is very far from Peru!
GeoDistance[
SolarEclipse[DateObject[{2015, 3, 20}], "PartialPhasePolygon",
EclipseType -> "Total"], Entity["Country", "Peru"]]
Quantity[3627.84, "Kilometers"]
And you can highlight the countries using GeoEntities:
With[{total =
SolarEclipse[DateObject[{2015, 3, 20}], "TotalPhasePolygon",
EclipseType -> "Total"],
partial =
SolarEclipse[DateObject[{2015, 3, 20}], "PartialPhasePolygon",
EclipseType -> "Total"]},
GeoGraphics[{GeoStyling[None], Opacity[.7], Red, total, Opacity[.3],
partial, Black, Opacity[.75],
Polygon /@ GeoEntities[total, "Country"], Green, Opacity[.25],
EdgeForm[{Black, Opacity[.1], Thin}],
Polygon /@ GeoEntities[partial, "Country"]},
GeoProjection -> "Equirectangular", GeoRange -> All]]
Francisco, do not despair, you will get a partial one in the next decade 2010 - 2020 !
dataT = SolarEclipse[{DateObject[{2020, 1, 1, 0, 0}],
DateObject[{2030, 1, 1, 0, 0}], All}, "TotalPhasePolygon", EclipseType -> "Total"];
dataP = SolarEclipse[{DateObject[{2020, 1, 1, 0, 0}],
DateObject[{2030, 1, 1, 0, 0}], All}, "PartialPhasePolygon", EclipseType -> "Total"];
GeoGraphics[{GeoStyling[None], Red, Opacity[.7], dataT, Orange,
Opacity[.3], dataP, Green, Opacity[.5], Polygon[Entity["Country", "Peru"]]},
GeoProjection -> "Equirectangular", ImageSize -> 800]
It would be most impressive if this could be seen on the 3D Sphere!
Hi Matic,
Please share the 3D Sphere
!
Lou
3D Sphere is easy. Once you have the image, rotate it:
Then run this code:
RevolutionPlot3D[{Sin[t], Cos[t]}, {t, 0, Pi}, Boxed -> False,
Axes -> False, Mesh -> None, Lighting -> "Neutral",
PlotStyle -> {Specularity[White, 10], Texture[i]},
SphericalRegion -> True, PlotPoints -> 60, ViewAngle -> 0.3]

So now when the eclipse is over and neither Peru or US got a glimpse, here is a photo for you folks from Ukraine I captured with a simple camera:
From Ukraine: photo and map of the solar eclipse Mar 20, 2015
We can use nice new in WL10.1 function TimelinePlot function to show when and in what countries the total solar eclipse will be visible in the nex five years:
inter = {DateObject[{2015, 1, 1}], DateObject[{2020, 1, 1}], All};
times = SolarEclipse[inter, "MaximumEclipseDate", EclipseType -> "Total"];
polys = SolarEclipse[inter, "TotalPhasePolygon", EclipseType -> "Total"];
eclcou = GeoEntities[#, "Country"] & /@ polys;
TimelinePlot[Association[Thread[Column /@ eclcou -> times]],
DateTicksFormat -> {"Day", " ", "MonthNameShort", " ", "YearShort"},
Ticks -> {times, times}, Background -> GrayLevel[.9], BaseStyle -> 13, PlotTheme -> "Web"]
Here is an improved version of timeline showing the map and territories of the eclipses too. This image shows spectacular powers of computational infographics. We see right away that a spectacular total solar eclipse will span US from coast to coast on August 21, 2017 (se a related discussion below). We also see that Argentina and Chile will get lucky getting the eclipse twice in a row. Most subtly and curiously, the recent solar eclipse is unique in the sense that it covers almost completely two territories: Faroe Islands and Svalbard. This means any inhabitant of these territories can see the total eclipse from any geo-location, cloudiness permitting. Usually it is quite the opposite, the observational area of a total eclipse is much smaller than the territory area it spans and most of the inhabitants would have to travel to observe their total eclipse (fortunately no visas needed).
Module[{
times, polys, eclcou,
inter = {DateObject[{2015, 1, 1}], DateObject[{2021, 1, 1}], All}},
times =
SolarEclipse[inter, "MaximumEclipseDate", EclipseType -> "Total"];
polys =
SolarEclipse[inter, "TotalPhasePolygon", EclipseType -> "Total"];
eclcou = GeoEntities[#, "Country"] & /@ polys;
Column[{
TimelinePlot[Association[Thread[Column /@ eclcou -> times]],
DateTicksFormat -> {"Day", ".", "MonthNameShort", ".",
"YearShort"},
Ticks -> {times}, Background -> GrayLevel[.9],
PlotTheme -> "Web", AspectRatio -> 1/3],
GeoGraphics[{
GeoStyling[None],
Opacity[.7], Red, polys,
Green, Opacity[.25], EdgeForm[{Black, Opacity[.2]}],
Polygon /@ GeoEntities[polys, "Country"]},
GeoProjection -> "Equirectangular", GeoRange -> All]
}, Spacings -> 0]
]
– you have earned Featured Contributor Badge ![]()
Your exceptional post has been selected for our editorial column Staff Picks http://wolfr.am/StaffPicks and Your Profile is now distinguished by a Featured Contributor Badge and is displayed on the Featured Contributor Board. Thank you!




