the Creative Commons Attribution 4.0 License.
the Creative Commons Attribution 4.0 License.
A novel framework for automatic scanning radar pointing calibration using the Sun
Paul Ockenfuß
Gregor Köcher
Matthias Bauer-Pfundstein
Stefan Kneifel
A high accuracy of antenna beam pointing is essential for weather and cloud radars in order to precisely locate clouds and precipitation. It is also a critical requirement for estimating the horizontal wind field or retrieving particles' vertical motions.
We present a general framework for radar pointing calibration using the Sun as a reference target. The workflow is structured into three steps: (i) measurement and analysis of individual Sun scans, (ii) estimation of scanner inaccuracies from a series of scans, and (iii) correction of these inaccuracies. Our approach is radar-agnostic and applicable to any instrument equipped with a two-axis pan-tilt scanner and a parabolic antenna. General recommendations for Sun scan implementation are given, and the full calibration process is demonstrated using a Mira-35 cloud radar. The method allows retrieval of a comprehensive set of parameters, including beamwidth in two orthogonal directions, pedestal tilt, axis misalignments, encoder offsets, gear backlash, and the receiver-scanner time offset. With this approach, absolute pointing accuracy better than 0.1° can be achieved, and relative changes as small as 0.01° can be detected. To facilitate automatic application, we provide the open-source Python library SunscanPy for radar pointing calibration. This toolset is especially valuable for stationary radars and radar networks, where it enables automatic monitoring of long-term pointing stability. Finally, we introduce a novel automatic pointing correction scheme based on inverse kinematics. Once the scanner inaccuracies are estimated, the required motor positions can be computed to compensate for the inaccuracies, without mechanical adjustments. Such functionality is particularly advantageous for mobile radars, research campaigns, or remote deployments, where frequent mechanical leveling is necessary but often difficult to perform.
- Article
(7986 KB) - Full-text XML
- BibTeX
- EndNote
Accurate antenna pointing is crucial for a wide range of radar applications. Applications that rely on precise georeferencing, such as scanning weather radars, are particularly sensitive, since even small pointing errors lead to spatial displacements of observed features. For example, a 1° change in pointing direction leads to 3.5 km displacement at a distance of 200 km. For vertically pointing radars, pointing accuracy is equally critical for the correct measurement of vertical velocities. Since vertical air motion and particle sedimentation speeds are typically an order of magnitude smaller than horizontal wind, even small pointing errors can lead to large biases. A simple calculation illustrates this: assuming a horizontal wind speed of 30 m s−1, as is common in the higher atmosphere (Holton and Hakim, 2013), a mispointing of 0.2° produces an apparent vertical velocity of ±10.5 cm s−1, depending on the wind direction. This is a non-negligible error, given the typical sedimentation velocity of ice around 30 to 50 cm s−1 (Houze, 2014). In principle, modern Doppler radars are capable of measuring velocities with a precision of less than 5 cm s−1 (METEK GmbH, 2013). Furthermore, precise pointing is also indispensable in advanced applications such as multi-frequency measurements, where two radars must probe the same volume simultaneously, which demands near-perfect beam alignment (Kneifel et al., 2016; Tridon and Battaglia, 2015).
To ensure accurate pointing, a variety of calibration methods have been developed. One straightforward approach is the use of hard targets at a known position or ground-clutter (e.g. Altube et al., 2016). While effective in principle, hard targets are not always available, probe only one specific scanner configuration, and ground-clutter-based methods may be compromised by precipitation or anomalous atmospheric propagation conditions (Altube et al., 2016). A widely adopted alternative is to use the Sun, which acts as a natural microwave source. The advantage of Sun-based calibration is that it requires minimal additional effort: operational radar measurements occasionally intersect the solar disk by chance, and these data can be used even without specific campaigns. For scanning research weather radars, dedicated solar scans are often performed as part of calibration routines. The benefits of solar calibration are now widely acknowledged (e.g. Holleman et al., 2022), and some radar manufacturers have integrated corresponding procedures into their operational software (e.g. Radiometer Physics GmbH (RPG), 2024).
A number of studies have investigated the use of the Sun for radar calibration, with different emphases on pointing accuracy and antenna characterization. Early work by Baars (1973) discussed cosmic sources such as the Sun for large antenna calibration. In addition to antenna pointing, other antenna parameters, such as aperture or antenna beam pattern, were derived from measurements on radio sources. Later, Mano and Altshuler (1981) discussed the Sun as a potential calibration target with a well-known position, focusing primarily on elevation biases. In a review of radar calibration methods, also Manz et al. (2000) highlight the Sun as an excellent source to calibrate position accuracy. Arnott et al. (2003) demonstrated that solar observations could also be used to estimate the azimuth orientation of a mobile radar system mounted on a truck. Similarly, Darlington et al. (2003) explored the potential of solar signals for calibrating operational weather radars in the United Kingdom. Their study emphasized the advantage of performing the calibration without disturbing the ongoing operational scan strategy. Due to the limited maximum elevation angle of their radar (4°), their analysis was restricted to azimuth biases. Further developments were made by Huuskonen and Holleman (2007) and later by Holleman et al. (2010), who refined the methodology for operational weather radars. In particular, they introduced corrections for atmospheric refraction, which is especially relevant for low-elevation measurements where the apparent solar position is significantly displaced. Muth et al. (2012) proposed a technique based on the analogy between radar and theodolite systems, using solar observations to quantify and correct pointing errors in both azimuth and elevation. Their evaluation of a single Sun scan is based on Huuskonen and Holleman (2007). More recently, Altube et al. (2015) demonstrated how the Sun can be used for online monitoring of the antenna alignment of an operationally scanning weather radar. In a subsequent study, Altube et al. (2016) then compared ground-clutter-based and Sun-based antenna pointing calibration methods and found the methods based on the Sun to be generally superior. Recently, Frech et al. (2019) assessed the antenna pointing accuracy in both azimuth and elevation for a polarimetric research radar based on dedicated solar box scans. In addition to pointing, the Sun has also been used to characterize the antenna beam pattern. Reimann and Hagen (2016) employed solar scans to measure the antenna beam shape and demonstrated good agreement with the expected response to a point source. While our work focuses on antenna pointing calibration, the beam pattern retrieval comes as a natural by-product of the same procedure.
Although these studies have shown in the past that the Sun provides an excellent target for antenna pointing calibration, two important deficiencies remain. First, there is no general, radar-agnostic framework to calibrate the pointing from Sun scans. While manufacturers provide proprietary tools, these are often tailored to specific radar systems and are not easily transferable. Yet, the underlying geometry is universal: virtually all weather and cloud radars operate on a two-axis pan-tilt mechanism, and once the solar data are recorded, the processing steps are conceptually identical across platforms. Second, existing calibration workflows typically assume that mechanical correction of the scanner is required once biases are identified. We argue that an alternative is possible: active, software-based correction of mispointing. By interpreting the radar scanner as a simple kinematic chain with two rotational joints, the problem is directly analogous to inverse kinematics in robotics. Inverse kinematics is the process of determining the joint positions of a kinematic chain, which correspond to a desired location and orientation of the chain end. Using inverse kinematics, the radar controller software can compensate for misalignments, instead of requiring mechanical adjustment of the system.
The objective of this publication is therefore twofold. First, we present a novel, generic framework for scanning radar pointing calibration, subdividing the process into three well-defined, consecutive steps. By combining multiple Sun scans, our method is able to derive the full set of scanner offsets and inaccuracies in both axes, including velocity-dependent dynamic biases. To make this methodology accessible to the broader community, we provide SunscanPy (Ockenfuß and Köcher, 2026a), a general and open-source Python package for radar antenna pointing calibration using solar observations. The software is designed to be radar-independent and provides a standardized way to derive scanner inaccuracies. Second, we demonstrate a method for software-based pointing correction, in which identified biases are incorporated into the radar controller, thereby avoiding the need for mechanical realignment.
The remainder of this publication is organized as follows. Section 2 describes the theoretical background of antenna pointing calibration using the Sun and introduces a mathematical nomenclature. Section 3 demonstrates the process using measurements of a cloud radar. Both sections contain three dedicated subsections, reflecting the three steps of the calibration method. The achievable pointing accuracy of the method is discussed in Sect. 4.2. Section 5 introduces the SunscanPy Python implementation. Section 6 summarizes the results and provides perspectives on possible areas of application.
The whole process of scanner calibration with the Sun can be divided into three distinct steps, as illustrated in Fig. 1. In step 1, we use the Sun as a source of microwave emission in the sky with a precisely defined trajectory. Probing this source with the radar antenna, we can record the position of the scanner axis encoders when looking at a defined position relative to the Sun, e.g. the center of the solar disk. Repeating step 1 over the course of multiple days and times, we obtain a collection of scanner positions with the corresponding beam locations in the sky. In step 2, we use this dataset to estimate unknown parameters that define the scanner system. In step 3, we apply the knowledge of these parameters when pointing to a target. We can either correct the scanner mechanically like illustrated in step 3a, or do a software-based correction like depicted by step 3b.
Figure 1Schematic illustration of the full pointing calibration procedure. Step 1: estimation of local mispointing from a single Sun scan. Step 2: estimation of scanner inaccuracies based on multiple Sun scans. Step 3: correction of scanner inaccuracies.
2.1 Scanner Inaccuracies
Pointing directions in the sky can be described by two spherical coordinates, where denotes the azimuth angle and is the elevation angle. We follow the common convention in radar science that 0° elevation corresponds to pointing horizontally. Scanning radars usually have a two-axis scanner mechanism, where one axis corresponds to the movement in azimuth direction and another axis on top of the first moves in elevation direction. We denote the position of those axes by γ and ω, respectively. Usually, it is assumed that a movement in γ directly corresponds to a movement in ϕ and similarly for ω and θ. However, this is only the case for a perfect scanning mechanism. In reality, axis positions are not perfectly equal to pointing directions, due to multiple system imperfections: axis encoders can have offsets, the axes are not perfectly orthogonal, or the whole system is tilted with respect to the celestial hemisphere. Therefore, a strict separation between axis positions (γ,ω) and celestial pointing (ϕ,θ) is necessary. We describe the mapping between axis positions and celestial pointing of the radar by a forward model M𝒫:
Finding M𝒫 is the main goal of the methods described here. M𝒫 depends on multiple parameters 𝒫, which describe the imperfections of the scanner alignment and mechanics. There are seven static parameters:
The individual static scanner parameters are illustrated in Fig. 2 and defined as follows:
-
α: pedestal tilt towards West or East
-
δ: pedestal tilt towards North or South
-
ϵ: ideally the radar beam should be perpendicular to the axis of the elevation rotation of the scanner. ϵ describes the offset from this goal.
-
β: gimbal tilt. Ideally the axis of the elevation and axis of the azimuth rotations of the scanner should be perpendicular. β describes the offset from this goal. The gimbal tilt β and the antenna tilt ϵ have the same effect if the scanner is pointed vertically or close to vertically. If the beam is pointing at the horizon or close to the horizon then the antenna tilt ϵ causes an azimuth offset but the effect of the gimbal tilt β vanishes.
-
γ0: offset between actual azimuth axis position and the value returned by the scanner motor encoder. This value is sometimes known as the “northangle”.
-
ω0: offset between actual elevation axis position and the value returned by the scanner motor encoder.
-
χ: if not pointing vertically, the weight of the antenna can cause elastic deformations, which cause the scanner structure to bend. This causes an elevation offset, which depends on the current elevation position. We model this effect as an elevation position offset of the form ωflex = χcos (ω). χ is usually negative.
Figure 2Inaccuracies of the scanner leading to beam pointing offsets, with the axes positioned at γ = 0° and ω = 90°. (a) View from the South. (b) View from the top. The sign convention of each parameter is indicated by green arrows, which point into the positive direction of movement. Positive α tilts the radar West, positive δ tilts the radar North. Positive γ tilts the dish clockwise, if viewed from the top. For γ = 0° and ω = 0°, the dish points to the North. For γ = 0°, positive ω tilts the elevation box clockwise, if viewed from the West.
We denote a perfectly accurate scanner as Mℐ, with . For such a perfect scanner, axis positions and celestial pointing are identical (at least, as long as ω ≤ 90°): γ=ϕ and ω=θ.
In addition to the static scanner parameters, there are also dynamic parameters. Dynamic means that their effect on the beam pointing depends on the velocity of the axes . We consider the following dynamic parameters:
-
bγ: backlash in the azimuth axis. For example, this can be caused by play in the gears of the azimuth axis. As a consequence, this creates a hysteresis in the system, where the beam is always lagging behind the position indicated by the scanner motors. The backlash only depends on the direction of movement. The effect of the backlash on the actual position of the azimuth axis can be modeled as
-
t0: time offset between the time of recording of the motor positions and the time of recording of the signal. It causes a lag between motor positions and beam, but in contrast to the lag caused by the backlash, the lag due to the time offset depends on the speed of motion. In the absence of acceleration of the motors, the actual positions can be calculated as and .
We assume that the effect of the dynamic parameters is the same, regardless of the scanner pointing position in the sky. Therefore, they can simply be modeled as offsets to the scanner coordinates:
2.2 Step 1: Estimate Local Mispointing
If the Sun were a perfect point source and the radar emitted an infinitely narrow beam, step 1 would not be necessary to get a pair of referenced scanner coordinates. In that idealized case, we could simply scan across the sky until the beam intersects the point-like Sun, record the corresponding scanner coordinates, and directly assign them to the absolute solar position.
In reality, the Sun appears as an extended, moving disk and the radar beam exhibits a finite width. Consequently, the measured signal represents a broadened response, and we must determine the apparent center of the Sun within the data. Similar to Huuskonen and Holleman (2007), we will do so by fitting a simulated response to all data points. In addition, we will also obtain information about the radar beam shape, scanner backlash and signal time offset. To achieve this, we perform multiple measurements in the region where the Sun is expected to be located. This procedure yields a set of N samples, each containing the measurement time, scanner coordinates and velocities, and recorded signal:
According to the measurement time ti, we compute the apparent solar position , accounting for the radar position and altitude.
If the scanner operated without inaccuracies, the corresponding celestial beam position at time ti would be given by the ideal mapping
However, with a single Sun scan it is not feasible to determine the full set of inaccuracy parameters 𝒫 of a general scanner model M𝒫, since the observations cover only a small portion of the sky. We therefore restrict the model to two parameters (Δγ, Δω), which capture the local mispointing of the system in the scanned region. In this approximation, the effective beam direction is
To estimate (Δγ,Δω), we simulate the expected signal strength as a function of beam and solar position, as well as several other parameters listed in Table 1. The optimal parameters are then obtained by minimizing the root-mean-squared deviation (RMSD) between measured and simulated signals:
With Δγ and Δω available, we can finally calculate a reference pair of scanner coordinates γr, ωr with a reference position in the sky ϕr, θr:
γr and ωr can be chosen arbitrarily from all samples (γi, ωi).
Table 1Overview of the optimized parameters in each step. The steps are illustrated in Fig. 1.
2.2.1 Sun Scan Signal Simulation
Given a beam and Sun position, the expected signal in the receiver is determined by the convolution of the antenna's receiving pattern with the Sun's emission pattern. By the reciprocity theorem of electromagnetics, the receiving and transmitting patterns of the antenna are identical. In the following, we therefore refer to both as the radar beamshape.
Huuskonen and Holleman (2007) assume that the convolved signal distribution follows a Gaussian function. This assumption is valid, if the beam opening angle is significantly broader than the Sun opening angle, but leads to inaccuracies for narrower beams. Therefore, we numerically simulate the expected signal based on the convolution of a discretized version of the sky and antenna patterns.
We assume that the Sun and beam positions differ only by a small angular offset ±ν.1 This allows us to approximate the celestial hemisphere as locally flat and to transform both positions into a Cartesian reference frame centered on the beam direction (illustrated in Fig. 3).
Figure 32D illustration of the definition of the beam centered coordinate frame (green). The radar beam pointing and antenna pattern are illustrated in blue, the Sun pointing vector and emission pattern are illustrated in yellow.
The beam-centered axes are defined as follows: the local bz axis points radially outward along the beam, the local bx axis lies orthogonal to bz and ez in the cross-elevation direction, and the local by axis completes the right-handed system.
The beamshape of a parabolic antenna can be expressed by a two-dimensional Airy pattern (Kraus, 1988). In the beam-centered system, this is described by Eq. (10), which contains the first-order Bessel function J1.
The coefficients in Eq. (10) are defined as
fx and fy are the beam full widths at half maximum (FWHM) in the x and y directions, respectively, r0.5 is the value where the main lobe has half the maximum value: G(r0.5) = . G0 is chosen such that the integral over G is one.
In a first approximation, the solar emission in the microwave region can be modeled as a bivalued function (Selhorst et al., 2003),
where H0 is the background sky brightness and H1 the solar disk brightness. The Sun is represented as a circle of angular radius
with planetary solar radius rplanetary = 695 660 km (Haberreiter et al., 2008). In the process of developing SunscanPy, we included a factor to allow for changes in the solar disk brightness near the limb, but found no significant improvements in the fit quality. The Sun–Earth distance dS-E varies by about 3 % throughout the year due to Earth's orbital eccentricity and is evaluated for the scan time using the Skyfield library (Rhodes, 2019). At 35 GHz, the electromagnetic thermal emission of the sky is at least 13 dB lower than the emission of the Sun at 5800 K. Since for the Mira35 system, the Sun emission is around 4 dB higher than the noise floor of the receiver, this sky emission cannot be detected and is set to H0 = 0. Figure 4 illustrates G(x,y) and H(x,y) in the beam-centered coordinate system.
Figure 4(a) Illustration of the Sun and sky emission pattern in beam centered coordinates, as “seen” by the radar. The background consists of just two emission values: the Sun (yellow) and the sky around (blue). This background is overlayed with an airy beampattern with fx = 0.7, fy = 0.5. The beampattern is illustrated by brighter and darker regions in the image. Darker means the radar is less sensitive in these regions. The top grey-white colorbar shows the sensitivity in dB. Panels (b) and (c) show horizontal and vertical cross sections of the beampattern. The expected signal detected by the radar is the summed product of background and beam pattern plus receiver noise. For this case, it yields a value of 0.8 dB, in between the brightness of the pure Sun and pure sky.
The simulated signal Q is then the convolution of the solar emission function H and the beamshape G plus the receiver noise Hn:
To evaluate Q, both Hn and H1 must be determined. The receiver noise Hn can be measured directly by pointing the antenna sufficiently far from the Sun, i.e. by at least one expected beamwidth plus the pointing uncertainty. The solar brightness H1, however, cannot directly be measured. Instead, it is inferred from the maximum measured signal Smax. Assuming that Smax originates from a beam direction close to the center of the solar disk, we can solve Eq. (14) for H1:
This approach implies that the simulated signal at the disk center is by construction equal to Smax. Thus, the beam shape influences only the relative decay of the signal from the Sun's center towards the edge. A narrow beam produces a sharp transition between Sun and sky, while a wide beam yields a smoother decay.
2.2.2 Proposed Scanning Pattern
Before conducting a Sun scan, we recommend adjusting the radar scanner to a moderate pointing precision, e.g. ν = 2°. This avoids the need to “search” the Sun across the entire celestial hemisphere. The adjustment can usually be performed visually or with a simple spirit level and compass. Once this preliminary alignment is completed, multiple samples are recorded within a region of angular size 2ν around the expected Sun position:
The specific scanning pattern used within this region is not critical, since all sample tuples are treated independently. In practice, rectangular or rhombus-shaped “zigzag” scans are often employed. However, any pattern is acceptable provided that the following criteria are satisfied:
- 1.
Coverage of the solar disk. The data must contain some measurements with the beam probing the solar disk's central region. If this is not the case, the search region ν must be enlarged.
- 2.
Measurement of background sky noise. At least one sample must be taken sufficiently far from the Sun to record the receiver noise Hn. As a rule of thumb, this can be achieved at an azimuth offset of at least ν + fx, i.e. at least the uncertainty in radar pointing plus the expected beamwidth (including sidelobes).
- 3.
Use of multiple azimuth velocities. Ideally, the scan should include at least two different azimuth velocities. Since mechanical backlash depends only on the velocity sign, this enables the setup of two independent equations, which allow simultaneous estimation of both the backlash bγ and the timing offset t0:
Apart from these requirements, the absolute axis velocities, sampling rate, and ordering of samples may be chosen freely according to the capabilities of the scanner and the signal processing system. Appendix A presents our specific scan pattern in the form of pseudocode.
2.2.3 Reverse Scanning
Many scanner systems permit elevation angles greater than 90°. In such cases, most points on the celestial hemisphere can be reached by the scanner in two different configurations: a forward configuration with ω ≤ 90° and a reverse configuration with ω > 90° (Fig. 5).
Figure 5Illustration of the forward and reverse configuration of a two axis scanner. In both cases, the scanner points to the same location in the sky. However, in the reverse configuration, the scanner has turned by 180° in azimuth and the elevation angle (angle between the dashed, blue lines) is over 90°. The color gradients and arrows illustrate the orientation of the pedestal and scanner box.
Assuming an ideal scanner Mℐ, forward and reverse positions are related by a rotation of 180° in azimuth combined with the complementary elevation:
Performing Sun scans in both forward and reverse configurations is advantageous because it allows to resolve ambiguities in the scanner parameters. For instance, consider the case where a positive elevation mispointing Δω is observed, meaning the radar is pointing above the Sun. This deviation could originate either from an elevation axis offset or from a tilt of the scanner pedestal. In the reverse configuration, however, the two effects manifest differently: a pedestal tilt still produces a positive Δω, whereas an elevation offset causes a sign flip, leading the radar to point below the Sun. The reverse scan must satisfy the same requirements as the forward scan regarding coverage of the solar disk, measurement of sky noise, and inclusion of multiple scanning velocities.
2.3 Step 2: Estimate Scanner Inaccuracies
A single Sun scan provides information only about the local mispointing in one specific region of the sky. However, in other regions the mispointing may differ, depending on the specific inaccuracies of the scanner introduced in Sect. 2.1. To estimate these inaccuracies systematically, we implemented the forward model M𝒫(γ,ω) as a kinematic chain using ikpy, a Python library for robotics and inverse kinematics (Manceron, 2024). The kinematic chain consists of four links: Origin, Azimuth joint, Elevation joint, and Antenna. Each link defines a rotated coordinate frame relative to the previous one, with the rotations depending on the parameters α, δ, β, ϵ, , and . The effects of backlash bγ, time offset t0, angle offsets γ0 and ω0, as well as structural flexibility χ, are combined into the effective angles and .
A single Sun scan is not sufficient to unambiguously determine all parameters in 𝒫. For example, when scanning the Sun in the South, no information can be inferred about a potential East-West pedestal tilt α. To resolve such ambiguities, Sun scans at multiple positions across the sky are required, ideally covering the course of a full day in the summer months. Each Sun scan yields a pair of referenced coordinates (γr, ωr) in the scanner system and the corresponding celestial reference coordinates (ϕr, θr).
For a given set of estimated parameters ℱ, we define an objective function based on the mispointing angle between the predicted beam position and the celestial reference position:
The objective is defined as the RMSD of the mispointing across all referenced pairs:
Minimizing this objective yields the set of parameters ℱ that best explains the observed radar pointing across all Sun scans. To carry out the minimization, we employ a two-step strategy: first, a three-point brute-force search provides reasonable starting values; second, a Nelder-Mead simplex optimization minimizes the objective (Gao and Han, 2010).
Global optimization in a high-dimensional parameter space is challenging, and simultaneous fitting of all parameters can cause the optimizer to become trapped in local minima. We found that sequential fitting, leveraging the specific mispointing signatures of each parameter, avoids this issue. Figure 6 shows the mispointing caused by each static scanner parameter over the celestial hemisphere. In our approach, previously fitted parameters are held fixed as best guesses in subsequent steps:
- 0.
Backlash bγ and time offset t0. As described in Sect. 2.1, the dynamic parameters are assumed constant across the sky and can be estimated from a single Sun scan. We recommend averaging the results from multiple scans.
- 1.
Azimuth offset γ0 and antenna tilt ϵ. Near the horizon, azimuth mispointing Δγ can only be caused by γ0 and ϵ (Fig. 6c and f). The contributions differ between forward and reverse scans: γ0 produces the same sign in both, while ϵ produces opposite signs in forward and reverse (compare e.g. Figs. 6f and A1f).
- 2.
East-West tilt α and elevation offset ω0. Near the horizon in the East or West, elevation mispointing Δω can only be caused by East-West pedestal tilt α or elevation offset ω0 (Fig. 6a and 6d). In analogy to the previous step, forward and reverse scans allow these effects to be distinguished.
- 3.
North-South tilt δ and gimbal tilt β. At high elevation in the South (or North in the Southern Hemisphere), elevation mispointing Δω can be caused by North-South pedestal tilt δ or by ω0 (Fig. 6b and 6d), with the latter already known from step (2) β causes mainly an azimuth offset Δγ, but can also have a contribution to Δω (Fig. 6e).
- 4.
α, δ, β, ϵ, γ0, ω0, χ. Using the previous results as initial guesses, all parameters are jointly re-optimized against the full set of reference positions. At this stage, the flexibility parameter χ is included to account for residual elevation mispointings. Unlike α, δ, or ω0, the effect of χ on the elevation mispointing depends on the absolute elevation (Fig. 6g).
Given a list of reference positions, the SunscanPy Python implementation automatically identifies the relevant sky regions and performs the sequential fitting procedure.
Figure 6Mispointing caused by the static scanner parameters, as a function of position in the sky. Each panel shows the effect of a change in the corresponding parameter of 0.1° (χ: −0.1°), the other parameters are kept at 0.0°, respectively. Shown is the forward scanner configuration. The markers show the path of the Sun for Munich and an Antarctic location (Neumayer III station at 70°40′ S, 008°16′ W). The arrows show the direction and magnitude of the mispointing (magnitudes enhanced). Reading example for panel (d) An elevation offset of 0.1° causes a constant mispointing of 0.1° everywhere in the sky (colormap). The mispointing is always directed towards zenith (arrows).
2.4 Step 3: Inverse Kinematics
Once an estimate of the pan-tilt system parameters ℱ is available, misalignments can either be corrected mechanically – for example, by leveling the scanner pedestal – or compensated for in software. The latter requires inverting the forward model Mℱ, such that for a desired celestial position (ϕ, θ), the corresponding scanner axis positions (γ, ω) are determined:
This inversion can be performed numerically by minimizing the mispointing between the desired celestial coordinates and the beam position predicted by the forward model, i.e., by finding the scanner position (γ, ω) that minimizes
The feasibility of such inversion depends on the specific set of parameters. For example, offsets in the azimuth or elevation encoders (γ0,ω0) can be compensated straightforwardly. By contrast, an antenna tilt ϵ renders the zenith position unreachable, as will be discussed further in Sect. 3.3.
To test whether the inversion is successful, the obtained scanner position (γ, ω) is inserted back into the forward model, and the resulting pointing is evaluated against the target celestial position:
3.1 Step 1: Local Mispointing
Sun scans were carried out in August 2025 in Munich, southern Germany, using a Mira-35 Doppler cloud radar manufactured by Metek GmbH2 (Görsdorf et al., 2015). The system operates in the Ka-band at 35.2 GHz and is equipped with a 1.2 m Cassegrain antenna. The radar is mounted on a steel platform at the top of the Munich Institute for Meteorology, supported by four adjustable anchor points. This setup provides a nearly unobstructed field of view down to 2° above the horizon. The antenna is mounted on a two-axis scanner with a nominal pointing precision of less than 0.1° in both azimuth and elevation. The signal transmission between the radar and control unit is performed via slip rings and a fiber-optic rotary joint, which allows unrestricted continuous rotation in azimuth. The scanner joints operate in a temperature- and humidity-controlled environment, ensuring stable mechanical performance during the measurements.
In principle, Sun scans can be performed even in cloudy conditions and with the radar still emitting radiation. In this case, the Sun signal is visible as enhanced receiver noise in target-free sections along the beam, preferably in the far range. We focus on the radar range gates between 3 and 27 km. We calculate the Sun signal as the average noise level in all cloud-free range gates. In general, for very low elevation angles, it is possible that there are not enough cloud-free far range gates, in which case the scan is excluded from analysis. We performed all scans on almost cloud-free days.
Figure 7a shows the measurements from a Sun scan performed on 19 August 2025 at 13:44 local time. The scan pattern follows the procedure described in Appendix B, with a radar averaging time of 0.3 s. Five samples (equivalent to 1.5 s) in the lower left corner were acquired to determine the background sky noise. The Sun is visible as an elongated region of enhanced signal strength. The two azimuth velocities used during the measurement, 0.2 and 0.4° s−1, are clearly visible as more separated data points for faster azimuth velocity. Depending on the direction of azimuthal motion, a “zigzag” shift of the solar signal becomes visible, which indicates either mechanical backlash or a timing offset in the scanner system.
In Fig. 7b, the optimal fit of the simulated signal strength to the measured signal is shown. We see that the simulated samples reproduce both the overall shape of the solar response and the azimuth-dependent displacement. The corresponding best-fit parameters are listed in Table 2.
Figure 7(a) Measurements of the Mira35 cloud radar when scanning the Sun. In azimuth, the scanner is alternating between two different azimuth velocities. (b) Simulated signal strength, using the parameters of Table 2. The parameters are determined as a best fit of the simulation to the measurements in panel (a).
Table 2Parameters obtained from an optimal fit to the single Sun scan depicted in Figs. 7 and 8. Azimuth mispointing Δγ, elevation mispointing Δω, time offset between signal and scanner axis recording t0, beam full width at half maximum in cross elevation fx, beam full width at half maximum in co elevation fy, scanner backlash bγ, sky sample (receiver noise) Hn, Sun brightness H1.
With these parameters, the Sun's position can be transformed into beam-centered coordinates. Figure 8a and b show the measured and simulated signal strength in this coordinate frame. Since the transformation incorporates the corrections for Δγ, Δω, t0, and bγ, the solar pattern appears undistorted and is centered at the origin. Figure 8c presents the residuals between measured and simulated signal strengths, with a mean deviation of 0.0013 dB (±0.1065 dB standard deviation).
Figure 8(a, b) Same as Fig. 7, but depicted in beam centered coordinates. (c) The difference between the signal strengths in panels (a) and (b).
Repeating such Sun scans throughout the day allows us to assess the variability of the derived parameters. Figure 9 summarizes these results as a function of solar elevation angle. Figure 9a and b show the beamwidths at half maximum in co- and cross-elevation directions. The cross-beamwidth is derived to approximately 0.55° across all scans, with a slight 0.01° decreasing tendency for higher solar elevation angles. The co-beamwidth is on average about 0.515°. There is an overall uncertainty of ±1.5 % in both beamwidths.
Figure 9Variability of parameters over the course of one day, visualized as a function of solar elevation angle. The mean and standard deviation are indicated at the bottom of each panel and visualized as a dashed line and grey region, respectively.
Figure 9c and d display the mispointing corrections Δγ and Δω. Both exhibit systematic patterns over the course of the day, which will be further analyzed in Sect. 3.2. Figure 9e shows the time offset, with t0 = −0.33 s, indicating that the recorded signal corresponds to the scanner position approximately one-third of a second earlier. Such a timeshift is expected, since the Mira35 radar stores the time at the end of the 0.3 s averaging interval, plus an additional processing time of the central processing unit (CPU). A positive correlation between Sun elevation and time offset is observed, amounting to a small change of approximately 0.03 s over the full day. We suspect that this might be due to solar heating and resulting changes in temperature of the system, affecting the CPU processing times of signal and axis encoders. Importantly, the time offset accounts for more than 95 % of the dynamic azimuthal mispointing in the scans. The contribution from gear backlash (Fig. 9f) is negligible at 0.002°.
The solar signal amplitude (Fig. 9g) increases strongly from 0.8 linear units (−1.0 dB) near the horizon to 1.5 linear units (1.8 dB) at 20° solar elevation, reflecting the reduced atmospheric path length and hence lower path integrated gas attenuation of the direct solar radiation. At higher elevations, the changes in path length and signal are less significant. At the same time, the signal of the sky sample decreases slightly from 0.45 linear units (−3.5 dB) by about 1 % to 0.445 linear units from horizon towards high noon.
3.2 Step 2: Scanner Inaccuracies
As described in Sect. 2.2, each Sun scan provides a referenced pair of scanner and celestial coordinates (γr,ωr) and (ϕr,θr). With Sun scans distributed over the course of a full day, these data can be used to estimate the scanner inaccuracies following the procedure outlined in Sect. 2.3.
Figure 10a presents Sun scans performed on 11 and 12 August 2025. The figure shows both the actual beam positions (ϕb,θb) in the celestial hemisphere and the expected beam positions obtained from the scanner coordinates mapped into the sky using the identity scanner model,
The comparison reveals large discrepancies between expected and actual beam positions, due to an uncorrected north angle γ0 = 202.7°. After adding the northangle, the residual differences are much smaller (< 1°), as shown in Fig. 10b. For visibility, in Fig. 10b, the residuals are enhanced.
Figure 10Difference between expected beam pointing (assuming a specific scanner model M, blue dots) and actual beam pointing (crosses), derived from multiple Sun scans over the course of one day. Since in panels (b) to (e), the differences are small, the actual beam pointing markers (crosses) are shifted into the direction of the deviation along the grey arrows. (a) Expected pointings are calculated from the raw axis positions and assuming an ideal scanner Mℐ. (b) After correcting for the northangle in azimuth, the remaining differences are small and therefore enhanced in the plot. We see that in the southwest, for both the forward and reverse configuration, the radar points lower (closer to the horizon) than expected for an ideal scanner. The difference is about 0.2° (compare the length of the shift arrows with the 0.4° reference arrow). This is an indication for a southwest tilt of the scanner pedestal. (c) If the expected positions are calculated using the fitted scanner model Mℱ1, the difference to the actual pointing is much smaller. (d) Situation after leveling the pedestal, assuming an ideal scanner Mℐ. (e) After leveling the pedestal, with expected positions calculated using the fitted scanner model Mℱ2.
Over the course of the day, the discrepancies exhibit a characteristic pattern. The largest deviations occur in the southwest, where the beam consistently points lower than expected. Since this effect is present in both forward and reverse scans, it indicates a pedestal tilt of approximately 0.2° towards the southwest.
We apply the sequential fitting procedure introduced in Sect. 2.3 to the data in Fig. 10a. Table 3 lists the optimal scanner parameters ℱ1 obtained from this procedure. As expected, a positive α and negative δ confirm the southwest tilt. Compared to the pedestal tilt, the other inaccuracy parameters are about an order of magnitude smaller.3
Table 3Scanner inaccuracies before and after manual leveling, as obtained from an optimal fit to multiple Sun scans. Azimuth offset γ0, elevation offset ω0, West-East pedestal tilt α, North-South pedestal tilt δ, gimbal tilt β, antenna tilt ϵ, signal-scanner time offset t0, scanner backlash bγ, elastic elevation deformation χ.
Figure 10c shows the expected scanner positions when the optimal parameters ℱ1 are taken into account. The numbers next to the points in Fig. 10c indicate which samples are used for which step of the sequential fit, as presented in Sect. 2.3. Relative to Fig. 10b, the discrepancies are reduced by a factor of seven, yielding an average residual of only 0.02°. The remaining deviations are likely caused by effects not explicitly represented in the scanner model, such as position-dependent offsets, nonlinear elastic deformations, or differential thermal expansion of the steel support structure during the day.
With precise knowledge of the pedestal misalignment, we can proceed to correct it mechanically. Our radar is mounted on four adjustable screws arranged in a 977 mm by 1328 mm rectangle. Each full turn of a screw raises the corresponding corner by 2 mm, enabling fine adjustments. Figure 10d presents the results from a second series of Sun scans after adjusting the feet to compensate for the pedestal tilt. The remaining discrepancies are now dominated by other scanner inaccuracies, such as motor offsets, gimbal tilt β, and antenna tilt ϵ. As a consistency check, we re-estimated the optimal scanner parameters ℱ2 from these new scans. The results, shown in Table 3 (second column), confirm that the pedestal is now aligned to within 0.01°, while the other parameters remain similar to their previous values. Taking Mℱ2 as the basis for the expected pointing in Fig. 10e, the remaining discrepancies almost vanish and we get a similar agreement between expectation and measurement as in Fig. 10c.
3.3 Step 3: Inverse Kinematics
Instead of correcting the pointing errors mechanically, the ability to invert the scanner model M𝒫 allows for an automatic correction in software. For example, if the radar is required to point to in the sky, the corresponding scanner coordinates according to the fitted parameter set ℱ1 are:
The two solutions correspond to the forward and backward scanner configurations. Both solutions account for the complete set of inaccuracies represented in the scanner model. For cloud radar applications, the zenith position is typically the most critical. In this case, the inversion yields:
At zenith, the prescribed azimuth ϕ = 0° is irrelevant for the pointing accuracy. The scanner azimuth positions γ listed in Eq. (26) were chosen to optimize the final pointing.
Figure 11a and b illustrate the corrections required to be added to the scanner coordinates γ and ω, respectively, to achieve perfect pointing across the full celestial hemisphere. Figure 11a is dominated by the system's north angle of 157.3°. Near zenith, the azimuth corrections increase, reflecting the reduced effectiveness of azimuth corrections at high elevation angles. Figure 11b is dominated by the southwest tilt of the pedestal: in the southwest, the elevation axis must be increased by about 0.2°, while in the northeast it must be reduced by roughly 0.1°.
Figure 11Corrections to be added to the scanner azimuth and elevation axis position in order to achieve perfect beam pointing accuracy, for all locations of the celestial hemisphere. (a) Azimuth correction. (b) Elevation correction.
It should be noted that inverse kinematics does not always allow for complete correction. Certain scanner configurations restrict accessibility to specific sky regions. For illustration, consider the extreme case where the dish is tilted by ϵ = 90°, effectively aligning the beam with the elevation axis. In this configuration, the elevation motor no longer affects the beam pointing, making it obviously impossible to reach the zenith position. Figure 12a shows the hypothetical case of an antenna tilt of ϵ = 10°. Here, the maximum achievable beam elevation is 80°, leaving the zenith position unreachable. Above this limit, the residual mispointing after inverse kinematics correction increases continuously, reaching up to 10° at zenith.
Figure 12Simulated pointing deviation from desired location after inverse kinematics correction for two different scanner configurations. (a) A perfectly leveled scanner with an antenna tilt of 10°. (b) Like panel (a), but with the scanner pedestal tilted towards North and West by 6°.
A straightforward solution for Doppler cloud radars is to deliberately shift the unreachable polar region away from zenith by tilting the pedestal. Figure 12b illustrates this effect for a virtual scanner tilted by 6° towards both the west and north. The unreachable region is displaced accordingly, and zenith can again be reached with nearly perfect accuracy. In fact, the same result would be achieved for a sufficiently large pedestal tilt into any direction. This leads to the paradoxical effect that with the ability to perform inverse kinematics corrections, a perfectly leveled pedestal represents the least favorable configuration, as it maximizes the risk of an unreachable zenith.
4.1 Dependence on Latitude and Seasonality
As described in Sect. 2 and Fig. 1, the Sun scan method requires multiple Sun scans at different positions in the sky. However, the accessible positions may be restricted by a limited solar path, for example at high latitudes or during winter months, or by radar-specific constraints such as surrounding obstacles or mechanical limitations of the scanner.
To assess the impact of such restrictions on the applicability of the method, Fig. 6 shows the mispointing caused by a deviation of 0.1° in each scanner parameter across all sky positions. In general, a parameter can only be inferred from Sun scans if measurements are available from sky regions where the pointing is sensitive to that parameter. The markers in each panel illustrate the Sun positions for Munich and a high-latitude site (Neumayer III station, 70°40′ S, 008°16′ W). For the polar site, the Sun traverses at least one sensitive region for all parameters except the gimbal tilt β. Hence, even in polar regions with only low solar elevation angles available, we expect that all parameters except β can be estimated.
For campaigns and mobile radars, the pedestal tilts α and δ are likely the most relevant parameters. As described in Sect. 2.3, their estimation requires only samples close to the horizon in the West and East, or North and South, respectively. However, during polar winter conditions, when the Sun remains confined to the North or South, α cannot be reliably estimated because no sensitivity exists near the horizon in the North or South (Fig. 6a).
These considerations apply analogously to local obstacles or mechanical constraints. In the latter case, reverse scans may not be feasible. Consequently, certain parameter pairs, such as γ0 and ϵ, cannot be determined independently (see also Sect. 2.3). In such situations, we recommend fixing one parameter and excluding it from the fit. For example, the gimbal tilt β and the antenna tilt ϵ may be assumed small and prescribed according to manufacturer specifications.
4.2 Pointing Uncertainty
Figure 9 already provides a measure of the relative uncertainty of the Sun scan parameters by showing the variability of repeated scans throughout the day. Beyond this variability, sources of absolute bias must also be considered.
A potential source for uncertainty is the accuracy of the solar position algorithm. We compared four different algorithms. Skyfield (Rhodes, 2019), Sunpy (The SunPy Community et al., 2020) and PySolar (Stafford, 2021) are free and open source Python modules. SolCalc (NOAA Global Monitoring Laboratory, 2025) is the solar position calculator from the US National Oceanic and Atmospheric Administration. We found general agreement in the solar azimuth and elevation of better than 0.02° between the libraries. The main cause for this difference is whether refraction is considered and how a correction is implemented. For the calculations in this manuscript and SunscanPy, we rely on the geometrical (i.e. not refraction corrected) position provided by Skyfield. We then apply the microwave refraction formula proposed by Huuskonen and Holleman (2007). Their coefficients were fitted to simulations of the Starlink positional astronomy library (Currie et al., 2014), which uses the refractivity model from Rueger (2002a). The Starlink implementation is generally valid for microwave radiation in the GHz range, with a reported accuracy better than 1′′. It does not include an explicit wavelength dependency. According to Rueger (2002b), dispersion of the refractive index would be most relevant near oxygen and water vapor resonance lines, which are deliberately outside of the frequency bands used by weather and cloud radars. Figure 13a shows the correction to the geometric solar elevation as a function of Sun elevation. The effect is largest near the horizon, but already at elevations above 10°, the correction remains below 0.1°. The dominant source of uncertainty in this parameterization is atmospheric humidity. Figure 13b illustrates how the apparent solar elevation changes when relative humidity increases from 0 % to 50 %, and from 50 % to 85 %. Above 10°, the associated effect is less than 0.01°. For the calculations in the previous sections, we assumed a constant humidity of 50 %. While future refinements could incorporate vertical humidity profiles from radiosonde measurements, this level of detail is not necessary to achieve an absolute calibration accuracy well below 0.1°. This conclusion is confirmed by sensitivity tests: repeating our calculations with 85 % humidity altered the derived scanner parameters by in general less than 10′′.
Figure 13Apparent shift in elevation of the solar disk due to atmospheric refraction of GHz radio waves, as a function of solar elevation. (a) Absolute shift. (b) Differences between the curves in panel (a), with the 0 % humidity curve taken as a reference.
In order to estimate the Sun position accurately, precise timing is important. As described in Sect. 2.1, we use different azimuth velocities to estimate the relative time offset between signal and scanner encoder readings. However, this method cannot correct for an absolute time offset being present in signal processor and scanner encoder alike. Absolute time offsets will cause an apparent mispointing, which is always directed along the trajectory of the Sun. Depending on the latitude and season, it may therefore be possible to derive an absolute time offset from the characteristic misalignment pattern of multiple Sun scans. Nevertheless, for practical applications, we recommend simply synchronizing the time of the radar before a Sun scan calibration. Using for example GPS time or the standard network time protocol (NTP) synchronization available in modern operating systems, an accuracy of 100 ms or better should be easily achieved (Mills, 1994). From sensitivity tests, we found time shifts of 1 s to cause in general less than 10′′ shift in the derived scanner parameters.
The calibration framework developed in this study is provided as an open-source Python library SunscanPy. The library is written in a modular, object-oriented style and reads data in the form of one-dimensional numpy arrays. This facilitates the inclusion of the methods into existing data pipelines and operational environments. Figure 14 provides a schematic overview of the data processing. This processing chain was also used for the results in this study. Together with the library, we provide two detailed tutorial notebooks covering signal estimation and scanner estimation, guiding users through the full solar pointing calibration process. In addition, the library includes various utility functions for atmospheric refraction correction, solar position calculation, Sun scan data plotting, and an interactive 3D visualization of the scanner geometry. For usage, the recommended starting point is the project homepage at https://github.com/Ockenfuss/sunscanpy (last access: 24 April 2026), where the tutorial notebooks are also provided.
Figure 14Overview of the modules and dataflow in the SunscanPy Python library. The two green boxes represent the two major processing steps in SunscanPy and correspond conceptually to step one and two in Fig. 1, respectively. The core of each step is a loop (as illustrated by the blue arrows), in which the parameters of an object are fitted iteratively to the given data. In step one, the data consists of values (radar measurements and scanner position) of a single sunscan and the parameters are the local mispointing, beamwidth and dynamic coefficients. In step two, the data consists of the referenced coordinate pairs produced by step one and the parameters are the scanner coefficients. Please refer to the methods in Sect. 2 and the list of symbols at the end of this publication for a definition of the parameters in the figure.
We have presented a generic theory and workflow for radar pointing calibration using the Sun as a reference source. The procedure is structured into three major steps: (i) recording and evaluation of individual Sun scans, (ii) derivation of scanner inaccuracies, and (iii) correction of these inaccuracies. In total, the method allows the derivation of 13 distinct parameters. These include the radar beamwidth in co- and cross-elevation directions, the scanner pedestal tilt, axis misalignments, encoder offsets, gear backlash, and the receiver-scanner time offset. Our results demonstrate that, with this approach, a pointing accuracy on the order of 0.01° can be achieved.
Although the workflow is demonstrated here with a Mira-35 cloud radar, the methodology has been deliberately designed to be radar-agnostic. The procedures apply to any instrument equipped with a parabolic antenna mounted on a two-axis scanner, whether the radar is a cloud research radar or used for weather surveillance.
To facilitate the application, we provide a novel open-source Python package SunscanPy, which contains a suite of tools together with comprehensive tutorials and example data for radar pointing calibration. We also discuss the possibility of fully automatic radar pointing calibration. SunscanPy implements an inversion method for the scanner model, enabling calculation of the scanner coordinates required to achieve a desired celestial pointing. This opens the possibility for active radar pointing calibration as an alternative to manual, mechanical adjustments: after performing Sun scans, a radar can infer its scanner misalignment and then compensate for any bias in subsequent measurements. Such functionality will be highly valuable for mobile radars, for example deployed in field campaigns, where uneven ground or snow may cause significant pedestal misalignment.
Stationary scanning radars likewise benefit from our workflow. SunscanPy makes it possible to monitor pointing accuracy over long time scales, or, if the scanner configuration is assumed to be stable over time, to retrospectively improve the pointing accuracy of existing datasets. For these reasons, we think that our tool will be of interest to network-level initiatives such as the European Aerosol, Clouds and Trace Gases Research Infrastructure (ACTRIS, Laj et al., 2024) or the U.S. Atmospheric Radiation Measurement (ARM, Mather and Voyles, 2013) program. Long-term cloud radar datasets are increasingly used to infer statistics of, for example, hydrometeor sedimentation velocities or vertical air motion (e.g., Kalesse and Kollias, 2013). Also new satellite missions, such as EarthCare, benefit from well-calibrated ground-based radar datasets to evaluate their novel Doppler velocity capabilities.
Last, but not least, while not investigated in this study, we believe that our methodology and the SunscanPy package can also be applied to other scanning, two-axis instruments like Sun photometers or microwave radiometers. Particularly step (ii) and (iii) of the workflow have the potential to be transferred with minor to no adaptations to those instruments.
Figure A1 shows the effect of the static scanner parameters on the mispointing in the sky for the reverse scanner configuration.
As explained in Sect. 2.2.2, any scanning pattern which yields sufficient samples around the Sun can be evaluated. For practical applications, some patterns are more efficient in terms of scanning time and spatial resolution. Given the huge variety of hardware and programming languages used to control scanning weather and cloud radars, it is difficult to provide ready-to-run scripts for every radar. Instead, in Algorithm B1 we provide a pseudocode implementation of the scan pattern we used for our measurements. The only radar specific command in the pseudocode is move to, which steers the scanner to a given pair of axis positions. If such a command is available, it should be straightforward to implement a Sun scan in any programming language. Figure B1 illustrates the resulting pattern. Our code takes the movement of the Sun into account and dynamically follows the expected position of the solar disk. If the Sun is located at high elevations in the sky, the azimuth range and azimuth speed are enhanced to sample a constant solid angle in the sky. To perform a reverse scan, the only adaption is to exchange the move to function in Algorithm B1 with the move reverse function described in Algorithm B2.
Algorithm B1Sun scan pattern algorithm.
Algorithm B2Move reverse function.
| α | Pedestal tilt towards West or East |
| β | Gimbal tilt |
| bγ | Azimuth backlash |
| δ | Pedestal tilt towards North or South |
| ϵ | Antenna tilt |
| γ | Azimuth axis position |
| γ0 | Azimuth axis offset |
| γr | Azimuth axis position, belonging to a referenced position in the sky (ϕr, θr) |
| Azimuth axis velocity | |
| ω | Elevation axis position |
| ω0 | Elevation axis offset |
| ωr | Elevation axis position, belonging to a referenced position in the sky (ϕr, θr) |
| Elevation axis velocity | |
| t0 | Time offset between axis positioners and signal recorder |
| χ | Elastic elevation deformation |
| θ | Elevation angle (celestial coordinates) |
| ϕ | Azimuth angle (celestial coordinates) |
| ϕs | Solar azimuth position |
| θs | Solar elevation position |
| ϕb | Beam azimuth position |
| θb | Beam elevation position |
| ϕr | Azimuth position in the sky, providing the reference to a scanner position (γr, ωr) |
| θr | Elevation position in the sky, providing the reference to a scanner position (γr, ωr) |
| Δγ | Local azimuth mispointing |
| Δω | Local elevation mispointing |
| ΔΩ | Angular mispointing |
| fx | Beam full width at half maximum in cross-elevation direction |
| fy | Beam full width at half maximum in co-elevation direction |
| G | Antenna beam pattern function |
| H | Solar emission pattern function |
| H0 | Sky brightness |
| H1 | Solar disk brightness |
| Hn | Receiver noise level |
| Q | Simulated signal strength |
| S | Measured signal strength |
| rs | Angular radius of solar disk |
| M𝒫 | Forward scanner model with parameters 𝒫 |
| Mℐ | Ideal scanner model |
| 𝒫 | Set of scanner inaccuracy parameters |
| ℱ | Fitted scanner parameters |
| J1 | First-order Bessel function |
| bx, by, bz | Beam-centered coordinate axes |
| x0, y0 | Beam shape coefficients |
| r0.5 | Radius where beam has half maximum value |
The code for the full Sun calibration procedure is made freely available in the form of an open source Python package SunscanPy on GitHub from https://github.com/Ockenfuss/sunscanpy (last access: 24 April 2026) and on Zenodo from https://doi.org/10.5281/zenodo.18862011 (Ockenfuß and Köcher, 2026a). The package includes some example datasets as used in this publication, as well as plotting functionality. There are two extensive tutorial jupyter notebooks to guide through the calibration and visualization process at the package homepage. This publication was created based on SunscanPy v0.1.3 available on GitHub from https://github.com/Ockenfuss/sunscanpy/releases/tag/v0.1.3 (last access: 24 April 2026) and on Zenodo from https://doi.org/10.5281/zenodo.18862012 (Ockenfuß and Köcher, 2026b).
PO developed the method and SunscanPy, evaluated the measurements and wrote this publication. PO and GK performed the measurements. GK also co-authored SunscanPy and this publication. GK is responsible for the general Mira35 radar operation and data quality. MB and SK assisted with longterm Sun scan and radar pointing experience. Some concepts, namely the reverse scan and the scanner inaccuracies, are based on earlier work from MB. All authors edited and proofread the manuscript.
Mathias Bauer-Pfundstein is employed by Metek GmbH, the manufacturer of the Mira35 cloud radar.
Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.
We acknowledge support for hardware upgrades and long-term operation of the MIRA35 system by ACTRIS-D (Grant number 01LK2001E), funded by the Federal Ministry of Education and Research (BMBF) under the FONA Strategy “Research for Sustainability”. We are grateful for the comments from three anonymous reviewers, which helped to improve the final version of the manuscript. We thank Pavlos Kollias for handling the manuscript as editor. In the production of this study, tools based on artificial intelligence (AI) were used. Specifically, “ChatGPT” by OpenAI and “Claude” by Anthropic assisted in simple, repetitive code generation tasks (plotting and formatting), as well as in improving the wording and formulation of this manuscript. All ideas and concepts are developed without AI assistance exclusively by the authors.
This work has been supported by the DFG Priority Program SPP2115 “Fusion of Radar Polarimetry and Numerical Atmospheric Modelling Towards an Improved Understanding of Cloud and Precipitation Processes” (PROM) under Grant PROM-POMODORI (Project Number 408012686) and PROM-ICEPOLCKA (Project Number 408027579).
This paper was edited by Pavlos Kollias and reviewed by three anonymous referees.
Altube, P., Bech, J., Argemí, O., and Rigo, T.: Quality Control of Antenna Alignment and Receiver Calibration Using the Sun: Adaptation to Midrange Weather Radar Observations at Low Elevation Angles, J. Atmos. Ocean. Tech., 32, 927–942, https://doi.org/10.1175/JTECH-D-14-00116.1, 2015. a
Altube, P., Bech, J., Argemí, O., Rigo, T., and Pineda, N.: Intercomparison and Potential Synergies of Three Methods for Weather Radar Antenna Pointing Assessment, J. Atmos. Ocean. Tech., 33, 331–343, https://doi.org/10.1175/JTECH-D-15-0075.1, 2016. a, b, c
Arnott, N., Richardson, Y., Wurman, J., and Lutz, J.: A solar alignment technique for determining mobile radar pointing angles, in: Preprints, 31st Int. Conf. on Radar Meteorology, Seattle, WA, Amer. Meteor. Soc., 492, p. 494, 2003. a
Baars, J.: The measurement of large antennas with cosmic radio sources, IEEE T. Antenn. Propag., 21, 461–474, https://doi.org/10.1109/TAP.1973.1140521, 1973. a
Currie, M. J., Berry, D. S., Jenness, T., Gibb, A. G., Bell, G. S., and Draper, P. W.: Starlink Software in 2013, in: Astronomical Data Analysis Software and Systems XXIII, edited by: Manset, N. and Forshay, P., Astronomical Society of the Pacific Conference Series, 485, p. 391, 2014. a
Darlington, T., Kitchen, M., Sugier, J., and de Rohan-Truba, J.: Automated real-time monitoring of radar sensitivity and antenna pointing accuracy, in: 31st International Conference on Radar Meteorology, American Meteorological Society, 7B.6, https://ams.confex.com/ams/32BC31R5C/techprogram/paper_63543.htm (last access: 24 April 2026), 2003. a
Frech, M., Mammen, T., and Lange, B.: Pointing Accuracy of an Operational Polarimetric Weather Radar, Remote Sensing, 11, 1115, https://doi.org/10.3390/rs11091115, 2019. a
Gao, F. and Han, L.: Implementing the Nelder-Mead simplex algorithm with adaptive parameters, Comput. Optim. Appl., 51, 259–277, https://doi.org/10.1007/s10589-010-9329-3, 2010. a
Görsdorf, U., Lehmann, V., Bauer-Pfundstein, M., Peters, G., Vavriv, D., Vinogradov, V., and Volkov, V.: A 35-GHz Polarimetric Doppler Radar for Long-Term Observations of Cloud Parameters–Description of System and Data Processing, J. Atmos. Ocean. Tech., 32, 675–690, https://doi.org/10.1175/jtech-d-14-00066.1, 2015. a
Haberreiter, M., Schmutz, W., and Kosovichev, A. G.: Solving the Discrepancy between the Seismic and Photospheric Solar Radius, Astrophys. J., 675, L53–L56, https://doi.org/10.1086/529492, 2008. a
Holleman, I., Huuskonen, A., Kurri, M., and Beekhuis, H.: Operational Monitoring of Weather Radar Receiving Chain Using the Sun, J. Atmos. Ocean. Tech., 27, 159–166, https://doi.org/10.1175/2009jtecha1213.1, 2010. a
Holleman, I., Huuskonen, A., and Taylor, B.: Solar Monitoring of the NEXRAD WSR-88D Network Using Operational Scan Data, J. Atmos. Ocean. Tech., 39, 125–139, https://doi.org/10.1175/jtech-d-20-0204.1, 2022. a
Holton, J. R. and Hakim, G. J.: An Introduction to Dynamic Meteorology, Elsevier, https://doi.org/10.1016/c2009-0-63394-8, ISBN 9780123848666, 2013. a
Houze Jr., R. A.: Cloud dynamics, Vol. 104 of International Geophysics Series, Academic Press, Oxford, England, 2nd edn., Chap. 3.2.7, ISBN 9780080921464, 2014. a
Huuskonen, A. and Holleman, I.: Determining Weather Radar Antenna Pointing Using Signals Detected from the Sun at Low Antenna Elevations, J. Atmos. Ocean. Tech., 24, 476–483, https://doi.org/10.1175/JTECH1978.1, 2007. a, b, c, d, e
Kalesse, H. and Kollias, P.: Climatology of High Cloud Dynamics Using Profiling ARM Doppler Radar Observations, J. Climate, 26, 6340–6359, https://doi.org/10.1175/JCLI-D-12-00695.1, 2013. a
Kneifel, S., Kollias, P., Battaglia, A., Leinonen, J., Maahn, M., Kalesse, H., and Tridon, F.: First observations of triple‐frequency radar Doppler spectra in snowfall: Interpretation and applications, Geophys. Res. Lett., 43, 2225–2233, https://doi.org/10.1002/2015gl067618, 2016. a
Kraus, J. D.: Antennas, McGraw-Hill series in electrical engineering, McGraw-Hill, New York, NY, 2nd edn., Chap. 12.7, ISBN 0070354227, 1988. a
Laj, P., Myhre, C. L., Riffault, V., Amiridis, V., Fuchs, H., Eleftheriadis, K., Petäjä, T., Salameh, T., Kivekäs, N., Juurola, E., Saponaro, G., Philippin, S., Cornacchia, C., Arboledas, L. A., Baars, H., Claude, A., Mazière, M. D., Dils, B., Dufresne, M., Evangeliou, N., Favez, O., Fiebig, M., Haeffelin, M., Herrmann, H., Höhler, K., Illmann, N., Kreuter, A., Ludewig, E., Marinou, E., Möhler, O., Mona, L., Murberg, L. E., Nicolae, D., Novelli, A., O’Connor, E., Ohneiser, K., Altieri, R. M. P., Picquet-Varrault, B., van Pinxteren, D., Pospichal, B., Putaud, J.-P., Reimann, S., Siomos, N., Stachlewska, I., Tillmann, R., Voudouri, K. A., Wandinger, U., Wiedensohler, A., Apituley, A., Comerón, A., Gysel-Beer, M., Mihalopoulos, N., Nikolova, N., Pietruczuk, A., Sauvage, S., Sciare, J., Skov, H., Svendby, T., Swietlicki, E., Tonev, D., Vaughan, G., Zdimal, V., Baltensperger, U., Doussin, J.-F., Kulmala, M., Pappalardo, G., Sundet, S. S., and Vana, M.: Aerosol, Clouds and Trace Gases Research Infrastructure (ACTRIS): The European Research Infrastructure Supporting Atmospheric Science, B. Am. Meteorol. Soc., 105, E1098–E1136, https://doi.org/10.1175/BAMS-D-23-0064.1, 2024. a
Manceron, P.: IKPy, v3.4.2, Zenodo [code], https://doi.org/10.5281/zenodo.13304536, 2024. a
Mano, K. and Altshuler, E.: Tropospheric refractive angle and range error corrections utilizing exoatmospheric sources, Radio Sci., 16, 191–195, 1981. a
Manz, A., Smith, A., and Hardaker, P.: Comparison of different methods of end to end calibration of the U.K. weather radar network, Phys. Chem. Earth Pt. B, 25, 1157–1162, https://doi.org/10.1016/S1464-1909(00)00171-4, 2000. a
Mather, J. H. and Voyles, J. W.: The Arm Climate Research Facility: A Review of Structure and Capabilities, B. Am. Meteorol. Soc., 94, 377–392, https://doi.org/10.1175/BAMS-D-11-00218.1, 2013. a
METEK GmbH: MIRA-35: Vertical Doppler Cloud RADAR – System Specifications, METEK GmbH, Fritz-Strassmann-Str. 4, 25337 Elmshorn, Germany, https://metek.de/wp-content/uploads/2014/05/Metek-Vertical-Doppler-Cloud-RADAR-MIRA-35-Datasheet.pdf (last access: 24 April 2026), 2013. a
Mills, D. L.: Precision synchronization of computer network clocks, ACM SIGCOMM Comp. Com., 24, 28–43, https://doi.org/10.1145/185595.185651, 1994. a
Muth, X., Schneebeli, M., and Berne, A.: A sun-tracking method to improve the pointing accuracy of weather radar, Atmos. Meas. Tech., 5, 547–555, https://doi.org/10.5194/amt-5-547-2012, 2012. a
NOAA Global Monitoring Laboratory: NOAA Solar Calculator: Find Sunrise, Sunset, Solar Noon and Solar Position for Any Place on Earth, https://gml.noaa.gov/grad/solcalc/ (last access: 10 November 2025), 2025. a
Ockenfuß, P. and Köcher, G.: SunscanPy, Zenodo [code], https://doi.org/10.5281/zenodo.18862011, 2026a. a, b
Ockenfuß, P. and Köcher, G.: SunscanPy: v0.1.3, Zenodo [code], https://doi.org/10.5281/zenodo.18862012, 2026b. a
Radiometer Physics GmbH (RPG): RPG-FMCW-DP-KW 35/94 GHz Dual Frequency Cloud Doppler Radar: Instrument Installation Guide, Radiometer Physics GmbH (RPG), Meckenheim, Germany, issue 01, Revision 04, 42 pp., https://www.radiometer-physics.de/download/PDF/Cloud%20Radar/RPG-FMCW-dual-frequency-35-94-Installation_Manual.pdf (last access: 24 April 2026), 2024. a
Reimann, J. and Hagen, M.: Antenna pattern measurements of weather radars using the sun and a point source, J. Atmos. Ocean. Tech., 33, 891–898, https://doi.org/10.1175/JTECH-D-15-0185.1, 2016. a
Rhodes, B.: Skyfield: High precision research-grade positions for planets and Earth satellites generator, Astrophysics Source Code Library, record ascl:1907.024, https://ui.adsabs.harvard.edu/abs/2019ascl.soft07024R (last access: 24 April 2026), 2019. a, b
Rueger, J. M.: Refractive Index Formulae for Electronic Distance Measurement with Radio and Millimetre Waves, Tech. Rep. S-68, School of Surveying and Spatial Information Systems, University of New South Wales, Sydney, Australia, 2002a. a
Rueger, J. M.: Refractive Index Formulae for Radio Waves, in: FIG XXII International Congress: JS28 Integration of Techniques and Corrections to Achieve Accurate Engineering, FIG, Washington, D.C., USA, 2002b. a
Selhorst, C. L., Silva, A. V. R., Costa, J. E. R., and Shibasaki, K.: Temporal and angular variation of the solar limb brightening at 17 GHz, Astron. Astrophys., 401, 1143–1150, https://doi.org/10.1051/0004-6361:20030071, 2003. a
Stafford, B.: Pysolar Python Library, Zenodo [code], https://doi.org/10.5281/zenodo.1461065, 2021. a
The SunPy Community, Barnes, W. T., Bobra, M. G., Christe, S. D., Freij, N., Hayes, L. A., Ireland, J., Mumford, S., Perez-Suarez, D., Ryan, D. F., Shih, A. Y., Chanda, P., Glogowski, K., Hewett, R., Hughitt, V. K., Hill, A., Hiware, K., Inglis, A., Kirk, M. S. F., Konge, S., Mason, J. P., Maloney, S. A., Murray, S. A., Panda, A., Park, J., Pereira, T. M. D., Reardon, K., Savage, S., Sipőcz, B. M., Stansby, D., Jain, Y., Taylor, G., Yadav, T., Rajul, and Dang, T. K.: The SunPy Project: Open Source Development and Status of the Version 1.0 Core Package, Astrophys. J., 890, 68, https://doi.org/10.3847/1538-4357/ab4f7a, 2020. a
Tridon, F. and Battaglia, A.: Dual‐frequency radar Doppler spectral retrieval of rain drop size distributions and entangled dynamics variables, J. Geophys. Res.-Atmos., 120, 5585–5601, https://doi.org/10.1002/2014jd023023, 2015. a
Note that in reality, this assumption does not limit the applicability of the method. Even though our Mira35 radar has a northangle of 202°, by choosing an appropriate initial guess, the optimizer is never confronted with deviations between Sun and expected beam position of more than about 5°. SunscanPy will find such an initial guess automatically before starting the optimization.
The instrument is a central component of the Munich ACTRIS National Facility for cloud remote sensing (https://nflabelling.actris.eu/facility/51, last access: 24 April 2026). Continuous measurements and derived products are available via the Cloudnet portal https://cloudnet.fmi.fi/ (last access: 24 April 2026).
These comparably small axis offsets, gimbal tilt and antenna tilt are to be expected, since the scanner had undergone a factory calibration prior to the measurements shown in this study. The factory procedure is based on a manual Sun scan analysis. For the experiment presented here, the pedestal was intentionally misaligned to test the fitting method.
- Abstract
- Introduction
- Methods
- Results
- Discussion
- SunscanPy Python Implementation
- Conclusions
- Appendix A: Reverse Parameter Sensitivity
- Appendix B: Implementation of a Sun Scan Pattern
- Appendix C: List of Symbols
- Code and data availability
- Author contributions
- Competing interests
- Disclaimer
- Acknowledgements
- Financial support
- Review statement
- References
- Abstract
- Introduction
- Methods
- Results
- Discussion
- SunscanPy Python Implementation
- Conclusions
- Appendix A: Reverse Parameter Sensitivity
- Appendix B: Implementation of a Sun Scan Pattern
- Appendix C: List of Symbols
- Code and data availability
- Author contributions
- Competing interests
- Disclaimer
- Acknowledgements
- Financial support
- Review statement
- References