Message Boards Message Boards


Mapping Total Solar Eclipse on March 20 2015

Posted 7 years ago
9 Replies
49 Total Likes

On March 20, a total solar eclipse will happen. Although unless you live in the north polar regions, you are unlikely to see much. You can map the areas of visibility using the Wolfram Language.

GeoGraphics[{GeoStyling[None], Opacity[.7], Red, 
  SolarEclipse[DateObject[{2015, 3, 20}], "TotalPhasePolygon", 
   EclipseType -> "Total"], Opacity[.3], 
  SolarEclipse[DateObject[{2015, 3, 20}], "PartialPhasePolygon", 
   EclipseType -> "Total"]}, GeoProjection -> "Equirectangular", 
 GeoRange -> All]

Eclipse on March 20 showing regions where totality can be seen in darker red, and partial eclipse in lighter red

People in Europe, the UK, North Africa, and Western Asia should see various degrees of partial eclipse. Unfortunately, those of us in North America won't be able to see any of the event.

9 Replies

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!

 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]]

total eclipse countries

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]

enter image description here

Posted 7 years ago

It would be most impressive if this could be seen on the 3D Sphere!

Posted 7 years ago

Hi Matic, Please share the 3D Sphere :) ! Lou

3D Sphere is easy. Once you have the image, rotate it:

enter image description here

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]

enter image description here

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"]

enter image description here

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).

enter image description here


   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;


   TimelinePlot[Association[Thread[Column /@ eclcou -> times]],
       DateTicksFormat -> {"Day", ".", "MonthNameShort", ".", 
       Ticks -> {times}, Background -> GrayLevel[.9], 
    PlotTheme -> "Web", AspectRatio -> 1/3],

     Opacity[.7], Red, polys,
     Green, Opacity[.25], EdgeForm[{Black, Opacity[.2]}], 
     Polygon /@ GeoEntities[polys, "Country"]},
    GeoProjection -> "Equirectangular", GeoRange -> All]

   }, Spacings -> 0]
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract