Introduction

Halley’s Comet, discovered by famous astronomer Edmond Halley, is a short-period comet that orbits the Sun and becomes visible from Earth roughly once in a lifetime (every 75-76 years). Its next appearance is predicted for 2061. Assume a space agency or astronomically-inclined individual would like to view Halley’s comet when it next flies by the earth. In order to get the best image, they need to know where on the earth’s surface the comet will be closest to as it flies past.
Using Wolfram’s built in AstronomicalData, we model Halley’s distance to earth in the project timeframe of its arrival by both day and minute to determine the exact time of its closest approach to Earth. Then, we will find Halley’s exact astronomical coordinates at that time and convert that to the corresponding earth coordinates perpendicularly below Halley—the closest direct distance.
Halley=AstronomicalData["Comet1PHalley"];

Finding the Time of Closest Approach

This section narrows down the closest hour of Halley’s Approach via modeling its distance from earth across a year (by days) and across the day (by hours).
DistanceTableDay=Table[QuantityMagnitude[AstronomicalData[Halley,{"Distance",DateObject[i]}]],{i,DateRange[{2060,7,28,0,0},{2061,7,28,23,59},"Day"]}];​​Show[%948,AxesLabel{RawBoxes[RowBox[{RowBox[{"Days"," ","from"," ","July"," ","28"}],","," ","2060"}]],HoldForm[Distance]},PlotLabelHoldForm[HalleyDistancefromEarthbyDay],LabelStyle{12,GrayLevel[0]}]​​
Out[]=
DistanceTableHour=Table[QuantityMagnitude[AstronomicalData[Halley,{"Distance",DateObject[i]}]],{i,DateRange[{2061,6,16,0,0},{2061,6,18,23,59},"Hour"]}];​​Show[%957,AxesLabel{RawBoxes[RowBox[{RowBox[{"Hours"," ","from"," ","June"," ","16"}],","," ","2061"}]],HoldForm[Distance]},PlotLabelNone]
Out[]=
ClosestTime=DateObject[{2061,6,17,11,0,0}]
Out[]=
Fri 17 Jun 2061 11:00:00GMT-4

Calculating the Halley’s Earth Coordinates

After finding the exact time of Halley’s closest approach, I calculate the Earth coordinates directly below Halley at that time using conversions from Right Ascension and Declination to latitude and longitude.
ra=AstronomicalData[Halley,{"RightAscension",ClosestTime}];​​raFormatted=QuantityMagnitude[Quantity[ra,"HoursOfRightAscension"]];​​decl=AstronomicalData[Halley,{"Declination",ClosestTime}];​​Print["Right Angle, Declination = ",{ra,decl}]​​​​gmst=QuantityMagnitude[SiderealTime[ClosestTime],"HoursOfRightAscension"];​​long=Mod[(gmst-QuantityMagnitude[Quantity[raFormatted,"HoursOfRightAscension"]]),360];​​​​If[long>180,long-=360];​​lat=QuantityMagnitude[Quantity[decl,"Degrees"]];​​coordinates={lat,long};​​Print["Coordinates = ",coordinates]
Right Angle, Declination = 
7.39
h
,
34.30
°

Coordinates = {34.30,-3.31146}
In[]:=
city=GeoNearest["City",coordinates];​​country=GeoNearest["Country",coordinates];​​Print["Location: ",city,country]​​GeoGraphics[{EdgeForm[Black],FaceForm[Green],Polygon[country],GeoMarker[city]}]
Location: 
Guercif

Morocco

Out[]=

Conclusion

In conclusion, my program found that Guercif, Morocco will be the best place to view Halley’s Comet when it returns in 2061 (determined by closest direct perpendicular distance). However, it is important to recognize the limitations, including the fact that it will be in the middle of the day in Morocco during Halley’s transit (view the below daytime hemisphere graph where hour 11 is highlighted in yellow and shows that Morocco will be in daytime), which may make comet-viewing more difficult. However, my program is effective at determining the exact time and closest city for Halley’s Transit, which can similarly be effectively applied to any other comets, asteroids, or transiting objects.
In[]:=
Manipulate[Rasterize@GeoGraphics[{If[hour==11,{Yellow,DayHemisphere[DateObject[{2061,6,17,hour,0,0}]]},DayHemisphere[DateObject[{2061,6,17,hour,0,0}]]]}],{hour,0,23,1}]
Out[]=
​
hour

CITE THIS NOTEBOOK

Modeling optimal observation points for Halley's comet via a geographic approach​
by Julia Gao​
Wolfram Community, STAFF PICKS, June 30, 2025
​https://community.wolfram.com/groups/-/m/t/3488255