Sunday, 26 January 2014

constellations - Which is really larger, Big Dipper or Small Dipper, in 3D

This obviously depends on which stars you choose, but in general Ursa Major is likely to win by a factor of about five(ish), since it occupies a much larger chunk of the sky (1280 square degrees) than Ursa Minor (256 square degrees). At a fixed magnitude, and therefore at a fixed visibility radius for each intrinsic luminosity, the volume will be (very roughly) proportional to the area of each constellation on the celestial sphere. (There are subtleties, such as these, and this only rigorously holds when there are many stars, but it is a good rule of thumb.)



The volumes themselves can quite easily be calculated in Mathematica using the curated data. There is one easy way, which selects what Wolfram Research thinks are the 'bright stars' in each constellation. If you do that, you get



$$mathrm{Vol}(mathrm{UMa})=9.20133times 10^{20}mathrm{AU}^3,
mathrm{Vol}(mathrm{UMi})=1.7105times 10^{20}mathrm{AU}^3$$



which is the volume of the convex hull of the stars shown here:



Mathematica graphics



If you have Mathematica (v10+ only, I think) and you want to tinker with the code, here it goes:



RegionMeasure[
ConvexHullMesh[
StarData[
ConstellationData[Entity["Constellation", #],
EntityProperty["Constellation", "BrightStars"]],
"HelioCoordinates"]]
] & /@ {"UrsaMajor", "UrsaMinor"}



What one should really do is set a threshold magnitude and only count stars brighter than this, and then see the dependence of the volumes on the magnitude threshold. If you do this, you get pretty similar results:



Mathematica graphics



That is, Ursa Major has a consistently higher volume at all naked-eye magnitude thresholds.



For the curious, here's the code.



nakedEyeStarProperties = 
StarData[#, {"Name", "Constellation", "ApparentMagnitude",
"HelioCoordinates", "RightAscension", "Declination"}
] & /@ StarData[EntityClass["Star", "NakedEyeStar"]]
constellationVolume[constellation_, magnitude_] :=
Block[{selectedStars},
selectedStars =
Select[nakedEyeStarProperties,
And[#[[2, 2]] == constellation, #[[3]] < magnitude] &];
RegionMeasure[ConvexHullMesh[selectedStars[[All, 4]]]]
]
ListLogPlot[
Table[
{{m, constellationVolume["UrsaMajor", m]}, {m,
constellationVolume["UrsaMinor", m]}}
, {m, 3, 6.5, 0.1}][Transpose]
, AxesLabel -> {"magnitude threshold",
"constellation volume/!(*SuperscriptBox[(AU), (3)])"}
, PlotLegends -> {"Ursa Major", "Ursa Minor"}
]

No comments:

Post a Comment