I am currently working on a project using SnIa data and using Mathematica I have obtained the following points (in degrees) through the maximum likelihood process

point1 = {72.85 \pm 60.6242, 210.26 \pm 136.593};
point2 = {-25.17 \pm 10.23, 104.70 \pm 32.47 };
point3 = {25.17 \pm 10.22, 284.70 \pm 48.32};
point4 = {18 \pm 10, 309 \pm 23};
point5 = {-18 \pm 9, 129 \pm 23};
point6 = {-15.1 \pm 11.5, 309.4 \pm 18};

where \pm=$\pm$ and corresponds to the 1$\sigma$ error of the l and b. Mapping the best fit values of the data as follows:

GeoGraphics[{AbsolutePointSize@5, RGBColor[0.09, 0.35, 0.11], 
  Point[GeoPosition@point1], AbsolutePointSize@5, Purple, 
  Point[GeoPosition@point2], AbsolutePointSize@5, Purple, 
  Point[GeoPosition@point3], AbsolutePointSize@5, Red, 
  Point[GeoPosition@point4], AbsolutePointSize@5, Red, 
  Point[GeoPosition@point5], AbsolutePointSize@5, Blue, 
  Point[GeoPosition@point6]}, GeoRange -> {{-90, 90}, {0, 360}}, 
 GeoGridLinesStyle -> Directive[Black, Dashed], 
 GeoProjection -> "Mollweide", 
 GeoGridLines -> {Automatic, {0, 30, 60, 90, 120, 150, 180, 210, 240, 
    270, 300, 330, 360}}, GeoBackground -> White, Axes -> True, 
 ImagePadding -> 25, ImageSize -> 1000, 
 Ticks -> {ticksldeg, ticksbdeg}, Background -> White, 
 AxesStyle -> Black, TicksStyle -> 15]

I have obtained the following picture enter image description here So I want in the final Mollweide plot that I have uploaded, to include a circle or an ellipse (different color for each point) that corresponds to the errors of l and b, however I am not sure how to do that.

Thank you in advance

  • $\begingroup$ Do you want a circle in the final map, or a circle on the original {l, b} space? And do you want circles or ellipses, given that the errors of l and b are different? Note that the l coordinate of point5 is missing its error. $\endgroup$
    – jose
    Nov 21, 2019 at 22:19
  • $\begingroup$ Dear jose thank you very much for your quick response. I have edited the post accordingly, including the error of point5. I want in the final map a geometric shape (probably an ellipse) that shows the errors for each of the points that I have. $\endgroup$
    – Smaug
    Nov 22, 2019 at 14:08

1 Answer 1


I would try something like this:

point1 = {Around[72.85, 60.6242], Around[210.26, 136.593]};
point2 = {Around[-25.17, 10.23], Around[104.70, 32.47]};
point3 = {Around[25.17, 10.22], Around[284.70, 48.32]};
point4 = {Around[18, 10], Around[309, 23]};
point5 = {Around[-18, 9], Around[129, 23]};
point6 = {Around[-15.1, 11.5], Around[309.4, 18]};

The Mollweide projection maps 90 degrees to flat distance Sqrt[2], so define this scale factor:

scale = Sqrt[2]/90;

This function will create an ellipse (of that scale) on the map at the point {l, b}, where both l, b are expected to be Around objects:

ellipse[{l_, b_}] := Circle[GeoPosition[{l["Value"], b["Value"]}], {b["Uncertainty"], l["Uncertainty"]} scale]

This is the GeoGraphics call, where I have removed axes and ticks, that you have under control:

  RGBColor[0.09, 0.35, 0.11], ellipse[point1],
  Purple, ellipse[point2],
  Purple, ellipse[point3],
  Red, ellipse[point4],
  Red, ellipse[point5], 
  Blue, ellipse[point6]
 GeoRange -> {{-90, 90}, {0, 360}}, 
 GeoGridLinesStyle -> Directive[Black, Dashed], 
 GeoProjection -> "Mollweide",
 GeoGridLines -> Automatic, 
 GeoBackground -> None

enter image description here

That result corresponds to ellipses on the projected map, not ellipses on the original spheroid. Motivated by a further question from the OP, I give here an alternative way of doing this using GeoCircle, which is a geometric construction on the original spheroid. Unfortunately their is no built-in notion of geo ellipses, so I'll use geo circles whose radius is the average of the semiaxes of the ellipse. To emphasize and clarify the structure of the very large case that covers the North pole, I'll use GeoDisk instead of GeoCircle. Simply replace the definition of ellipse in the previous construction by

ellipse[{l_, b_}] := GeoDisk[GeoPosition[{l["Value"], b["Value"]}], Quantity[(b["Uncertainty"] + l["Uncertainty"])/2, "AngularDegrees"]]

Then the result is

enter image description here

  • $\begingroup$ Dear Jose thank you very much for this very nice solution. I have one more question. The ellipse of point1 lies outside the Mollweide plot. Do you know a way to make the ellipse go to -b values also? $\endgroup$
    – Smaug
    Nov 22, 2019 at 18:48
  • $\begingroup$ I extended my answer to try to cover your new question, assuming I interpreted it correctly. $\endgroup$
    – jose
    Nov 22, 2019 at 20:00
  • $\begingroup$ Dear Jose thank you very much. Indeed that was the solution I was looking for! :D $\endgroup$
    – Smaug
    Nov 22, 2019 at 20:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.