diff --git a/include/schaapcommon/math/drawgaussian.h b/include/schaapcommon/math/drawgaussian.h
index 8ce6d45c2dcc27b2ca9988e7469f50b2b3153313..601bcac7322f52a24f6b4debc8a421c00130fd42 100644
--- a/include/schaapcommon/math/drawgaussian.h
+++ b/include/schaapcommon/math/drawgaussian.h
@@ -11,11 +11,12 @@ namespace schaapcommon::math {
  * Draw a two-dimensional Gaussian onto an lm-space image.
  */
 void DrawGaussianToLm(float* image_data, size_t image_width,
-                      size_t image_height, long double ra, long double dec,
-                      long double pixel_scale_l, long double pixel_scale_m,
-                      long double l_shift, long double m_shift,
-                      long double position_ra, long double position_dec,
-                      const Ellipse& ellipse, long double integrated_flux);
+                      size_t image_height, long double phase_centre_ra,
+                      long double phase_centre_dec, long double pixel_scale_l,
+                      long double pixel_scale_m, long double l_shift,
+                      long double m_shift, long double source_ra,
+                      long double source_dec, const Ellipse& ellipse,
+                      long double integrated_flux);
 
 }  // namespace schaapcommon::math
 
diff --git a/src/math/drawgaussian.cc b/src/math/drawgaussian.cc
index 345d6a707d6516d2acf7c0843592cfdd84b6d609..1f425af411e9d03d4554041eddbc9a0b06384c53 100644
--- a/src/math/drawgaussian.cc
+++ b/src/math/drawgaussian.cc
@@ -17,11 +17,12 @@ inline long double Gaussian(long double x, long double sigma) {
 namespace schaapcommon::math {
 
 void DrawGaussianToLm(float* image_data, size_t image_width,
-                      size_t image_height, long double ra, long double dec,
-                      long double pixel_scale_l, long double pixel_scale_m,
-                      long double l_shift, long double m_shift,
-                      long double position_ra, long double position_dec,
-                      const Ellipse& ellipse, long double integrated_flux) {
+                      size_t image_height, long double phase_centre_ra,
+                      long double phase_centre_dec, long double pixel_scale_l,
+                      long double pixel_scale_m, long double l_shift,
+                      long double m_shift, long double source_ra,
+                      long double source_dec, const Ellipse& ellipse,
+                      long double integrated_flux) {
   // Using the FWHM formula for a Gaussian:
   const long double fwhm_constant = 2.0L * std::sqrt(2.0L * M_LN2);
   const long double sigma_major_axis = ellipse.major / fwhm_constant;
@@ -51,8 +52,8 @@ void DrawGaussianToLm(float* image_data, size_t image_width,
   const int bounding_box_size = std::ceil(sigma_max * 20.0 / min_pixel_scale);
   long double source_l;
   long double source_m;
-  ImageCoordinates::RaDecToLM(position_ra, position_dec, ra, dec, source_l,
-                              source_m);
+  ImageCoordinates::RaDecToLM(source_ra, source_dec, phase_centre_ra,
+                              phase_centre_dec, source_l, source_m);
 
   // Calculate the bounding box
   int source_x;
diff --git a/src/math/test/CMakeLists.txt b/src/math/test/CMakeLists.txt
index 1fd519713d5a352f185c4239cdffc47d5dfbee66..6ba001d0ca561611568af9c7d5f91686a1c55f9d 100644
--- a/src/math/test/CMakeLists.txt
+++ b/src/math/test/CMakeLists.txt
@@ -3,4 +3,5 @@
 
 include(${SCHAAPCOMMON_SOURCE_DIR}/cmake/unittest.cmake)
 
-add_unittest(math runtests.cc tconvolution.cc tresampler.cc trestoreimage.cc)
+add_unittest(math runtests.cc tconvolution.cc tdrawgaussian.cc tresampler.cc
+             trestoreimage.cc)
diff --git a/src/math/test/tdrawgaussian.cc b/src/math/test/tdrawgaussian.cc
new file mode 100644
index 0000000000000000000000000000000000000000..eca51fad9a85b5002663a79357b44126983f4c89
--- /dev/null
+++ b/src/math/test/tdrawgaussian.cc
@@ -0,0 +1,46 @@
+#include <boost/test/unit_test.hpp>
+
+#include <aocommon/image.h>
+
+#include "drawgaussian.h"
+
+using schaapcommon::math::Ellipse;
+
+BOOST_AUTO_TEST_SUITE(draw_gaussian)
+
+BOOST_AUTO_TEST_CASE(to_lm) {
+  constexpr size_t kHeight = 200;
+  constexpr size_t kWidth = 500;
+  aocommon::Image image(kWidth, kHeight, 0.0f);
+  constexpr long double kRa = 20.0 * (M_PI / 180.0);   // 20 degrees
+  constexpr long double kDec = 60.0 * (M_PI / 180.0);  // 60 degrees
+  constexpr long double kPixelScaleL = 1.0 * (M_PI / 180.0 / 60.0);  // 1 amin
+  constexpr long double kPixelScaleM = 1.0 * (M_PI / 180.0 / 60.0);  // 1 amin
+  constexpr long double kLShift = 0.0;
+  constexpr long double kMShift = 0.0;
+  constexpr long double kSourceRa = kRa;
+  constexpr long double kSourceDec = kDec;
+  Ellipse ellipse;
+  ellipse.major = kPixelScaleL * 20.0;
+  ellipse.minor = kPixelScaleM * 5.0;
+  // Rotate Gaussian ten degrees to the east
+  ellipse.position_angle = 10.0 * (M_PI / 180.0);
+  constexpr long double kFlux = 150.0;
+
+  DrawGaussianToLm(image.Data(), kWidth, kHeight, kRa, kDec, kPixelScaleL,
+                   kPixelScaleM, kLShift, kMShift, kSourceRa, kSourceDec,
+                   ellipse, kFlux);
+
+  BOOST_CHECK_CLOSE_FRACTION(image.Sum(), kFlux, 1e-5);
+
+  constexpr size_t kCentralPixel = (kHeight / 2) * kWidth + kWidth / 2;
+  BOOST_CHECK_CLOSE_FRACTION(image[kCentralPixel], 1.32381356, 1e-5);
+
+  constexpr size_t kLeftOfCenterPixel = 90 * kWidth + 247;
+  BOOST_CHECK_CLOSE_FRACTION(image[kLeftOfCenterPixel], 0.0631099567, 1e-5);
+
+  constexpr size_t kRightOfCenterPixel = 90 * kWidth + 253;
+  BOOST_CHECK_CLOSE_FRACTION(image[kRightOfCenterPixel], 0.532994568, 1e-5);
+}
+
+BOOST_AUTO_TEST_SUITE_END()