<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-19-2497-2026</article-id><title-group><article-title>Modular wind profile retrieval software for heterogeneous Doppler lidar measurements (AtmoProKIT v1.1)</article-title><alt-title>Modular Doppler lidar wind profile retrieval software</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Erdmann</surname><given-names>Anselm</given-names></name>
          <email>anselm.erdmann@kit.edu</email>
        </contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Gasch</surname><given-names>Philipp</given-names></name>
          <email>philipp.gasch@kit.edu</email>
        </contrib>
        <aff id="aff1"><label>1</label><institution>Karlsruhe Institute of Technology, Institute of Meteorology and Climate Research Troposphere Research, Kaiserstraße 12, 76131 Karlsruhe, Germany</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Anselm Erdmann (anselm.erdmann@kit.edu) and Philipp Gasch (philipp.gasch@kit.edu)</corresp></author-notes><pub-date><day>30</day><month>March</month><year>2026</year></pub-date>
      
      <volume>19</volume>
      <issue>6</issue>
      <fpage>2497</fpage><lpage>2529</lpage>
      <history>
        <date date-type="received"><day>29</day><month>November</month><year>2024</year></date>
           <date date-type="rev-request"><day>19</day><month>December</month><year>2024</year></date>
           <date date-type="rev-recd"><day>21</day><month>February</month><year>2026</year></date>
           <date date-type="accepted"><day>23</day><month>February</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Anselm Erdmann</copyright-statement>
        <copyright-year>2026</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026.html">This article is available from https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e89">Retrieving wind profiles from Doppler lidar radial velocities requires processing software tools. The heterogeneity of Doppler lidar types and data acquisition settings, as well as scan patterns applied for wind profiling, makes wind profile processing challenging. Addressing this challenge, a modular open-source wind profile retrieval software tool is presented: the Atmospheric Profile Processing toolKIT (AtmoProKIT). The software calculates quality-controlled wind profiles from heterogeneous Doppler lidar data, i.e. independent of the system type, data acquisition settings, or the scan pattern applied. Ingestion of heterogeneous data is enabled by the definition of a standardized level 1 data format for the measurements, from which level 2 wind profiles are retrieved. Processing flexibility is enabled through the combination of modular processing steps in module chains. Modifications are possible by individually arranging modules, adding calculation modules, or adjusting processing parameters. The documentation of the processing steps in the result's metadata ensures the traceability of the results. A standard module chain is presented, which allows for straightforward wind profile retrieval for common Doppler lidar measurement scenarios without the need for coding. The results provided by the standard module chain are validated against radiosondes for three common Doppler lidar systems in differing atmospheric conditions. AtmoProKIT is provided as open-source Python code and includes demonstration examples, allowing easy use and future collaborative modification.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e105">Our understanding of atmospheric processes and the ability to forecast the weather rely on observations. Wind profile observations are crucial and present a missing link in the global observation system <xref ref-type="bibr" rid="bib1.bibx3 bib1.bibx4" id="paren.1"/>. Doppler lidars provide an established technique for range-resolved wind measurements using laser radiation <xref ref-type="bibr" rid="bib1.bibx62" id="paren.2"/>. Using Doppler lidar measurements for model evaluation and data assimilation <xref ref-type="bibr" rid="bib1.bibx23" id="paren.3"/> requires traceable and reproducible wind profile calculations. Processing Doppler lidar measurements from multiple locations and systems (e.g. <xref ref-type="bibr" rid="bib1.bibx55" id="altparen.4"/>) for use in models requires flexible yet standardized calculation routines. The transformation of Doppler lidar measurements into standardized profiles must be transparent and reproducible to meet the FAIR data principles <xref ref-type="bibr" rid="bib1.bibx71" id="paren.5"/>.</p>
      <p id="d2e123">Coherent Doppler lidars measure the Doppler shift of the returned laser light, scattered by aerosols or other particles, compared to the outgoing laser light. Thereby, Doppler lidars estimate the velocity of the scatterers in beam direction at different ranges along the beam. Assuming the scatterers are advected with the wind, the Doppler lidar measures the projection of the wind in beam direction, also called radial velocity. State-of-the-art Doppler lidars measure wind in a range O(<inline-formula><mml:math id="M1" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">100</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>)–O(<inline-formula><mml:math id="M2" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">10</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>) with high precision and accuracy.</p>
      <p id="d2e148">Doppler lidars have become commercially available in the last decade and have seen increasing usage in research and industry, e.g. for atmospheric boundary layer research <xref ref-type="bibr" rid="bib1.bibx53 bib1.bibx1" id="paren.6"/> and wind energy applications <xref ref-type="bibr" rid="bib1.bibx19 bib1.bibx39" id="paren.7"/>. Existing Doppler lidars use various laser sources (pulsed, continuous), laser pulse characteristics (e.g. wavelength, pulse energy, pulse length, pulse repetition frequency), and data processing settings (e.g. acquisition bandwidth, fast Fourier transform processing length, spectra accumulation time, number of range gates, range gate length, range gate spacing) <xref ref-type="bibr" rid="bib1.bibx62" id="paren.8"/>. The ongoing development of lidar systems with different characteristics has resulted in instrument-specific heterogeneous data products and formats.</p>
      <p id="d2e160">Additionally, Doppler lidars are used for a variety of application scenarios, including network wind profile retrievals <xref ref-type="bibr" rid="bib1.bibx58" id="paren.9"/>, turbulence estimation <xref ref-type="bibr" rid="bib1.bibx9" id="paren.10"/>, mixing layer height estimation <xref ref-type="bibr" rid="bib1.bibx54 bib1.bibx10" id="paren.11"/>, and multi-Doppler setups for 2D flow retrieval <xref ref-type="bibr" rid="bib1.bibx53" id="paren.12"/> or virtual towers <xref ref-type="bibr" rid="bib1.bibx6" id="paren.13"/>. The different scenarios require individual lidar and scan setups, which may additionally depend on location and time. Thereby, an additional layer of heterogeneity is introduced, since the lidar data from each application often require unique algorithms for the specific evaluation tasks.</p>
      <p id="d2e179">In this study, the heterogeneity created by different systems and applications, including laser, data acquisition, and scan pattern settings, is addressed as <italic>heterogeneous</italic> Doppler lidar data.</p>
      <p id="d2e185">One of the most common application scenarios for Doppler lidars is wind profiling, i.e. obtaining vertically resolved wind vector information using a single Doppler lidar <xref ref-type="bibr" rid="bib1.bibx14 bib1.bibx4 bib1.bibx36" id="paren.14"><named-content content-type="pre">e.g.</named-content><named-content content-type="post">and references therein</named-content></xref>. Wind profiles are easily interpretable and needed to study the atmospheric dynamics at the measurement site. Further, wind profiles can be compared to and assimilated in numerical weather prediction (NWP) models <xref ref-type="bibr" rid="bib1.bibx34 bib1.bibx26 bib1.bibx38" id="paren.15"/>.</p>
      <p id="d2e198">To retrieve wind vectors (<inline-formula><mml:math id="M3" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M4" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M5" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> components) from the radial velocities measured by the lidar, the lidar beam is moved through differing azimuth directions. At least three differing directions are required. One or more elevation angles are used for scans focused on wind profile retrievals. The change in the measured radial velocity with azimuth is then exploited to retrieve wind vectors using the established <italic>velocity azimuth display</italic> (VAD) <xref ref-type="bibr" rid="bib1.bibx11" id="paren.16"/> or <italic>volume velocity processing</italic> (VVP) methods <xref ref-type="bibr" rid="bib1.bibx59 bib1.bibx8" id="paren.17"/>. By performing the retrieval at multiple distances along the beam, corresponding to multiple heights, remotely sensed vertical profiles of the wind vector (i.e. wind profiles) up to multiple kilometres in height become available <xref ref-type="bibr" rid="bib1.bibx2 bib1.bibx32" id="paren.18"/>. In general, wind retrievals become more challenging under weak-signal conditions outside the planetary boundary layer <xref ref-type="bibr" rid="bib1.bibx2" id="paren.19"><named-content content-type="post">and references therein</named-content></xref>.</p>
      <p id="d2e243">Retrieving wind profiles from heterogeneous Doppler lidar data is not straightforward, since system setup and scan pattern vary depending on site characteristics and investigation aim <xref ref-type="bibr" rid="bib1.bibx54 bib1.bibx10 bib1.bibx39 bib1.bibx51" id="paren.20"/>. Besides the system heterogeneity discussed above, a multitude of scan patterns exist for wind profiling. Trade-offs between the different scan patterns include the speed of execution, the availability of the lidar signal, or the vertical resolution. An influential parameter determined by the choice of the scan pattern is the atmospheric volume probed by the lidar. The usage of multiple consecutive scans, corresponding to temporal aggregation, is also possible in wind profile retrievals.</p>
      <p id="d2e249">Both the probed volume and the aggregation time have a strong influence on retrieval accuracy due to the effect of atmospheric turbulence in the probed volume. As part of the retrieval, homogeneous flow is assumed within the volume probed by the lidar. Violations of this assumption result in retrieval error <xref ref-type="bibr" rid="bib1.bibx20" id="paren.21"/>, which becomes larger for shorter averaging times and scans at higher elevation angles, i.e. closer to the vertical <xref ref-type="bibr" rid="bib1.bibx41 bib1.bibx43" id="paren.22"/>. Additional factors can also induce an error in the retrieval:  reasons include but are not limited to individual lidar effects and system errors (e.g. an insufficient noise compensation), range ambiguity due to high pulse repetition frequency, and the influence of local conditions (e.g. topography, blocked sectors). While wind profile retrieval from Doppler lidar data has been state-of-the-art in recent decades, it is often conducted using instrument-, setup-, or even scan-specific software <xref ref-type="bibr" rid="bib1.bibx33" id="paren.23"/>. A common methodology and processing software tool is desirable to overcome complications when processing heterogeneous lidar data from multiple systems operated in variable setups. Additionally, comparability and traceability in wind profile processing are needed, especially if heterogeneous data from multiple systems are processed, e.g. for ingestion in data assimilation for numerical weather prediction models. Examples include the processing of Doppler lidar data from network setups, currently operated in research environments <xref ref-type="bibr" rid="bib1.bibx29 bib1.bibx58" id="paren.24"/> but likely also to be included in operational weather service networks in the near future <xref ref-type="bibr" rid="bib1.bibx27" id="paren.25"/>.</p>
      <p id="d2e267">To our knowledge, an open-source software tool able to process a broad range of heterogeneous Doppler lidar data and provide quality-controlled wind profile retrievals is missing up to date. Based on the need for reliable wind profile retrievals from heterogeneous Doppler lidar data, the present contribution presents the Atmospheric Profile Processing toolKIT (AtmoProKIT), a new modular wind profile retrieval software. The software allows for wind profile retrievals independent of the Doppler lidar type or scan pattern used. The processing architecture is designed in a modular way and conducts a chain of concatenated processing steps, which are arranged in calculation modules. This modular architecture allows for rapid user interaction without the need for coding in the standard configuration and is open to modifications. The user can configure the processing chain according to the individual needs and extend the chain with their own algorithms. The Python code is provided to the scientific community as open-source software (<uri>https://codebase.helmholtz.cloud/KIT-KIAOS/KITcube/AtmoProKIT</uri>, last access: 2 February 2026).</p>
      <p id="d2e274">The software architecture is designed to do the following: <list list-type="bullet"><list-item>
      <p id="d2e279">It handles heterogeneous data from different types of Doppler lidars with different data acquisition and scan settings without major configuration modifications. Retrieving wind profiles from heterogeneous Doppler lidar data is enabled by a common data format definition, described in Sect. <xref ref-type="sec" rid="Ch1.S2"/>.</p></list-item><list-item>
      <p id="d2e285">It enables wind profile retrievals in an easy-to-use and flexible way. To achieve this goal, the modular software architecture allows for easy user interaction and modification of the processing steps using so-called module chains, presented in Sect. <xref ref-type="sec" rid="Ch1.S3"/>.</p></list-item><list-item>
      <p id="d2e291">It provides quality-controlled and reproducible wind profile retrievals, ready for use in data assimilation and model evaluation. A standard configuration applicable to a variety of instruments and conditions is presented in Sect. <xref ref-type="sec" rid="Ch1.S4"/> and validated in Sect. <xref ref-type="sec" rid="Ch1.S5"/>.</p></list-item></list> With its flexibility, AtmoProKIT addresses users' need for Doppler lidar measurement processing from independent data sources and gives operators an opportunity for individual settings.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Enabling wind profile retrievals for heterogeneous Doppler lidar data</title>
      <p id="d2e307">To retrieve the 3D wind vector from Doppler lidar measurements, at least three radial velocity measurements from different, linearly independent directions are necessary. Radial velocity measurements in different directions are achieved by scanning, i.e. pointing the laser beam in differing directions. Vertically resolved wind profiles are obtained through the range-resolved measurement capabilities of lidars; i.e. the wind vector retrieval is performed at multiple altitudes using the respective radial velocity measurements.</p>
      <p id="d2e310">In principle, a number of scan patterns are suitable for wind profile retrievals. Generally, the laser beam can hold a fixed position at the individual measurement positions (step-and-stare mode) or move without stopping (continuous mode). For measurements in step-and-stare mode, the laser is positioned before the measurement starts. During the measurement, the beam direction is not changed. In contrast, in the continuous mode, the beam moves during the measurements. The step-and-stare mode allows for faster movements in between measurements and, therefore, faster repeat times. Additionally, the step-and-stare mode allows for longer signal accumulation in the individual directions, increasing the availability of the lidar signal. On the other hand, continuous scans provide a better angular resolution, which can yield additional information on turbulence <xref ref-type="bibr" rid="bib1.bibx50" id="paren.26"/> or the spatial variation of flow <xref ref-type="bibr" rid="bib1.bibx5 bib1.bibx44" id="paren.27"/>. The continuous-scan measurements represent the wind over the angular scan sector interval.</p>
      <p id="d2e319">Typical scan patterns are the following: <list list-type="bullet"><list-item>
      <p id="d2e324">step-and-stare measurements in orthogonal azimuth directions, also called <italic>Doppler beam swinging</italic> (DBS);</p></list-item><list-item>
      <p id="d2e331">arrangements of fixed-direction stares, e.g. the six-beam method <xref ref-type="bibr" rid="bib1.bibx47" id="paren.28"/>;</p></list-item><list-item>
      <p id="d2e338">azimuthal beam rotation at constant elevation, also called <italic>plan-position-indicator</italic> scans (PPIs);</p></list-item><list-item>
      <p id="d2e345">beam rotation in the elevation direction at constant azimuth, also called <italic>range–height indicator</italic> (RHI).</p></list-item></list></p>
      <p id="d2e351">A common pattern for the determination of wind profiles is the PPI scan pattern, from which wind profiles can be obtained using the so-called velocity azimuth display (VAD) technique <xref ref-type="bibr" rid="bib1.bibx11 bib1.bibx36" id="paren.29"/>. Operators also apply other scan patterns depending on the investigation interest, which may go beyond retrieving wind profiles <xref ref-type="bibr" rid="bib1.bibx47 bib1.bibx60 bib1.bibx50" id="paren.30"/>. With other patterns, interests such as a high temporal resolution (e.g. <xref ref-type="bibr" rid="bib1.bibx51" id="altparen.31"/>) or a high vertical resolution (RHI, PPI at low elevations) can be addressed. RHI scans allow for continuous measurements from high altitudes down to the ground, improving the vertical resolution <xref ref-type="bibr" rid="bib1.bibx44" id="paren.32"/>. To ensure sufficient measurements in linearly independent directions, additional measurements at differing azimuth angles are required, e.g. at least two RHI scans in differing directions. Combinations of multiple patterns or partial sector scans are also possible <xref ref-type="bibr" rid="bib1.bibx60 bib1.bibx61" id="paren.33"/>.</p>
      <p id="d2e370">The common base methodology for retrieving wind vectors is a least-squares fit of the radial velocity measurements. The required calculations are presented in detail in Appendix <xref ref-type="sec" rid="App1.Ch1.S3"/>. The calculations minimize the radial velocities' squared deviations from the estimated wind vector, based on an assumed homogeneous wind field in the volume probed by the lidar.</p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Minimizing the wind vector retrieval error requires maximized data availability</title>
      <p id="d2e382">The wind vector retrieval error is determined by three main factors: first, by the applicability of the homogeneous wind field assumed in the retrieval; second, by lidar measurement errors, e.g. due to random radial velocity fluctuations or beam-pointing errors; and third, by numerical errors during the calculation. If Doppler lidar measurements are compared to other instruments, sampling volume differences may introduce additional errors, which can be avoided in large-eddy-simulation-based simulator studies <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx41 bib1.bibx43 bib1.bibx21" id="paren.34"/>.</p>
      <p id="d2e388">The wind vector retrieval is subject to the assumption of a homogeneous wind field inside the scan volume explored by the radial velocity measurements. Deviations from the homogeneity assumption, e.g. due to turbulence or other atmospheric variability, introduce a retrieval error even without radial velocity measurement error <xref ref-type="bibr" rid="bib1.bibx7 bib1.bibx20 bib1.bibx41 bib1.bibx43" id="paren.35"/>. Both scan setup and aggregation time have a strong influence on retrieval error. Measurements at high elevation angles closer to the vertical result in a larger retrieval error <xref ref-type="bibr" rid="bib1.bibx52 bib1.bibx41" id="paren.36"/>, making the inclusion of scans at low elevation angles desirable. If appropriate scan elevation angles are used, retrieval errors due to turbulence typically become negligible within a <inline-formula><mml:math id="M6" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">10</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M7" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">30</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula> span, depending on atmospheric conditions, but do not vanish completely <xref ref-type="bibr" rid="bib1.bibx41 bib1.bibx43" id="paren.37"/>. Therefore, a trade-off between retrieval accuracy versus temporal resolution exists.</p>
      <p id="d2e422">In addition to the error introduced by the assumption of homogeneous flow, erroneous radial velocity measurements by the lidar will also introduce a retrieval error. Hence, distinguishing reliable from unreliable radial velocity measurements is a crucial challenge in the post-processing of Doppler lidar measurements. Filtering with the carrier-to-noise ratio (CNR) is a common method to improve the measurement reliability <xref ref-type="bibr" rid="bib1.bibx36 bib1.bibx40" id="paren.38"/>. Instead of the CNR, some instruments provide a signal-to-noise ratio (SNR) as a signal strength indicator, which can be used alternatively. In the following, only the term CNR is used. The CNR is system and measurement setup dependent and needs to be carefully characterized to determine the appropriate thresholds for reliable measurements <xref ref-type="bibr" rid="bib1.bibx37 bib1.bibx40" id="paren.39"/>. In general, stronger pulses and longer signal accumulation time (i.e. an increased number of lidar pulses) yield higher CNR. Higher CNR values provide more reliable radial velocity measurements, whereas for lower CNR the uncorrelated noise increases, making measurements less reliable <xref ref-type="bibr" rid="bib1.bibx45 bib1.bibx46 bib1.bibx35" id="paren.40"/>. If the CNR is too low, radial velocity measurements become random and, thus, uniformly distributed across the acquisition bandwidth in theory (i.e. white noise). In practice, suboptimal noise compensation and other effects may cause deviations from the uniform noise distribution, complicating the procedure to distinguish reliable from unreliable measurements <xref ref-type="bibr" rid="bib1.bibx30 bib1.bibx56 bib1.bibx40" id="paren.41"/>.</p>
      <p id="d2e437">For the purpose of wind profiling, on the one hand, reliable measurements may be available even at low CNR. On the other hand, measurements at high CNR may still be unreliable. Potential causes of erroneous measurements despite high CNR include second-trip echoes due to range ambiguity when using high pulse repetition frequencies <xref ref-type="bibr" rid="bib1.bibx36 bib1.bibx9" id="paren.42"/>, returns from flying objects or rain droplets, hard-target returns from terrain, and laser or data acquisition problems. As an undesired side effect of simple CNR threshold filters, many usable measurements are removed <xref ref-type="bibr" rid="bib1.bibx51 bib1.bibx40" id="paren.43"/>. Hence, more advanced filters have been introduced over time <xref ref-type="bibr" rid="bib1.bibx9 bib1.bibx51 bib1.bibx40" id="paren.44"/>. Advanced filter approaches aim at considering only reliable radial velocity measurements on the one hand, while ensuring  broad data availability on the other hand. In some approaches, a priori information on wind field coherence based on climatology is used <xref ref-type="bibr" rid="bib1.bibx2" id="paren.45"/>. The trade-off between radial velocity measurement quality versus availability depends on the individual use case and may also be laser and scan pattern dependent. There is a need for a flexible implementation of various radial velocity measurement filtering approaches for different lidar systems and operation scenarios.</p>
      <p id="d2e453">In principle, the least-squares fit of the radial velocities for wind vector retrieval is applicable to arbitrary scans. However, additional retrieval errors arise if the beam directions of the radial velocity measurements are not sufficiently distributed in space to ensure a reliable calculation of the resulting wind vector. In this case, the robustness and accuracy of the retrieved wind vector are not ensured <xref ref-type="bibr" rid="bib1.bibx8" id="paren.46"/>. The condition number (CN) is a measure of the robustness of the equation system with respect to errors in the input variables (i.e. the radial velocities). In this way, an increasing CN indicates a less reliable retrieval due to a less spatially distributed beam configuration. The reason for a high CN can be imbalanced signal return from different directions or an asymmetric scan pattern. Large CNs become an issue, particularly for reduced sector scans or scans close to the vertical axis <xref ref-type="bibr" rid="bib1.bibx60 bib1.bibx36" id="paren.47"/>. By considering measurements from multiple scans, the maximum available beam configuration can be utilized. Thereby, a more robust retrieval can be obtained, as long as a balanced scan is available; i.e. no direction is heavily overweighted in the measurements compared to the others.</p>
      <p id="d2e462">Overall, the issues of flow homogeneity assumption violation, radial velocity reliability, and beam configuration make it desirable to utilize the maximum number of measurements available for the retrieval. A high availability of measurements reduces the uncertainty in the wind vector resulting from single random errors.</p>
      <p id="d2e465">In the following, the number of measurements used for the retrieval is maximized through the definition of retrieval volumes. Within each retrieval volume, measurements are considered independent of their scan pattern origin. To enable the utilization of measurements from different scan patterns, a harmonized data format allows for ingestion of lidar data into the retrieval process independent of their origin.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Maximizing  data availability through the definition of a retrieval volume</title>
      <p id="d2e476">Typical scan patterns for the purpose of determining wind profiles include PPI and RHI scans or a combination of fixed-direction stares, e.g. in DBS. If the scans employ equal heights of the range gate centres (typically the case for DBS and PPI scans), the calculation of wind vectors at specific height levels can be aligned to the specific configuration. In Fig. <xref ref-type="fig" rid="F1"/>, the beams on the cone represent an eight-beam step-and-stare scan with five range gates. In this scan, each range gate centre is mapped to the same height above ground for all azimuth positions. In contrast, RHI scans include elevation angle changes and thereby do not sustain the height above ground in different beams. As an example, an 18-beam RHI scan is visualized in Fig. <xref ref-type="fig" rid="F1"/>. Retrieving wind vectors is not possible any more using range-gate-based retrievals.</p>
      <p id="d2e483">Maximizing the data availability requires, however, the consideration of all available radial velocity measurements, independent of the scan type or range gate settings. The issue of changing absolute range gate heights has been addressed previously by studies incorporating various scan patterns <xref ref-type="bibr" rid="bib1.bibx54 bib1.bibx10 bib1.bibx39" id="paren.48"/>. Similar problems arise if the lidar orientation is not stable or not aligned in a horizontal plane, as for lidars operated on ships or aircraft <xref ref-type="bibr" rid="bib1.bibx72 bib1.bibx21" id="paren.49"/>. In line with previous studies, changing absolute range gate heights are treated by binning the measurements with respect to the height above ground in this study. In this way, various lidar settings and scan patterns can be incorporated in the retrieval. Naturally, the bin size should be appropriate for the applied lidar setting and scan pattern. The bin size and spacing determine to which extent vertical gradients in the wind speed can be resolved. For very large vertical bins (several hundreds of metres), the level 1 dataset should be interpolated to the centre heights of the bins. In Fig. <xref ref-type="fig" rid="F1"/>, the height bins are highlighted with the same background colour. In this way, each measured radial velocity is associated with a height bin.</p>
      <p id="d2e498">In the following, the term <italic>retrieval volume</italic> describes one height bin during one temporal aggregation interval. Retrieval volumes can but need not be limited in their horizontal extent, i.e. the distance from the lidar. The definition of retrieval volumes enables the consideration of all measurements, independent of scan types or range gate settings.</p>

      <fig id="F1"><label>Figure 1</label><caption><p id="d2e507">Visualization of typical scan patterns employed for wind profile retrieval. The respective range gate centres of all beams on the cone are mapped to the same heights, as is typical for PPI and DBS scans. In contrast, the associated height of the range gate centres in RHI scans depends on the elevation angle, which is displayed on the plane. Retrieving the wind vector based on height bins enables the consideration of all measurements within the considered time period and, therefore, maximizes the data availability. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f01.png"/>

        </fig>

</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Level 1: a harmonized data format to enable maximized data availability</title>
      <p id="d2e524">Doppler lidars provide measurements in a device-specific data format (level 0). The intended applicability of the radial-velocity-based retrieval (Sect. <xref ref-type="sec" rid="Ch1.S3"/>) for various types of Doppler lidars and scan patterns requires a harmonized level 1 data format. A level 1 dataset supplies level 0 data for one requested instrument and a specified time span in a defined format, independent of the device-specific level 0 data format. Initially, level 0 data of the processed instrument are harmonized using a unified level 1 data structure, which serves as a common basis for the processing steps of the wind profile retrieval. The data are stored in dedicated level 1 files, each comprising the measurements of one instrument for 1 d.</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e531">Level 1 format for one Doppler lidar. Using the dimensions <italic>time</italic> and <italic>range gate index</italic> enables the representation of different scan types and different settings. Scan type A could be a PPI scan with six beam positions and seven range gates, scan type B a DBS scan with four range gates, and scan type C an RHI scan with four different elevations and six range gates.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f02.png"/>

        </fig>

<sec id="Ch1.S2.SS3.SSS1">
  <label>2.3.1</label><title>Level 1 data structure</title>
      <p id="d2e553">The level 1 data structure incorporates the typical netCDF format introduced by <xref ref-type="bibr" rid="bib1.bibx42" id="text.50"/>. It is widely used for observational data at level 0, although not all instruments provide netCDF files. In netCDF, variables are specified with dependence on dimensions. Multidimensional variables are an essential part of netCDF.</p>
      <p id="d2e563">Typical level 0 Doppler lidar measurements rely on the dimensions time and range. The time coordinate contains the timestamps of the measurements. The time coordinate of the level 1 dataset contains all timestamps from the respective level 0 files that are within the specified period, keeping the times provided by the instrument. The timestamp provided in the instrument-specific Doppler lidar output (level 0 files) does not necessarily present the centre of the accumulation time (e.g. for WLS200s it is the end of the accumulation time). In the case of long, non-negligible accumulation times, the timestamp should be converted when creating the level 1 dataset to represent the centre of the accumulation time. The range coordinate contains the distance of the range gate centres from the instrument. Typically, the centre of the range gate position is provided.</p>
      <p id="d2e574">For each time and range, radial velocity, CNR, and possibly more measurements are provided alongside azimuth and elevation positions. Building a harmonized level 1 dataset from such level 0 datasets could be achieved by concatenating level 0 datasets along the time dimension if the range dimension remains the same. However, different range gate settings for differently configured subsequent scans (see Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>) prevent simple concatenations of all measurements. Hence, a more general format is required.</p>
      <p id="d2e583">The wind retrieval software therefore uses the dimensions <italic>time</italic> and <italic>range gate index</italic> at level 1. Using the range gate index as a dimension is independent of the real ranges, which are instead stored as a variable depending on <italic>time</italic> and <italic>range gate index</italic>. The redundancy of storing range as a function of scan type and range gate index for every time step is necessary to enable the concatenation of scans with different range gate lengths or a different number of range gates. The scan type with the highest number of range gates determines the overall size of the range gate index dimension. Unused ranges are filled with NaN in cases where a scan type uses fewer than the maximum number of range gates. Mandatory variables (associated dimensions in brackets) are <italic>time</italic> (<italic>time</italic>), <italic>azimuth</italic> (<italic>time</italic>), <italic>elevation</italic> (<italic>time</italic>), <italic>radial velocity</italic> (<italic>time</italic>, <italic>range gate index</italic>), <italic>CNR</italic> (<italic>time</italic>, <italic>range gate index</italic>), and <italic>range</italic> (<italic>time</italic>, <italic>range gate index</italic>). For scans in continuous mode, the average angles should be used. The SNR can be used instead of the CNR.</p>
      <p id="d2e651">The level 1 format is not limited to the introduced variables. Further variables, such as the Doppler spectrum width (depending on <italic>time</italic> and <italic>range gate index</italic>), aerosol backscatter (depending on <italic>time</italic> and <italic>range gate index</italic>), inclination angles (depending on <italic>time</italic>), or others, can be added.</p>
</sec>
<sec id="Ch1.S2.SS3.SSS2">
  <label>2.3.2</label><title>Exemplary representation of different scan types</title>
      <p id="d2e683">Figure <xref ref-type="fig" rid="F2"/> visualizes the level 1 data format. The associated Doppler lidar conducts the scan types A, B, and C in a loop. In the <italic>time</italic> dimension, the format follows the lidar data acquisition timestamp. In the <italic>range gate index</italic> dimension, scan type A has the largest number of range gates and determines the size.</p>
      <p id="d2e698">Scan type A comprises six laser beam positions and seven range gates. For each position, the corresponding timestamp, the azimuth angle, and the elevation angle are stored. The 2D variables <italic>radial velocity</italic>, <italic>CNR</italic>, and <italic>range</italic> have the shape of an array for each timestamp. Scan type B comprises only five beam positions and four range gates. Additionally, the <italic>range</italic> variable may change for different timestamps in scan type B, since the range gate length and spacing of the vertical beam are typically different for DBS. Scan type C comprises six range gates and four beam positions. While the <italic>range</italic> variable is typically constant within an RHI scan, the absolute height of each measurement has to be calculated using the variables <italic>elevation</italic> and <italic>range</italic> (see Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>).</p>
</sec>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Wind profile retrieval (level 1 to level 2)</title>
      <p id="d2e744">This section describes the wind profile retrieval processing. Wind vectors are calculated based on the harmonized level 1 radial velocity measurements (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>), which serve as input data. Level 2 data represent wind vectors per time and height aggregation bin (i.e. the wind profiles when looking at all heights), as detailed in Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>. A new modular software architecture enables a flexible adaptation of the processing steps based on the individual conditions and user needs.</p>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Level 2 data format</title>
      <p id="d2e762">Level 2 wind vectors are represented by the wind vector direction components <italic>u</italic>, <italic>v</italic>, and <italic>w</italic>. One wind vector is calculated per bin of time and height, also termed retrieval volume. Therefore, the level 2 dimensions are <italic>time</italic> and <italic>height</italic>. Additionally, the <italic>nv</italic> dimension is used to specify the lower and upper bin bounds for both coordinates according to the CF metadata conventions <xref ref-type="bibr" rid="bib1.bibx15" id="paren.51"/>. Figure <xref ref-type="fig" rid="F3"/> shows a visualization of the level 2 data format. The dimensions are <italic>time</italic>, <italic>height</italic>, and <italic>nv</italic>. Besides the coordinate variables <italic>time</italic> and <italic>height</italic>, the boundary variables <italic>time_bnds</italic> and <italic>height_bnds</italic> are mandatory. The temporal and vertical resolution is specified by the user in the settings (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>).</p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e824">Level 2 format for one Doppler lidar. The coordinates are <italic>time</italic> and <italic>height</italic>. The variables <inline-formula><mml:math id="M8" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M9" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M10" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> describe the resulting wind vectors in the associated direction components.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f03.png"/>

        </fig>

</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Modular software architecture for flexible wind profile retrievals</title>
      <p id="d2e868">A software architecture capable of processing measurements from various systems benefits from flexibility in the processing algorithm to adapt to individual user needs or special application cases (Sect. <xref ref-type="sec" rid="Ch1.S1"/>).</p>
      <p id="d2e873">Hence, the software is split into modules, which each perform specific processing tasks. Each module performs a small, self-contained part of the overall processing. The desired processing of level 1 radial velocities to level 2 wind vectors is conducted through the combination of modules, which are specified in a module chain. The modular architecture enables fast reconfigurations of the processing chain, as well as extensions by other modules. New developments will be added to the code repository in the future.</p>
<sec id="Ch1.S3.SS2.SSS1">
  <label>3.2.1</label><title>Module chain description</title>
      <p id="d2e891">The level 1 dataset (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>) and an empty level 2 dataset form the initial input for the module chain. Each calculation module receives both the level 1 dataset and the level 2 dataset as inputs. The calculations performed inside a module consider a set of specified variables from one or both levels. After a module's calculations are completed, the results are added as variables to the corresponding level 1/level 2 dataset or replace existing variables. Both datasets are returned, replace the originally received datasets, and serve as input for the next module in the chain. In cases where a dataset has not changed, the respective input dataset remains unchanged.</p>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e922">Schematic module chain configuration. The level 1 and the level 2 dataset can be changed by the modules according to the specified variable flow. The modules are executed sequentially and consider the calculated results of the respective predecessor module. The solid lines indicate the datasets' information flow. Datasets to be replaced are displayed with dotted lines.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f04.png"/>

          </fig>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e941">Exemplary module chain for a simple retrieval with CNR threshold filtering and netCDF export. For each module, considered input variables and written output variables are given by the inset boxes (<italic>l1 in</italic>, <italic>l1 out</italic>, <italic>l2 in</italic>, <italic>l2 out</italic>). The annotations outside the module boxes indicate the data contained in the level 1 and level 2 dataset. Coordinate variables (<italic>time</italic> (l1, l2), <italic>range gate index</italic> (l1), <italic>height</italic> (l2)) are not indicated. </p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f05.png"/>

          </fig>

      <p id="d2e981">Figure <xref ref-type="fig" rid="F4"/> shows a schematic module chain arrangement. Calculation modules include algorithms for retrieving wind vectors, indicating non-reliable measurements (e.g. based on CNR or CN values) and applying filters (e.g. level 1 data flagging of azimuth or elevation ranges), but can also include algorithms to indicate specific conditions. In addition to calculation modules, export modules can  also be integrated in a module chain. Export modules export variables, e.g. as files or visualizations, but do not change the dataset itself. Required input and available output variables are specified for each module. The arrangement of the modules can follow individual needs. The modules can be arranged in an arbitrary order, as long as the necessary input variables are available in the dataset. Modules can also be used multiple times in the same module chain.</p>
      <p id="d2e990">An exemplary module chain for a wind profile retrieval with a simple CNR filter is provided in Fig. <xref ref-type="fig" rid="F5"/>, and the corresponding module chain file is shown in Appendix <xref ref-type="sec" rid="App1.Ch1.S1.SS1"/>. The level 1 dataset initially contains the variables received from the instrument, which are <italic>CNR</italic>, <italic>range</italic>, and <italic>radial_velocity</italic>. The level 2 dataset is initially empty and contains only the level 2 bin bounds according to the selected bin specification. Coordinates (<italic>time</italic>, <italic>range gate index</italic> for level 1; <italic>time</italic>, <italic>height</italic> for level 2) describing the dataset are also contained but not visualized. Both datasets are fed into the <italic>Flag_variable_limits_l1</italic> module, which uses the <italic>CNR</italic> variable and adds the variable <italic>validity_probability</italic> to the level 1 dataset. The <italic>validity_probability</italic> variable contains an acceptance (1.0) or rejection (0.0) value for each bin according to a user-defined threshold. The level 1 input variable <italic>CNR</italic> and the level 1 output variable <italic>validity_probability</italic> are renamings of the default variable names for the use of the <italic>Flag_variable_limits_l1</italic> module as a CNR filter (for details, see Appendix <xref ref-type="sec" rid="App1.Ch1.S1.SS1"/>).</p>
      <p id="d2e1077">The second module (<italic>Bin_retrieve_uvw</italic>) calculates the level 2 wind vectors based on the level 1 variables <italic>validity_probability</italic>, <italic>radial_velocity</italic>, <italic>range</italic>, <italic>azimuth</italic>, and <italic>elevation</italic>. The resulting wind vectors for each bin (<italic>u</italic>, <italic>v</italic>, <italic>w</italic>) and ancillary variables are added to the level 2 dataset. The level 1 dataset is returned without changes. Finally, the <italic>NetCDF_l2</italic> export module writes the level 2 dataset into a netCDF file.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e1135">Module chain with a loop module. The calculation modules F, G, and H are integrated in the for-loop module which causes the repeated execution of the hierarchically integrated modules.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f06.png"/>

          </fig>

</sec>
<sec id="Ch1.S3.SS2.SSS2">
  <label>3.2.2</label><title>Loops in module chains</title>
      <p id="d2e1152">Further modules are loop modules, which enable a repetition of modules. Modules that should be repeated in a loop are hierarchically integrated in the loop modules. In Fig. <xref ref-type="fig" rid="F6"/>, a for-loop module is executed after the calculation modules A and B. It contains the modules F, G, and H, which are executed multiple times in a for-loop. The number of iterations is specified in the module chain file. Additionally, a while-loop module is available, which repeats the loop as long as a condition regarding a specified level 2 variable is met. It is possible to create hierarchical configurations with loop modules within a loop module.</p>
</sec>
<sec id="Ch1.S3.SS2.SSS3">
  <label>3.2.3</label><title>Module parametrization and variable renaming</title>
      <p id="d2e1170">The introduced modular retrieval configuration enables the user to arrange the calculation modules according to individual needs. Sophisticated retrievals could require an individual parametrization of the modules, depending on their position in the module chain. Therefore, an alias name has to be given to each module in a module chain. This ensures the possibility of individual module parametrization, even if the same module is contained multiple times in a module chain (see module A in Fig. <xref ref-type="fig" rid="F4"/>).</p>
      <p id="d2e1175">Furthermore, a module arrangement can require changes to input/output variable names of modules to enable e.g. bifurcations in the processing. Renaming the default input and output variables of a module prevents the replacement of a variable by this module in the case that it is already contained in the dataset. Therefore, renaming of the variables can be specified in the module chain. This renaming and the arrangement of the modules in the module chain determine the variable flow.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Retrieval configuration</title>
      <p id="d2e1188">The software is executed with Python. However, for  easy usability, the configuration of the module chain and settings occurs in two plain-text files. The module chain file (*.mc) contains the arrangement of the modules. The settings file (*.ini) contains the level 2 vertical and temporal resolution, directory paths, and processing parameters. A settings file for a configuration of the simple module chain (Fig. <xref ref-type="fig" rid="F5"/>) is given in Appendix <xref ref-type="sec" rid="App1.Ch1.S1.SS2.SSS1"/>.</p>
      <p id="d2e1199">The software architecture is designed for application cases with three types of users: (1) users without programming experience with a need for straightforward Doppler lidar wind profile retrievals, (2) users with a need for detailed configurations for special circumstances or instrument conditions, and (3) methodology developers. Hence, the software architecture provides several optional configuration and extension possibilities. <list list-type="order"><list-item>
      <p id="d2e1204">Users with the need for straightforward Doppler lidar wind profile retrievals can resort to the standard module chain and settings for common application cases described in Sect. <xref ref-type="sec" rid="Ch1.S4"/>. The performance of this standard configuration is validated in Sect. <xref ref-type="sec" rid="Ch1.S5"/>. The user has to provide the level 1 dataset and select the instrument and the time span to be processed. The required information can be provided in an interactive dialogue or, alternatively, as command line arguments (for bash scripts). Common Doppler lidar types (WTX, WLS200s, StreamLine) are already included in the settings file; others can be added through supplying CNR acceptance thresholds for the respective device type. Except for minor adaptations such as setting import and export directories, no changes are required to the provided settings file. Instructions are given in the readme file in the code repository. An example dataset which can be processed is provided as part of this publication (<ext-link xlink:href="https://doi.org/10.35097/xzwdzqjfyuajc0ce" ext-link-type="DOI">10.35097/xzwdzqjfyuajc0ce</ext-link>, <xref ref-type="bibr" rid="bib1.bibx16" id="altparen.52"/>).</p></list-item><list-item>
      <p id="d2e1223">Users with the need for specific configurations can change the configuration in the module chain file and in the settings file. The JSON-formatted module chain representation allows for adding or omitting modules (see Appendix <xref ref-type="sec" rid="App1.Ch1.S1.SS1"/>). Renaming the input and output variables of a module enables the user to specify the desired variable flow. By supplying module alias names, it is possible to execute the same module multiple times with individual parameter settings on each execution (see module A in Fig. <xref ref-type="fig" rid="F4"/>). Detailed descriptions of the available modules and configuration instructions for users with modification purposes are available in the readme file and in the manual.</p></list-item><list-item>
      <p id="d2e1231">Developers can insert their own modules. Abstract base classes are available for calculation and export modules and ensure  interoperability with the other modules. A developer has to implement the mandatory abstract methods, such as providing information on the required and generated variables. The algorithm has to be inserted in a calculation module, which receives the current level 1 and level 2 datasets as arguments. After the conduction of the algorithm, the revised level 1 and level 2 datasets have to be returned. Instructions for developers can be found in the manual.</p></list-item></list>
</p>
</sec>
<sec id="Ch1.S3.SS4">
  <label>3.4</label><title>Program execution</title>
      <p id="d2e1260">After the user has completed the configuration of the module chain and settings, the program can be started by executing <monospace>python AtmoProKIT.py</monospace>.</p>
      <p id="d2e1266">The selection of module chain, settings, instrument, and the time span which should be processed can be supplied by the user interactively or using a bash script. Level 1 input data are requested by the program based on the desired level 2 time span. As modules could require an extended time span to also take  previous and subsequent times into consideration, the resulting required level 1 time span is calculated by requesting the required input time span for a given result time span for each module in inverse order. The corresponding method is implemented for each module and returns the required input time span for the requested time span, which is required for the successive module. Loop iterations have to be considered in the time span calculation. To avoid infinite required time spans, a maximum number of iterations has to be specified for while-loops, which is considered for the determination of the required time span. The finally resulting time span is requested from the level 1 data source. The received level 1 time span together with an empty level 2 dataset serves as initial input for the execution of the module chain. Finally, all modules are executed according to the module chain in the given order.</p>
</sec>
<sec id="Ch1.S3.SS5">
  <label>3.5</label><title> Tool interoperability and processing traceability</title>
      <p id="d2e1297">The retrieval software needs level 1 datasets as input (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>) and provides level 2 datasets, containing the wind profiles, as output. To ensure  broad interoperability with other tools, netCDF <xref ref-type="bibr" rid="bib1.bibx42" id="paren.53"/> is supported for level 1 import and level 2 export. For easy handling within Python, xarray, introduced by <xref ref-type="bibr" rid="bib1.bibx25" id="text.54"/>, is used as the data type to represent the level 1 and the level 2 datasets internally. Xarray uses a data representation similar to netCDF and enables simple conversion from and into netCDF and NumPy arrays. Using NumPy arrays enables significant speedup through vectorized operations <xref ref-type="bibr" rid="bib1.bibx57" id="paren.55"/>. Level 1 data can be provided as netCDF files, each comprising the measurements of one instrument for 1 d. The provided level 1 files need to contain all variables required for the further processing. Through the netCDF format,  pre-processing of level 1 files with other software tools is also possible. The direct integration of formats other than netCDF for level 1 import requires the implementation of an import module, which creates the required xarray dataset.</p>
      <p id="d2e1349">Besides tool interoperability, which is ensured through using netCDF, traceability of the processing is important. The CF conventions require an audit trail for data modifications <xref ref-type="bibr" rid="bib1.bibx15" id="paren.56"/>. Due to the flexibility of a module chain, adding the tool name to the metadata would not ensure  sufficient traceability. Therefore, the level 2 dataset also contains the conduction history of the data-modifying calculation modules, including the parameter values. Each module execution is added, also within loops. After the netCDF export, the module chain execution history is available as an attribute in the exported netCDF file. This documentation ensures the reproducibility of the conducted processing steps.</p>
</sec>
<sec id="Ch1.S3.SS6">
  <label>3.6</label><title>Results of a simple module chain retrieval with CNR filtering</title>
      <p id="d2e1367">A simple wind profile retrieval using a fixed CNR threshold filter (module <italic>Flag_variable_limits_l1</italic>) and a common wind vector retrieval method, considering the robustness of the retrieved vectors and iteratively removing outliers (module <italic>Bin_retrieve_uvw</italic>), can be implemented in the new architecture using the module chain shown in Fig. <xref ref-type="fig" rid="F5"/>. This module chain comprises the established mechanisms for wind vector retrievals and serves as a basis for further refinement in Sect. <xref ref-type="sec" rid="Ch1.S4"/>. Even though the <italic>Bin_retrieve_uvw</italic> module applies an iterative mechanism to remove unreliable measurements during the wind vector estimation, the initial CNR filter has the greatest influence on the data availability and quality.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e1385">Wind profiles retrieved from a WLS200s Doppler lidar <bold>(a–c)</bold> and the associated median CNR per bin <bold>(d)</bold>. The results are obtained using a CNR-thresholded retrieval considering radial velocity measurements with a CNR of at least <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">25</mml:mn></mml:mrow></mml:math></inline-formula> dB. Heavy precipitation caused a reduced range at around 20:00 UTC, and the gap at 21:40 UTC is caused by instrument failure. The retrieval is obtained from DBS and RHI scans conducted at Fischerbach (Germany) on 11  July 2023. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f07.png"/>

        </fig>

      <p id="d2e1410">Figure <xref ref-type="fig" rid="F7"/>a–c show the resulting wind profiles of the simple module chain exemplary for 1 d, with a bin resolution of <inline-formula><mml:math id="M12" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">10</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula> temporally and <inline-formula><mml:math id="M13" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">100</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> vertically. The associated CNR levels are shown in Fig. <xref ref-type="fig" rid="F7"/>d. On the one hand, the CNR threshold of <inline-formula><mml:math id="M14" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>25 dB applied in this example serves as a reliable threshold for the WLS200s system used; i.e. there are no obvious retrieval outliers present. Outliers due to individual erroneous radial velocity measurements are prevented by the iterative removal of measurements with more than 3 <inline-formula><mml:math id="M15" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> residual in the least-squares wind vector fit of the radial velocities used in the retrieval process. On the other hand, the data availability provided by this simple wind profile retrieval is limited. The CNR values indicate a low but possibly usable signal in areas where no wind vector retrieval is available due to the conservative CNR filter applied.</p>
      <p id="d2e1465">Selecting a lower CNR threshold of  <inline-formula><mml:math id="M16" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>30 dB exploits these regions, but some of the additionally retrieved wind vectors are erroneous despite the iterative outlier removal, as indicated by outliers in the retrieved wind vectors (Fig. <xref ref-type="fig" rid="FE1"/>). The share of erroneous wind vectors might be acceptable for visual evaluations. However, trustworthy wind vectors are essential in the case of automated processing in subsequent evaluations or data assimilation. Hence, an extended module chain for common conditions with more sophisticated processing is introduced in Sect. <xref ref-type="sec" rid="Ch1.S4"/> and validated in Sect. <xref ref-type="sec" rid="Ch1.S5"/>.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Extended standard module chain for common conditions</title>
      <p id="d2e1490">This section presents an extended module chain suitable for common application cases. The so-called <italic>standard module chain</italic> allows wind profile retrieval without expert methodological knowledge on the wind profile retrieval process. The standard module chain is designed to provide a high availability of retrieved level 2 wind vectors while also maintaining a high retrieval quality. The standard module chain is provided as an easy-to-use starting point for wind profile calculations (user type 1, Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>). For specific applications or problems, the software allows for user modification, e.g. by creating specialized module chains (user types 2 and 3, Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>).</p>
      <p id="d2e1504">The module chain and settings file of the standard module chain, suitable for various Doppler lidar systems and typical application cases, are provided in the code repository. The modules are arranged in the module chain configuration listed in Table <xref ref-type="table" rid="T1"/>. The corresponding variable flow is given in Table <xref ref-type="table" rid="TB1"/>. This standard module chain configuration is suitable for mixtures of different scans to maximize the number of measurements used (see Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>).</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e1516">Standard module chain for common conditions. Modules 7.1 to 7.5 are calculated in three iterations within the for-loop (module 7).</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">No.</oasis:entry>
         <oasis:entry colname="col2">Module</oasis:entry>
         <oasis:entry colname="col3">Module type</oasis:entry>
         <oasis:entry colname="col4">Description</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">Flag_elevation_limits_l1</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">l1 elevation angle filter</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">Flag_horizontal_distance_limit_l1</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">l1 maximum horizontal distance from lidar filter</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">3</oasis:entry>
         <oasis:entry colname="col2">Multiply_variables</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">l1 consideration (results from modules 1 and 2)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">4</oasis:entry>
         <oasis:entry colname="col2">Flag_variable_limits_l1</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">conservative l1 CNR filter</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">5</oasis:entry>
         <oasis:entry colname="col2">Flag_variable_limits_l1</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">weak l1 CNR filter</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">6</oasis:entry>
         <oasis:entry colname="col2">Bin_retrieve_uvw</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">uvw retrieval on time and height bins</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7</oasis:entry>
         <oasis:entry colname="col2">For_loop</oasis:entry>
         <oasis:entry colname="col3">for-loop</oasis:entry>
         <oasis:entry colname="col4">3 iterations</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7.1</oasis:entry>
         <oasis:entry colname="col2">Median_filter_l2</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">l2 median filter</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7.2</oasis:entry>
         <oasis:entry colname="col2">Extrapolation_uvw_l2</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">l2 NaN filling extrapolation</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7.3</oasis:entry>
         <oasis:entry colname="col2">Flag_Vr_using_uvw_l2_to_l1</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">l1 filter accepting data within the l1 background tolerance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7.4</oasis:entry>
         <oasis:entry colname="col2">Multiply_variables</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">l1 filter combination (results from modules 7.3 and 5)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7.5</oasis:entry>
         <oasis:entry colname="col2">Bin_retrieve_uvw</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">uvw retrieval on time and height bins</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">8</oasis:entry>
         <oasis:entry colname="col2">Bin_statistics_l1_to_l2</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">provide CNR and Doppler spectrum width information to l2</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">9</oasis:entry>
         <oasis:entry colname="col2">Set_quality_flags_qu_qv_qw_l2</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">set quality flags if the retrieved wind vector is not NaN</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">10</oasis:entry>
         <oasis:entry colname="col2">Get_ff_dd_from_uv_l2</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">calculate horizontal wind speed and direction</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">11</oasis:entry>
         <oasis:entry colname="col2">Plot_universal</oasis:entry>
         <oasis:entry colname="col3">export</oasis:entry>
         <oasis:entry colname="col4">plot quicklooks</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">12</oasis:entry>
         <oasis:entry colname="col2">Remove_variables</oasis:entry>
         <oasis:entry colname="col3">calculation</oasis:entry>
         <oasis:entry colname="col4">remove ancillary l2 variables</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">13</oasis:entry>
         <oasis:entry colname="col2">NetCDF_l2</oasis:entry>
         <oasis:entry colname="col3">export</oasis:entry>
         <oasis:entry colname="col4">save l2 netCDF file</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Functional description of the standard module chain</title>
      <p id="d2e1849">At the beginning, the standard module chain conducts an initial level 2 wind profile retrieval solely based on high-quality level 1 data, which is controlled through an initial (instrument-dependent) conservative CNR filter threshold. Despite the conservative CNR threshold, not all measurements, and thus retrievals, may be reliable (see Sect. <xref ref-type="sec" rid="Ch1.S2"/>). Therefore, the wind profiles resulting from the initial level 2 retrieval are further controlled using a 2D median filter, before interpolating into a so-called <italic>confidence background</italic>. Based on the filtered and interpolated level 2 confidence background, the expected level 1 radial velocity measurements are calculated. Trustworthy level 1 data with lower CNR values are then included if the radial velocity is within a maximum acceptable radial velocity deviation tolerance. Repeating the procedure in an iterative procedure refines and extends the available level 2 data. Finally, post-processing and data export are conducted.</p>
      <p id="d2e1886">The following paragraphs provide a description of the processing procedures and the reasoning implemented in the standard module chain. The processing parameters and thresholds contained in the modules are described. Parameters of the standard module chain, e.g. for thresholds, can be easily modified by the users in the settings file (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>) if needed. An overview of the default parameters used in the settings file for the standard module chain is available in Table <xref ref-type="table" rid="TA1"/>.</p>
<sec id="Ch1.S4.SS1.SSS1">
  <label>4.1.1</label><title>Principal level 1 filtering: consideration of measurements</title>
      <p id="d2e1905">During the initial level 1 elevation filtering (module 1), measurements are excluded to avoid sampling biases or less robust beam constellations (see Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>). For example, for low retrieval height bins and low elevation angles, numerous radial velocity measurements are mapped to the same height bin (see Fig. <xref ref-type="fig" rid="F1"/>). Thereby, an imbalance between a high number of low-elevation (near-surface) measurements and a low number of measurements with higher elevation angles can be created. Such an imbalance negatively impacts the vertical wind velocity calculation and is, therefore, undesirable. Hence, very low scan elevations (default: below 15°) are excluded from the calculations by module 1. Module 2 limits the horizontal (not along-beam) distance for which radial velocity measurements are considered (the default value is 3 km) to reduce the impact of inhomogeneities in the far surroundings. The measurements to be considered in principle are labelled by module 3, which combines the consideration flags (0 or 1) of modules 1 and 2 by multiplication. In the further processing, level 1 measurements are only considered if the consideration flag is 1.</p>
</sec>
<sec id="Ch1.S4.SS1.SSS2">
  <label>4.1.2</label><title>Initial wind profile retrieval and initial quality assessment</title>
      <p id="d2e1928">To obtain a reliable initial wind profile, a conservative CNR filter is applied in module 4. It adds a validity flag, indicating the CNR acceptance threshold is exceeded, for each level 1 measurement to the level 1 dataset. Suitable conservative CNR thresholds can vary depending on the instrument, scan setup, and environment <xref ref-type="bibr" rid="bib1.bibx40" id="paren.57"/>. A determination of suitable thresholds is possible with radial velocity vs. CNR histograms. The procedure utilized here is also explained in detail by <xref ref-type="bibr" rid="bib1.bibx72" id="text.58"/>.</p>

      <fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e1948">Occurrence of radial velocities for different CNR values for WLS200s at Payerne <bold>(a)</bold>, WTX at Villingen-Schwenningen <bold>(b)</bold>, and StreamLine XR+ at Neumayer Station <bold>(c)</bold>. All radial velocities are summed up in bins of 0.1 dB and 0.1 <inline-formula><mml:math id="M17" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> between June and August 2023 for <bold>(a)</bold> and <bold>(b)</bold> and between 3 January  and 26  November 2024 for <bold>(c)</bold>. The selected conservative CNR thresholds are marked by dotted lines, and the weak thresholds are indicated with dashed lines.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f08.png"/>

          </fig>

      <p id="d2e1993">Figure <xref ref-type="fig" rid="F8"/> shows the radial velocity vs. CNR histogram for radial velocities measured with three types of Doppler lidars. For symmetrical scans, a distribution with a peak around <inline-formula><mml:math id="M18" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">0</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> can be expected from valid measurements. Below an instrument-specific CNR level, noise starts to occur. Noise manifests as radial velocity measurements distributed randomly across the acquisition spectrum. Thus, the histogram indicates a broadened occurrence probability for all radial velocities. The conservative CNR threshold (dotted line) should be located in a region with low random radial velocity noise and few outliers. For the WLS200s (Fig. <xref ref-type="fig" rid="F8"/>a), noise begins to occur below <inline-formula><mml:math id="M19" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>25 dB, indicated by the broadening of the distribution. Thus, measurements with a CNR above <inline-formula><mml:math id="M20" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>25 dB are the most reliable. Therefore, the conservative default threshold for WLS200s is set to <inline-formula><mml:math id="M21" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>25 dB. For the WindTracer WTX and StreamLine XR+, the conservative default thresholds are set to <inline-formula><mml:math id="M22" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>5 and <inline-formula><mml:math id="M23" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>22 dB, respectively.</p>
      <p id="d2e2057">Issues detectable in the radial velocity vs. CNR histograms can be connected to the single instrument, the settings, or local circumstances and cannot generally be attributed to the respective Doppler lidar type. For example, the peak at <inline-formula><mml:math id="M24" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M25" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in Fig. <xref ref-type="fig" rid="F8"/>c is an unexpected issue, which is further discussed in Appendix <xref ref-type="sec" rid="App1.Ch1.S4"/>.</p>
      <p id="d2e2088">Reliable radial velocity measurements can also be available below the conservative thresholds <xref ref-type="bibr" rid="bib1.bibx36 bib1.bibx72 bib1.bibx51 bib1.bibx40" id="paren.59"/>. To mark measurements with reduced probability of validity, a second, weak CNR threshold is introduced by module 5. This lower (weak) threshold should be set in the region where radial velocities for CNR begin to appear as equally distributed. The default thresholds for this weak CNR filter are <inline-formula><mml:math id="M26" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>30 dB for WLS200s and StreamLine XR+ and <inline-formula><mml:math id="M27" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>12 dB for the WindTracer WTX. Users can define individual thresholds that are suitable for the noise characteristics of their instruments by configuring the retrieval (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>).</p>
      <p id="d2e2110">Wind vectors are then retrieved in module 6. The least-squares fit of the wind vector is calculated for each bin (see Appendix <xref ref-type="sec" rid="App1.Ch1.S3"/>) by considering the level 1 radial velocity measurements where both the consideration flag and the validity probability are 1. If level 1 measurements deviate too much from the fit, they are removed, and the wind vector calculation is repeated without them. The default accepted deviation tolerance is <inline-formula><mml:math id="M28" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula><inline-formula><mml:math id="M29" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">3</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. The retrieval procedure is repeated iteratively until all remaining measurements are within the accepted tolerance or an insufficient number remains and the wind vector is rejected.</p>
      <p id="d2e2150">To achieve resilient wind vectors, the retrieval quality is assessed, and the retrieved wind vector is rejected if one of the quality indicator conditions is violated. The quality indicators are the CN (default threshold: 8), the volume enclosed in the convex hull spanned by the unit vectors originating at (<inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) in the laser beam directions (default threshold: 0.042, corresponding to about <inline-formula><mml:math id="M31" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">2</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">%</mml:mi></mml:mrow></mml:math></inline-formula> of the unit hemisphere explored), the absolute number of measurements (default threshold: 12), and the share of measurements that contributed to the least-squares fit (default threshold: 0.2) in relation to all considered measurements (see module 3). The CN indicates if the laser beam dispersion is sufficient (see Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>). For unbalanced scan patterns (e.g. an overwhelming majority of vertical stares alternating with few PPI/DBS measurements), the CN may be high, yet wind profile retrieval may be possible due to the PPI/DBS measurements. The enclosed volume threshold allows for inclusion of such unbalanced scans despite a high CN. The absolute number of measurements prevents retrievals based on very few measurements, where a few erroneous measurements can have a strong influence. The relative number of measurements prevents retrievals in conditions where random noise is the dominant signal.</p>
      <p id="d2e2182">Up to this point, the module chain is the simple module chain (discussed in Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>), extended by the principal level 1 filtering. The further steps improve the data basis considered for wind vector retrieval to also enable retrievals in regions with low CNR values.</p>
</sec>
<sec id="Ch1.S4.SS1.SSS3">
  <label>4.1.3</label><title>Lower CNR acceptance threshold based on a confidence background</title>
      <p id="d2e2200">CNR values provide a first-order indication of data quality. However, even at low CNR, reliable measurements may be available in some circumstances, depending on atmospheric and lidar system conditions (Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>).</p>
      <p id="d2e2205">To extend the availability of retrieved wind vectors at level 2, measurements with lower CNR should also be considered if they are trustworthy. Therefore, a level 2 (<inline-formula><mml:math id="M32" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M33" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M34" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula>) wind profile confidence background is calculated based on the initially retrieved level 2 wind profiles. Since a high reliability of the confidence background is crucial, the initially retrieved wind profiles are filtered with a median filter (default: three time bins, five height bins, i.e. depending on the selected resolution) in module 7.1 to remove potentially remaining outliers. Subsequently, the confidence background is extrapolated in module 7.2. Gaps are filled with a smooth image restoration inpainting method (<uri>https://scikit-image.org/docs/stable/api/skimage.restoration.html#skimage.restoration.inpaint_biharmonic</uri>, last access: 16  April 2025), which fills gaps seamlessly using biharmonic functions <xref ref-type="bibr" rid="bib1.bibx13 bib1.bibx12" id="paren.60"/>. The weighting of time against height can be specified by the user. In the default configuration, 1 h and 1 km are weighted equally. In Fig. <xref ref-type="fig" rid="F9"/>, the extrapolated confidence background is displayed for the same setting as in Fig. <xref ref-type="fig" rid="F7"/>. In the default configuration, the extrapolation is limited to 1 km and 1 h.</p>
      <p id="d2e2253">Based on the level 2 wind profile confidence background, the expected level 1 radial velocity is calculated for every measurement. Level 1 radial velocities which are within a tolerance (default: <inline-formula><mml:math id="M35" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula>3 <inline-formula><mml:math id="M36" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) of the radial velocity expected from the confidence background are considered (7.3), also below the conservative CNR threshold, as long as the CNR is above the weak threshold indicated by module 5. Thereby, the level 1 data basis is extended with quality-controlled radial velocity measurements exhibiting a lower CNR.</p>
      <p id="d2e2293">Module 7.5 performs the wind vector retrieval again but takes all measurements accepted by modules 7.3 and 5 into account. The increase in the level 1 data availability resulting from more accepted measurements results in a larger availability of retrieved wind vectors at level 2.</p>

      <fig id="F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e2307">Wind profile confidence background. The confidence background is calculated based on the initially retrieved wind profiles using an additional median filter and subsequent extrapolation, limited to <inline-formula><mml:math id="M37" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">1</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula> vertically and <inline-formula><mml:math id="M38" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">1</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">h</mml:mi></mml:mrow></mml:math></inline-formula> temporally. Radial velocities that deviate within a specified tolerance from the expected radial velocity according to the confidence background are considered in the next iteration if the weak CNR threshold is met. </p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f09.png"/>

          </fig>

      <fig id="F10" specific-use="star"><label>Figure 10</label><caption><p id="d2e2340">Final wind profiles. All measurements with a CNR of at least <inline-formula><mml:math id="M39" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>30 dB are also considered if the radial velocities deviate from the radial velocity expected from the confidence background within a range of <inline-formula><mml:math id="M40" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula>3 <inline-formula><mml:math id="M41" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. The data availability is improved compared to the initially retrieved wind profiles, particularly in gaps. </p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f10.png"/>

          </fig>

</sec>
<sec id="Ch1.S4.SS1.SSS4">
  <label>4.1.4</label><title>Confidence background quality control</title>
      <p id="d2e2388">A reliable estimation of the confidence background is crucial, since it determines the acceptable radial velocity range during subsequent iterations. While the iterations allow for improvement and refinement of the confidence background, the quality of the radial velocities and of the retrieved wind vector must be ensured in every iteration. As such, accepting noisy radial velocity measurements, which match the tolerance of the confidence background by coincidence, needs to be avoided. Therefore, the wind vector retrieval (module 7.5) requires a minimum threshold on the share of accepted measurements in relation to all available measurements within each bin. The default threshold used in the standard configuration is <inline-formula><mml:math id="M42" display="inline"><mml:mn mathvariant="normal">0.2</mml:mn></mml:math></inline-formula>, which reliably avoids accidental fitting of noise (Sect. <xref ref-type="sec" rid="Ch1.S5"/>).</p>
</sec>
<sec id="Ch1.S4.SS1.SSS5">
  <label>4.1.5</label><title>Iterative refinement</title>
      <p id="d2e2408">Modules 7.1 to 7.5 are repeated two more times, as specified in the for-loop (module 7). During the second and the third iterations, the wind profiles retrieved during the respective previous iteration are used instead of the initially retrieved wind profiles. The confidence background is refined and improved over the iterations. The magnitude of the benefit of the single iterations varies, depending on the instrument type and current atmospheric conditions. An evaluation of the iteration benefit for 10 Doppler lidars with quantification of the additionally retrieved wind vectors follows in Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/>.</p>
</sec>
<sec id="Ch1.S4.SS1.SSS6">
  <label>4.1.6</label><title>Quality indicators for the retrieved wind vectors</title>
      <p id="d2e2421">The filtering routines implemented in the standard module chain are designed to retrieve wind vectors with high quality. An overview of the thresholds applied for quality filtering is provided in Table <xref ref-type="table" rid="TA1"/>. The Doppler lidar measurements and retrieval method contain inherent assumptions and introduce uncertainty in the retrieved wind vectors. The standard module chain provides a statistical analysis of reliability indicators from the level 1 dataset delivered by the Doppler lidars. The median CNR and spectral width within each bin are calculated for the measurements that contributed to the finally retrieved wind vector in module 7.5 and for all available measurements in module 8. In addition, module 7.5 provides the variance of the radial velocity residuals. The variance of the radial velocity measurements is an indicator of flow heterogeneity in the retrieval volume and, hence, of the uncertainty due to turbulence in the retrieved wind profile. However, it is specific to a scan configuration and must therefore be used comparatively. Furthermore, statistical and numerical analyses, e.g. the number and the share of considered measurements, are also provided alongside the CN and can also be considered for wind profile reliability assessment. The indicators describing the retrieval quality are included in the standard module chain and can optionally be exported by module 13.</p>
      <p id="d2e2426">Quality control flags indicating the final acceptance of a wind vector are added to the dataset by module 9. For applications relying solely on the quality filtering of the standard module chain, the flag indicates the wind vector availability (0 indicates no valid wind vector retrieved; 1 indicates valid wind vector retrieved). If a weighting of the measurements is desired, e.g. for data assimilation, additional quality indicators could be utilized as weighting parameters. For example, a high residual radial velocity variance points to flow inhomogeneity in the retrieval volume. The CNR and Doppler spectrum width indicators can point to various aerosol and cloud conditions to identify less homogeneous conditions with more challenging measurements. Additionally, the overall or relative number of measurements included in the retrieval could also be used as a weighting metric.</p>
</sec>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Demonstration of the standard module chain for common conditions</title>
      <p id="d2e2438">The advantages of the standard module chain are showcased in comparison to the simple module chain presented in Sect. <xref ref-type="sec" rid="Ch1.S3.SS6"/>. Additionally, the benefit of the iterative approach is demonstrated using 3 months of measurements gathered using 10 Doppler lidar systems during the Swabian MOSES 2023 campaign. To ensure  comparability, measurements with elevations of at least 15° and measurements with horizontal distances within 3 km are considered for both the simple module chain and the standard module chain. Therefore, the simple module chain is identical to modules 1 to 6 of the standard module chain (the results of module 5 are not used in the simple module chain). Validation of the standard module chain retrieval quality with radiosondes follows in Sect. <xref ref-type="sec" rid="Ch1.S5"/>.</p>
<sec id="Ch1.S4.SS2.SSS1">
  <label>4.2.1</label><title>Advantages compared to the simple module chain</title>
      <p id="d2e2452">The final result of the retrieval obtained with the standard module chain is shown in Fig. <xref ref-type="fig" rid="F10"/> (cf. Fig. <xref ref-type="fig" rid="F7"/> for the initial wind profile retrieval). The number of retrieved wind vectors increases from 4945 for the initial retrieval to 5556 for the standard module chain, and the additional values are plausible. To illustrate the effect of the confidence background on retaining plausible measurements using the weaker CNR filter, Fig. <xref ref-type="fig" rid="FE1"/> shows the result of modules 1 to 6 conducted with a CNR threshold of <inline-formula><mml:math id="M43" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">30</mml:mn></mml:mrow></mml:math></inline-formula> dB (i.e. directly, without a confidence background plausibility check). In sum, 5451 wind vectors are retrieved in the simple <inline-formula><mml:math id="M44" display="inline"><mml:mrow class="unit"><mml:mo>-</mml:mo><mml:mn mathvariant="normal">30</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">dB</mml:mi></mml:mrow></mml:math></inline-formula> CNR threshold retrieval compared to 5556 for the standard module chain retrieval. At the upper bound of the available data, slightly more wind vectors are retrieved with the standard module chain. More importantly, however, the edge areas are not contaminated with outlier wind vectors when using the standard module chain retrieval. While the quality control of the simple retrieval relies only on measurements within each bin (<inline-formula><mml:math id="M45" display="inline"><mml:mo lspace="0mm">±</mml:mo></mml:math></inline-formula>3 <inline-formula><mml:math id="M46" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> filtering in module 6), the standard module chain retrieval also takes neighbouring bins into consideration. The prevailing reduction in unreliable wind vectors using the standard module chain retrieval is essential for automated processing of wind data, both for statistical analysis and for input in models.</p>
</sec>
<sec id="Ch1.S4.SS2.SSS2">
  <label>4.2.2</label><title>Iterative wind vector availability enhancement</title>
      <p id="d2e2517">Maximized level 1 data availability (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>) forms the basis for increased level 2 wind vector availability. The iteratively refined confidence background extends the level 1 data usage and, therefore, also the availability of retrieved level 2 wind vectors. Figure <xref ref-type="fig" rid="F11"/> shows the difference in the number of wind vectors retrieved per day between different numbers of iterations for 10 Doppler lidars operated during a 3-month period as part of the Swabian MOSES 2023 experiment <xref ref-type="bibr" rid="bib1.bibx23" id="paren.61"/>. The WLS200s with the numbers 115, 124, 125, 159, and 172 conducted RHI scans between 0 and 60 ° elevation in four directions (azimuth 0, 90, 180, 270 °) every 5 min and DBS scans at 60 ° elevation in the remaining time. The other Doppler lidars were operated with various settings and scans of type DBS, RHI, PPI, and fixed-direction stares. The first iteration (Fig. <xref ref-type="fig" rid="F11"/>a) retrieves considerably more wind vectors for all instruments compared to the initial retrieval. An additional number of 1000 wind vectors available per day corresponds to an average availability increase of <inline-formula><mml:math id="M47" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">694</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>, given the <inline-formula><mml:math id="M48" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">10</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula> temporal and <inline-formula><mml:math id="M49" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">100</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> vertical resolution. Between subsequent iterations (Fig. <xref ref-type="fig" rid="F11"/>b and c), a significant increase is observed for a few days and stations. The number of additionally retrieved wind vectors decreases compared to the respective preceding iteration. Whether a higher availability from more iterations justifies the increased calculation effort can be decided by the user in the individual application case.</p>

      <fig id="F11" specific-use="star"><label>Figure 11</label><caption><p id="d2e2584">Number of additional wind vectors gained through the three iterations of modules 7.1 to 7.5. Results are provided on a daily basis for 10 Doppler lidars operated in the southern Black Forest (Germany) and neighbouring regions in Switzerland during a 3-month period in the summer of 2023. The difference is displayed between <bold>(a)</bold> the initial retrieval and iteration 1, <bold>(b)</bold> iteration 1 and iteration 2, and <bold>(c)</bold> iteration 2 and iteration 3. </p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f11.png"/>

          </fig>

</sec>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Validation of the standard module chain</title>
      <p id="d2e2613">The wind profiles obtained using the standard module chain and settings, operated with 10 min temporal resolution and 100 m vertical resolution, are validated against radiosonde measurements for three different Doppler lidar systems at different locations. The Doppler lidar systems included for evaluation cover a Leosphere WLS200s, a Lockheed Martin WindTracer (WTX), and a Halo Photonics StreamLine XR+. The radiosondes used as a validation reference were released in the near surroundings of the respective Doppler lidar. The geographic and temporal distribution of the station data covers a wide range of atmospheric conditions, ensuring representativeness of the validation.</p>
<sec id="Ch1.S5.SS1">
  <label>5.1</label><title>Data basis used for validation</title>
      <p id="d2e2623">The WLS200s wind profile retrieval results are compared with 180 ascending radiosondes between June and August 2023 at the MeteoSwiss site Payerne, Switzerland (46.81° N, 6.94° E). Heterogeneous scans of type DBS, step-and-stare, and sector PPIs are used for wind profile retrieval (Fig. <xref ref-type="fig" rid="FE2"/>a). The radiosondes were launched regularly at 11:00 and 23:00 UTC, thereby covering both daytime and nocturnal conditions.</p>
      <p id="d2e2628">The WTX wind profile retrievals are evaluated against 131 ascending radiosondes launched during the Swabian MOSES 2023 experiment at Villingen-Schwenningen, Germany (48.06° N, 8.49° E) <xref ref-type="bibr" rid="bib1.bibx28" id="paren.62"/>. The WTX conducted PPI scans (elevations of 3, 30, 60 °) alternating with RHI scans in directions from 0 elevation to 90 ° elevation in continuous-scan mode (Fig. <xref ref-type="fig" rid="FE2"/>b). Radiosondes were launched 3-hourly during eight intensive observation periods targeting the initiation of thunderstorms, thereby covering pre-convective and convective conditions with assumed strong spatial flow variability.</p>
      <p id="d2e2636">For the validation of the StreamLine XR+,  publicly available lidar measurements <xref ref-type="bibr" rid="bib1.bibx49" id="paren.63"/> from the Neumayer Station, Antarctica (70.67° S, 8.27° W), are processed. The retrieved wind profiles are compared to 200 radiosondes usually released at 11:00 UTC between 4  January  and 26  November 2024 <xref ref-type="bibr" rid="bib1.bibx48" id="paren.64"/>. The lidar conducted a 12-beam step-and-stare pattern (Fig. <xref ref-type="fig" rid="FE2"/>c). Due to the remote Antarctic location, strong and vertically sheared katabatic flows and challenging lidar measurement conditions with low aerosol concentrations are covered.</p>
      <p id="d2e2647">An initial visual analysis of the wind profiles obtained using the WLS200s at Payerne and the WTX at Villingen-Schwenningen shows that physically plausible results are provided by the standard module chain. Hence, for these systems, there is no need for a reconfiguration of the standard module chain or the adaptation of thresholds. The results obtained for the Doppler lidar at Neumayer Station show a peculiar artefact: at weak SNR, very frequent vertical winds with <inline-formula><mml:math id="M50" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M51" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are observed in the absence of horizontal wind (i.e. horizontal wind speeds of approximately 0 <inline-formula><mml:math id="M52" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>), visible in Fig. <xref ref-type="fig" rid="F8"/>. Likely, a non-uniform radial velocity noise spectrum for measurements in weak-SNR conditions causes the observed effect. The observed phenomena and the applied solution are discussed in Appendix <xref ref-type="sec" rid="App1.Ch1.S4"/>. The ingestion of the suspicious radial velocities is prevented through an additional level 1 data filter applied for Neumayer Station, which excludes radial velocities between <inline-formula><mml:math id="M53" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>2 and <inline-formula><mml:math id="M54" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.35 <inline-formula><mml:math id="M55" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> for SNR values below <inline-formula><mml:math id="M56" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>22 dB.</p>
</sec>
<sec id="Ch1.S5.SS2">
  <label>5.2</label><title>Retrieval validation for wind speed</title>
      <p id="d2e2746">A number of reasons complicate the validation of the lidar wind profile retrievals with radiosonde measurements, since a point-based in situ vertical profile is compared to a volume-based remote sensing retrieval. Non-homogeneous wind in time or space causes differences, as the retrieval represents an average over the aggregated time (10 min) and height, while the radiosonde ascents with approx. 5 <inline-formula><mml:math id="M57" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and thereby crosses a 100 m height bin in approximately 20 s. To minimize the effect of spatial and temporal differences, the nearest temporal neighbour is used in the lidar vs. radiosonde comparison. Additionally, radiosondes may yield non-representative measurements and are advected with the flow. Hence, increasing spatial distances between the wind profiles may be present, especially at higher altitudes. Further, lidar-retrieved wind profiles suffer from retrieval errors due to flow inhomogeneity, depending on the scan patterns and atmospheric conditions <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx41 bib1.bibx43" id="paren.65"/>. Besides the differences in measurement characteristics, both systems may also suffer from direct measurement errors due to system imperfections.</p>

      <fig id="F12" specific-use="star"><label>Figure 12</label><caption><p id="d2e2771">Agreement of the retrieved horizontal wind speeds with radiosonde measurements. An orthogonal distance regression is calculated for the Doppler lidars and radiosondes at Payerne <bold>(a, d, g)</bold>, Villingen-Schwenningen <bold>(b, e, h)</bold>, and Neumayer Station <bold>(c, f, i)</bold>. The horizontal distance of the radiosonde to the lidar position <bold>(a–c)</bold>, the retrieved vertical wind speed <bold>(d–f)</bold>, and the occurrence in bins of 0.5 <inline-formula><mml:math id="M58" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <bold>(g–i)</bold> are colour-coded. For Villingen-Schwenningen, one radiosonde profile is omitted from the comparison due to non-representative measurement conditions (displayed as crosses; see text). </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f12.png"/>

        </fig>

      <p id="d2e2816">Figure <xref ref-type="fig" rid="F12"/> shows the comparison of the radiosonde measurements with the corresponding retrieved horizontal wind speed for all three stations. WLS200s (Payerne) and WTX (Villingen-Schwenningen) exhibit good agreement over the full wind speed range. StreamLine XR+ (Neumayer) exhibits lower data availability but slightly higher agreement with the radiosondes. Deviations remain fairly constant in magnitude over the full wind speed range for all stations.</p>
      <p id="d2e2822">The WLS200s comparison at Payerne offers a representative data basis under various atmospheric conditions due to the regular operational launches without targeting of special atmospheric phenomena. Good agreement with a small positive bias of the wind speed retrieval is observed.</p>
      <p id="d2e2825">The deviations between radiosonde and lidar measurements are slightly larger at Villingen-Schwenningen, and more measurements under high-wind-speed conditions are included. The increased scatter is potentially related to the targeting of the radiosondes towards convective and pre-convective conditions, i.e. more spatial variability and less representative measurements. For the WTX, one radiosonde profile is omitted from the comparison (11  July 2023, 21:32 UTC) due to non-representative measurement conditions. An analysis of the corresponding meteorological situation reveals that the radiosonde was launched into a passing mesoscale precipitating system and, thus, encountered strongly non-representative conditions during its ascent and drift away from the lidar.</p>
      <p id="d2e2828">Similarly, the generally more stable atmospheric conditions at Neumayer introduce less spatial variability and hence provide more representative measurements, in addition to reduced lidar retrieval error due to more homogeneous flow.</p>
      <p id="d2e2831">For all stations, the largest deviations are frequently associated with non-zero vertical winds retrieved by the lidar (Fig. <xref ref-type="fig" rid="F12"/>d–f). Comparisons with a negative vertical wind measured by the lidar in particular show an increased scatter. The increased scatter can be attributed to less homogeneous flow conditions, leading to less representative radiosonde measurements and increased lidar retrieval errors <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx41 bib1.bibx43" id="paren.66"/>. The retrieved negative vertical velocities are often associated with precipitation (snow, rain), which presents additional challenges for lidar measurements.</p>
</sec>
<sec id="Ch1.S5.SS3">
  <label>5.3</label><title>Retrieval validation for wind component profiles</title>
      <p id="d2e2847">For further validation including the vertical retrieval characteristics, the difference between the wind profiles retrieved from Doppler lidar measurements and radiosonde measurements is analysed. The retrieved wind profiles are compared to the radiosondes by subtracting the radiosonde's <inline-formula><mml:math id="M59" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M60" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> component from the respective component of the retrieved Doppler lidar wind profiles. The resulting differences are shown for Payerne (WLS200s) in Fig. <xref ref-type="fig" rid="F13"/>, for Villingen-Schwenningen (WTX) in Fig. <xref ref-type="fig" rid="F14"/>, and for Neumayer Station (StreamLine XR+) in Fig. <xref ref-type="fig" rid="F15"/>.</p>

      <fig id="F13" specific-use="star"><label>Figure 13</label><caption><p id="d2e2872">Horizontal wind component differences between radiosondes and WLS200s retrieval (10 min temporal resolution) at Payerne. The radiosonde wind components are subtracted from the retrieved Doppler lidar wind components. The shaded areas mark quantiles. The number of retrieved wind vectors <inline-formula><mml:math id="M61" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> decreases with height. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f13.png"/>

        </fig>

      <fig id="F14" specific-use="star"><label>Figure 14</label><caption><p id="d2e2890">Horizontal wind component differences between radiosondes and wind profiles retrieved from the WTX Doppler lidar at Villingen-Schwenningen. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f14.png"/>

        </fig>

      <fig id="F15" specific-use="star"><label>Figure 15</label><caption><p id="d2e2902">Horizontal wind component differences between radiosondes and the wind profiles retrieved from  StreamLine XR+ located at the Neumayer Station at 10 min temporal resolution. The number of available samples <inline-formula><mml:math id="M62" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> enables a reliable validation only at low heights. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f15.png"/>

        </fig>

      <p id="d2e2918">For Payerne and Villingen-Schwenningen, the comparison shows good agreement between the wind profiles at altitudes with sufficient data availability below 4 km, especially when considering the varying footprints and distances between remote sensing and in situ measurements. The interquartile distance is stable with altitude, highlighting the consistent retrieval quality above the boundary layer, where only a reduced backscatter from aerosols is available. Larger differences are observed above 4 km, attributable to the insufficient sample size and large horizontal distances between the radiosondes and the Doppler lidar. The slight variation in the number of retrieved wind vectors with altitude for Payerne results from a different number of radial velocities mapped to the single height bins. Thereby, a higher wind vector availability for bins with more radial velocities is observed. Due to the targeted measurements at Villingen-Schwenningen, winds in the comparison are also predominantly from the west, resulting in elevated error levels in the <inline-formula><mml:math id="M63" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> component compared to the <inline-formula><mml:math id="M64" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> component.</p>
      <p id="d2e2935">The results of the StreamLine XR+ lidar at Neumayer Station, displayed in Fig. <xref ref-type="fig" rid="F15"/>, also indicate good agreement at low heights, where the number of retrieved wind vectors is sufficient. The interquartile range is slightly reduced for the wind components at Neumayer Station, in agreement with the improved wind speed comparison compared to the other stations. However, more vertical variability is observed due to the smaller sample size, related to the often low aerosol concentrations in Antarctica.</p>
<sec id="Ch1.S5.SS3.SSS1">
  <label>5.3.1</label><title>The impact of temporal resolution</title>
      <p id="d2e2947">A small systematic difference (bias) in the <inline-formula><mml:math id="M65" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> component of about <inline-formula><mml:math id="M66" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.4 <inline-formula><mml:math id="M67" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> is evident for altitudes below <inline-formula><mml:math id="M68" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">3</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula> at Villingen-Schwenningen, which is also detectable in the quartiles. No similar bias is observed in the <inline-formula><mml:math id="M69" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> component and also not in any component at Payerne or Neumayer Station. Hence, the difference is likely attributable to local flow or representativeness effects. The <inline-formula><mml:math id="M70" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> component shows systematically higher mean values, possibly creating sampling artefacts due to the occurrence of gusts. Wind gusts cause an increased wind speed for a limited time. The retrieved wind vectors consider, however, the complete interval of temporal aggregation, which is 10 min. The introduced consensus-based retrieval could smooth such gusts if the wind speed is significantly higher than during the majority of the temporal bin integration interval.</p>
      <p id="d2e3007">For comparison, the retrieval with a temporal resolution of 5 min is shown in Fig. <xref ref-type="fig" rid="FE3"/>. Using this higher resolution, the offset decreases slightly to about <inline-formula><mml:math id="M71" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.3 <inline-formula><mml:math id="M72" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and shows less variation up to 4 km height. Interestingly, the increase in temporal resolution does not increase retrieval errors noticeably. Instead, the interquartile range is similar or even slightly reduced. Since the WTX scan pattern was completed within 5 min, full scans are available even at this shorter averaging duration. Hence, the retrieval volume is explored equally well also for this temporal resolution. Nevertheless, even for full scans, one may expect less favourable averaging of the retrieval error due to turbulence in the retrieval volume <xref ref-type="bibr" rid="bib1.bibx43 bib1.bibx41" id="paren.67"/>. The fact that no increase in retrieval error is observed for shorter retrieval times illustrates the suitability of the scan pattern and the retrieval algorithm. Further, the expected slight increase in retrieval error due to turbulence may be compensated for by a smaller representativeness error in the comparison with the radiosonde. One reason may be the increased ability to capture short-term gusts for shorter retrieval periods <xref ref-type="bibr" rid="bib1.bibx51" id="paren.68"/>.</p>
</sec>
<sec id="Ch1.S5.SS3.SSS2">
  <label>5.3.2</label><title>The impact of CNR on the retrieval quality</title>
      <p id="d2e3050">The standard module chain exploits additional radial velocity measurements with low CNR. In addition to visual plausibility checks, the distribution of the wind differences between radiosondes and the Doppler lidar depending on the CNR is evaluated. The differences in <inline-formula><mml:math id="M73" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M74" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> depending on the CNR are displayed for all three locations in Fig. <xref ref-type="fig" rid="F16"/>. Samples close to the weak CNR threshold are rare, since the CNR is the median of all measurements considered in the respective bin. Samples at the weak threshold would require the majority of the considered measurements to be at this threshold. Significant improvements in the availability of retrieved wind vectors due to the iterative procedure occur in the region between the conservative (ct) and the weak (wt) CNR threshold.</p>

      <fig id="F16" specific-use="star"><label>Figure 16</label><caption><p id="d2e3071">Horizontal wind component differences between radiosondes and wind profiles depending on the CNR. One sample represents a comparison for one radiosonde and one vertical bin. The mean bias and the  mean average error (MAE) are calculated for <inline-formula><mml:math id="M75" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M76" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> in bins of 1 dB width. The number of available samples <inline-formula><mml:math id="M77" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is displayed on the upper abscissa. Bias and MAE are omitted if <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula>. The conservative (ct) and weak (wt) CNR thresholds are marked for the respective instruments. The lower ordinate limit corresponds to the weak CNR threshold in all subplots.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f16.png"/>

          </fig>

      <p id="d2e3113">The height (colour-coded) needs to be considered alongside the CNR, since the two quantities are correlated. As expected, low CNR values occur predominantly for higher altitudes for the stations in Europe (Fig. <xref ref-type="fig" rid="F16"/>a–h). The bias is close to <inline-formula><mml:math id="M79" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula>0 <inline-formula><mml:math id="M80" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, except in <inline-formula><mml:math id="M81" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> for the WTX (Fig. <xref ref-type="fig" rid="F16"/>c, g, k). The bias of about <inline-formula><mml:math id="M82" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.4 <inline-formula><mml:math id="M83" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in the <inline-formula><mml:math id="M84" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> component is already observed in Fig. <xref ref-type="fig" rid="F14"/> and discussed in the previous section. For CNR bins with a sufficient number of samples, the mean average error (MAE) is around <inline-formula><mml:math id="M85" display="inline"><mml:mo>±</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M86" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> for all CNR. For the WLS200s (a–d) and the StreamLine XR+ (i–l), a weak increase in the MAE can be observed for measurements with low CNR. The WTX (e–h) does not show this behaviour. A slight systemic increase in the deviation with decreasing CNR compared to the radiosonde measurements occurs for the concerned systems. However, the associated error cannot be clearly assigned to the Doppler lidar systems. Since low CNR values predominantly occur at higher altitudes, the increasing distance between the lidar and the radiosonde could also contribute to this effect. Figure <xref ref-type="fig" rid="FE4"/> shows the same analyses for lidar to radiosonde distances instead of the CNR. Figure <xref ref-type="fig" rid="FE5"/> shows the associated geographical position of the radiosondes during the comparisons. The weak increase in the MAE for increasing distances supports such a dependency on the distance to the radiosonde (Fig. <xref ref-type="fig" rid="FE4"/>d, h, l).</p>
      <p id="d2e3217">For the StreamLine XR+ in Antarctica, low CNR values are also predominant for low-altitude measurements  (Fig. <xref ref-type="fig" rid="F16"/>i–l). A high number of considered measurements below the <inline-formula><mml:math id="M87" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>22 dB conservative CNR threshold is noteworthy. The share of additionally retrieved wind vectors at low CNR confirms the advantage of the standard module chain for regions with low backscatter.</p>
</sec>
</sec>
</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <label>6</label><title>Conclusions</title>
      <p id="d2e3239">A novel modular software tool for the retrieval of wind profiles from heterogeneous Doppler lidar measurements is introduced.</p>
      <p id="d2e3242">To enable the processing of measurements from various Doppler lidar systems, a standardized level 1 data format is used. The level 1 format provides data homogenization and enables subsequent retrieval of wind profiles using consistent processing routines, independent of the system origin. To maximize data availability, wind vectors are retrieved after binning the measured radial velocities with respect to time and height. Thus, all available measurements from various data acquisition settings and scan types can be exploited for the retrieval, independent of their origin.</p>
      <p id="d2e3253">The software architecture is designed in a modular way, enabling flexible adaptation without a need for coding. The data filtering and retrieval process is defined in module chains, in which the arrangement of modules specifies the processing steps and the variables' flow. Each module performs a dedicated calculation with defined input and output variables, as well as required parameters. A configuration file is used to provide or modify parameter values required by the modules during operation. The modular architecture enables  high flexibility for adaptions with reduced development effort. The software framework is provided as open-source Python code.</p>
      <p id="d2e3256">Thus, the software is suitable for three types of users: <list list-type="order"><list-item>
      <p id="d2e3261">Users with a need for straightforward Doppler lidar wind profile retrievals can use the standard module chain configuration, which provides validated and quality-controlled wind profiles for common conditions and multiple Doppler lidar systems.</p></list-item><list-item>
      <p id="d2e3265">Users with special investigation purposes or uncommon measurement parameters can configure the module chain and parameters according to their interests and needs.</p></list-item><list-item>
      <p id="d2e3269">Developers can contribute their own algorithms in new modules.</p></list-item></list></p>
      <p id="d2e3273">The delivered standard module chain for common conditions comprises an initial retrieval of the wind profiles with reliable measurements, based on a conservative CNR filtering threshold. An iterative procedure adds measurements with a lower CNR, if the measurements are within the expected range of the extrapolated previously retrieved wind profiles and if a sufficient share of measurements supports the retrieved wind vector. Through the iterative procedure, quality-controlled wind profiles are provided for weak-CNR conditions as well.</p>
      <p id="d2e3276">Validation of the retrieved wind profiles is conducted for three different Doppler lidar systems at different locations. Atmospheric conditions ranging from summertime convective boundary layers to wintertime stable boundary layers in the Antarctic are investigated. The comparison with radiosonde measurements reveals a high quality of the retrieved wind profiles for all investigated Doppler lidars and atmospheric conditions.</p>
      <p id="d2e3279">Overall, the modular software package provides capabilities to implement different retrieval scenarios for a wide range of users, Doppler lidar systems, and applications. The introduced modular software architecture enables the flexibility to cover various application cases, on the one hand, but  also ensures  high-level traceability, which is essential for the processing history of measurements used in models, on the other hand.</p>
</sec>

      
      </body>
    <back><app-group>

<app id="App1.Ch1.S1">
  <label>Appendix A</label><title>Software configuration file example</title>
<sec id="App1.Ch1.S1.SS1">
  <label>A1</label><title>Module chain example</title>
      <p id="d2e3300">Module chains are configured in a JSON format. Adding or omitting modules is possible through removing or inserting the respective text blocks in the module chain file. An exemplary JSON-formatted representation for the module chain displayed in Fig. <xref ref-type="fig" rid="F5"/> is provided here. 
<preformat><![CDATA[[
    {
        "type":"calculation",
        "alias_name":"cnr_filter",
        "module_name":"Flag_variable_limits_l1",
        "rename_parameters": {
            "min_value":"cnr_threshold_dB"
        },
        "rename_level1_inputs": {
            "variable":"CNR"
        },
        "rename_level1_outputs": {
            "condition_met":"validity_
                probability"
        }
    },
    {
        "alias_name":"retrieve_wind_vectors",
        "type":"calculation",
        "module_name":"Bin_retrieve_uvw"
    },
    {
        "alias_name":"final_nc_export",
        "type":"export",
        "module_name":"NetCDF_l2"
    }
]]]></preformat>
 The module chain consists of three JSON objects, each representing one module (see Fig. <xref ref-type="fig" rid="F5"/>).</p>

<table-wrap id="TA1" specific-use="star"><label>Table A1</label><caption><p id="d2e3317">The presented parameters are needed for the standard module chain and can be modified in the settings file.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Variable</oasis:entry>
         <oasis:entry colname="col2">Default value</oasis:entry>
         <oasis:entry colname="col3">Note</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">nrel_thresh_processing</oasis:entry>
         <oasis:entry colname="col2">0.2</oasis:entry>
         <oasis:entry colname="col3">minimum fraction of used measurements to overall measurements</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">cn_thresh</oasis:entry>
         <oasis:entry colname="col2">8</oasis:entry>
         <oasis:entry colname="col3">maximum condition number</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">volume_thresh</oasis:entry>
         <oasis:entry colname="col2">0.042</oasis:entry>
         <oasis:entry colname="col3">minimum volume spanned by the unit vectors</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">variance_thresh</oasis:entry>
         <oasis:entry colname="col2">3</oasis:entry>
         <oasis:entry colname="col3">maximum residual variance (in <inline-formula><mml:math id="M88" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">max_radial_velocity_deviation_m_per_s</oasis:entry>
         <oasis:entry colname="col2">3</oasis:entry>
         <oasis:entry colname="col3">maximum absolute deviation of radial velocity residuals (in <inline-formula><mml:math id="M89" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">horizontal_distance_threshold_meter</oasis:entry>
         <oasis:entry colname="col2">3000</oasis:entry>
         <oasis:entry colname="col3">maximum horizontal distance of measurements from the instrument (in <inline-formula><mml:math id="M90" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">median_max_nan</oasis:entry>
         <oasis:entry colname="col2">5</oasis:entry>
         <oasis:entry colname="col3">maximum number of NaN in the background median filter window</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">extrapolation_limit_meter</oasis:entry>
         <oasis:entry colname="col2">1000</oasis:entry>
         <oasis:entry colname="col3">maximum range of the level 2 extrapolation (optional parameter, in <inline-formula><mml:math id="M91" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">validity_probability_acceptance_threshold</oasis:entry>
         <oasis:entry colname="col2">0.5</oasis:entry>
         <oasis:entry colname="col3">fuzzy logic acceptance threshold</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Nmin</oasis:entry>
         <oasis:entry colname="col2">12</oasis:entry>
         <oasis:entry colname="col3">minimum number of radial velocity measurements</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">min_elevation_deg</oasis:entry>
         <oasis:entry colname="col2">15</oasis:entry>
         <oasis:entry colname="col3">minimum elevation to be considered (in degree)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">cnr_low_threshold_dB</oasis:entry>
         <oasis:entry colname="col2">(instrument specific)</oasis:entry>
         <oasis:entry colname="col3">weak CNR filter threshold (Table <xref ref-type="table" rid="TA2"/>, in <inline-formula><mml:math id="M92" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">dB</mml:mi></mml:mrow></mml:math></inline-formula>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">cnr_reliable_threshold_dB</oasis:entry>
         <oasis:entry colname="col2">(instrument specific)</oasis:entry>
         <oasis:entry colname="col3">conservative CNR filter threshold (Table <xref ref-type="table" rid="TA2"/>, in <inline-formula><mml:math id="M93" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">dB</mml:mi></mml:mrow></mml:math></inline-formula>)</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e3584">The first module (alias name <italic>cnr_filter</italic>) implements a CNR filter by setting the flag variable <italic>validity_probability</italic> to 1.0 if the CNR value is at least the threshold specified in the parameter <italic>cnr_threshold_dB</italic>. Otherwise, the value of <italic>validity_probability</italic> is 0.0. The calculation module used for the implementation of the CNR filter is <italic>Flag_variable_limits_l1</italic>. This module uses <italic>min_value</italic> as default parameter for the minimum threshold, a variable with the name <italic>variable</italic> as default level 1 input, and a variable with the name <italic>condition_met</italic> as default level 1 output. Therefore, the default names for the parameter, the level 1 input, and the level 1 output are renamed for the use as CNR filter. This renaming is possible by specifying <italic>rename_parameters</italic>, <italic>rename_level1_inputs</italic>, and <italic>rename_level1_outputs</italic> for this module.</p>
      <p id="d2e3639">The second module (<italic>Bin_retrieve_uvw</italic>) calculates the level 2 wind vectors using the level 1 radial velocities where the value of <italic>validity_probability</italic> is 1.0. No renaming of variables or parameters is needed, as the default names are used.</p>
      <p id="d2e3657">The third module (<italic>NetCDF_l2</italic>) exports the final level 2 dataset to a netCDF file.Parameters are specified in the settings file (Appendix <xref ref-type="sec" rid="App1.Ch1.S1.SS2"/>). The user is requested to insert unspecified parameters in an interactive dialogue before the module chain is executed.</p>
</sec>
<sec id="App1.Ch1.S1.SS2">
  <label>A2</label><title>Settings file and configuration parameters</title>
      <p id="d2e3679">The settings file contains processing settings, including directories and parameters. An *.ini file containing the settings is specified for the software execution. Import and export settings are specified in separate import and export sections of the *.ini file. Parameters can be applied to all modules with the prefix <italic>global.</italic> or to a single module by using the module's alias name, followed by a dot as prefix. Parameters are specified in the section <italic>parameters</italic> of the *.ini file. Instrument-type-specific or instrument-specific sections allow the user to adapt settings for individual instrument types or instruments. Details are provided in the manual. To specify the level 2 dataset, the following parameters are mandatory for all module chains: <list list-type="bullet"><list-item>
      <p id="d2e3694"><italic>AtmoProKIT_parameter_temporal_aggregation_seconds</italic> (default value: 600)</p></list-item><list-item>
      <p id="d2e3701"><italic>AtmoProKIT_parameter_vertical_aggregation_meter</italic> (default value: 100)</p></list-item><list-item>
      <p id="d2e3708"><italic>AtmoProKIT_parameter_offset_first_bin_meter</italic>  (default value: <inline-formula><mml:math id="M94" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>50)</p></list-item><list-item>
      <p id="d2e3723"><italic>AtmoProKIT_parameter_max_height_meter</italic>  (default value: 5050).</p></list-item></list> Further parameters can be required by the modules contained in the module chain. The parameters required by the single modules are listed in the manual. The parameters needed for the standard module chain are listed  in Table <xref ref-type="table" rid="TA1"/>.</p>
<sec id="App1.Ch1.S1.SS2.SSS1">
  <label>A2.1</label><title>Settings file example for the simple retrieval</title>
      <p id="d2e3741"><preformat><![CDATA[[import]
level1_netcdf.level1_import_directory=/home/
    user/Level1
level1_netcdf.level1_variables=["radial_
    velocity","CNR","elevation","azimuth",
    "range"]

[export]
global.level2_export_directory=/home/user/
    Level2

[parameters]
global.AtmoProKIT_parameter_temporal
    _aggregation_seconds=600
global.AtmoProKIT_parameter_vertical
    _aggregation_meter=100
global.AtmoProKIT_parameter_offset
    _first_bin_meter=-50
global.AtmoProKIT_parameter_max
    _height_meter=5050
global.nrel_thresh_processing=0.2
global.cn_thresh=8
global.volume_thresh=0.042
global.variance_thresh=3
global.max_radial_velocity
    _deviation_m_per_s=3
global.Nmin=12
global.validity_probability
    _acceptance_threshold=0.5

[parameters_instrument_type.WLS200s]
global.cnr_threshold_dB=-25
]]></preformat></p>
</sec>
<sec id="App1.Ch1.S1.SS2.SSS2">
  <label>A2.2</label><title>Parameters used in the standard module chain</title>
      <p id="d2e3756">The parameters needed for the standard module chain are listed in Table <xref ref-type="table" rid="TA1"/>.</p>

<table-wrap id="TA2"><label>Table A2</label><caption><p id="d2e3764">Default values for the conservative CNR threshold (cnr_reliable_threshold_dB) and the weak CNR threshold (cnr_low_threshold_dB) used in the settings file.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Doppler lidar system</oasis:entry>
         <oasis:entry colname="col2">Conservative threshold</oasis:entry>
         <oasis:entry colname="col3">Weak threshold</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">WLS200s</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M95" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>25 dB</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M96" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>30 dB</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WindTracer WTX</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M97" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>5 dB</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M98" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>12 dB</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">StreamLine XR+</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M99" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>22 dB</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M100" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>30 dB</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</sec>
</sec>
</app>

<app id="App1.Ch1.S2">
  <label>Appendix B</label><title>Variable flow in the standard module chain</title>

<table-wrap id="TB1"><label>Table B1</label><caption><p id="d2e3882">Variable flow in the standard module chain. Coordinates and related variables are omitted in this listing. Read access (r) and write access (w) are indicated for the module numbers introduced in Table <xref ref-type="table" rid="T1"/>. Compared to module 6, module 7.5 provides additional statistical evaluations of the CNR and the Doppler spectrum width and adds the respective quality indicators to the level 2 dataset.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="19">
     <oasis:colspec colnum="1" colname="col1" align="center"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="center"/>
     <oasis:colspec colnum="4" colname="col4" align="center"/>
     <oasis:colspec colnum="5" colname="col5" align="center"/>
     <oasis:colspec colnum="6" colname="col6" align="center"/>
     <oasis:colspec colnum="7" colname="col7" align="center"/>
     <oasis:colspec colnum="8" colname="col8" align="center"/>
     <oasis:colspec colnum="9" colname="col9" align="center"/>
     <oasis:colspec colnum="10" colname="col10" align="center"/>
     <oasis:colspec colnum="11" colname="col11" align="center"/>
     <oasis:colspec colnum="12" colname="col12" align="center"/>
     <oasis:colspec colnum="13" colname="col13" align="center"/>
     <oasis:colspec colnum="14" colname="col14" align="center"/>
     <oasis:colspec colnum="15" colname="col15" align="center"/>
     <oasis:colspec colnum="16" colname="col16" align="center"/>
     <oasis:colspec colnum="17" colname="col17" align="center"/>
     <oasis:colspec colnum="18" colname="col18" align="center"/>
     <oasis:colspec colnum="19" colname="col19" align="center"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Level</oasis:entry>
         <oasis:entry colname="col2">Variable(s)</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
         <oasis:entry colname="col4">2</oasis:entry>
         <oasis:entry colname="col5">3</oasis:entry>
         <oasis:entry colname="col6">4</oasis:entry>
         <oasis:entry colname="col7">5</oasis:entry>
         <oasis:entry colname="col8">6</oasis:entry>
         <oasis:entry colname="col9">7.1</oasis:entry>
         <oasis:entry colname="col10">7.2</oasis:entry>
         <oasis:entry colname="col11">7.3</oasis:entry>
         <oasis:entry colname="col12">7.4</oasis:entry>
         <oasis:entry colname="col13">7.5</oasis:entry>
         <oasis:entry colname="col14">8</oasis:entry>
         <oasis:entry colname="col15">9</oasis:entry>
         <oasis:entry colname="col16">10</oasis:entry>
         <oasis:entry colname="col17">11</oasis:entry>
         <oasis:entry colname="col18">12</oasis:entry>
         <oasis:entry colname="col19">13</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">elevation</oasis:entry>
         <oasis:entry colname="col3">r</oasis:entry>
         <oasis:entry colname="col4">r</oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">r</oasis:entry>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11">r</oasis:entry>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">azimuth</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">r</oasis:entry>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11">r</oasis:entry>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">radial_velocity</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">r</oasis:entry>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11">r</oasis:entry>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">CNR</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6">r</oasis:entry>
         <oasis:entry colname="col7">r</oasis:entry>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14">r</oasis:entry>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">range</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4">r</oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">r</oasis:entry>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11">r</oasis:entry>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">doppler_spectrum_width</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14">r</oasis:entry>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">consideration_elevation</oasis:entry>
         <oasis:entry colname="col3">w</oasis:entry>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5">r</oasis:entry>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13"/>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">consideration_horizontal_distance</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4">w</oasis:entry>
         <oasis:entry colname="col5">r</oasis:entry>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13"/>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">consideration</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5">r/w</oasis:entry>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">r</oasis:entry>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">validity_probability</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6">w</oasis:entry>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">r</oasis:entry>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11">w</oasis:entry>
         <oasis:entry colname="col12">r/w</oasis:entry>
         <oasis:entry colname="col13">r</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">validity_probability_cnr_weak</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7">w</oasis:entry>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12">r</oasis:entry>
         <oasis:entry colname="col13"/>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">u, v</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">w</oasis:entry>
         <oasis:entry colname="col9">r/w</oasis:entry>
         <oasis:entry colname="col10">r/w</oasis:entry>
         <oasis:entry colname="col11">r</oasis:entry>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">w</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15">r</oasis:entry>
         <oasis:entry colname="col16">r</oasis:entry>
         <oasis:entry colname="col17">r</oasis:entry>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19">r</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">w</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">w</oasis:entry>
         <oasis:entry colname="col9">r/w</oasis:entry>
         <oasis:entry colname="col10">r/w</oasis:entry>
         <oasis:entry colname="col11">r</oasis:entry>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">w</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15">r</oasis:entry>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17">r</oasis:entry>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19">r</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">N, CN, vol, var, ...</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8">w</oasis:entry>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">w</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18">w</oasis:entry>
         <oasis:entry colname="col19"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">cnr_sel_median, ...</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13">w</oasis:entry>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19">r</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">cnr_all, Nall, ...</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13"/>
         <oasis:entry colname="col14">w</oasis:entry>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19">r</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">qu, qv, qw, qwind</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13"/>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15">w</oasis:entry>
         <oasis:entry colname="col16"/>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19">r</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">dd,ff</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7"/>
         <oasis:entry colname="col8"/>
         <oasis:entry colname="col9"/>
         <oasis:entry colname="col10"/>
         <oasis:entry colname="col11"/>
         <oasis:entry colname="col12"/>
         <oasis:entry colname="col13"/>
         <oasis:entry colname="col14"/>
         <oasis:entry colname="col15"/>
         <oasis:entry colname="col16">w</oasis:entry>
         <oasis:entry colname="col17"/>
         <oasis:entry colname="col18"/>
         <oasis:entry colname="col19">r</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>


</app>

<app id="App1.Ch1.S3">
  <label>Appendix C</label><title>Wind profile retrieval theory</title>
      <p id="d2e4910">Calculating the least-squares fit to retrieve wind vectors from measured radial velocities is an established approach <xref ref-type="bibr" rid="bib1.bibx36 bib1.bibx52 bib1.bibx72 bib1.bibx6 bib1.bibx51 bib1.bibx22" id="paren.69"><named-content content-type="pre">e.g.</named-content></xref>. For the calculation of one wind vector <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, a projection onto the multiple radial velocity measurements <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is required, which is displayed in Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E1"/>). The system of equations (Eq. <xref ref-type="disp-formula" rid="App1.Ch1.S3.E1"/>) projects the wind vector components <inline-formula><mml:math id="M103" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M104" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M105" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> onto the radial velocities <inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> depending on the given angular position of the scanner (azimuth <inline-formula><mml:math id="M107" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, elevation angle above the horizontal plane <inline-formula><mml:math id="M108" display="inline"><mml:mi mathvariant="italic">ϵ</mml:mi></mml:math></inline-formula>).</p>
      <p id="d2e5058"><disp-formula id="App1.Ch1.S3.E1" content-type="numbered"><label>C1</label><mml:math id="M109" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi>u</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>v</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>w</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d2e5259">This relation can be expressed in the following way:

          <disp-formula id="App1.Ch1.S3.E2" content-type="numbered"><label>C2</label><mml:math id="M110" display="block"><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e5285">This equation system is overdetermined for more than three measurements. Thereby, a retrieval of the wind vector is possible through minimizing the least-squares sum of the residuals.</p>
      <p id="d2e5289">The residuals <inline-formula><mml:math id="M111" display="inline"><mml:mi mathvariant="bold-italic">δ</mml:mi></mml:math></inline-formula> describe the deviation of the measured radial velocities from the wind vector <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The residuals are

          <disp-formula id="App1.Ch1.S3.E3" content-type="numbered"><label>C3</label><mml:math id="M113" display="block"><mml:mrow><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="double-struck">G</mml:mi><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        To receive the least-squares fit of <inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the sum of the squared residuals <inline-formula><mml:math id="M115" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> has to be minimized. It is

          <disp-formula id="App1.Ch1.S3.E4" content-type="numbered"><label>C4</label><mml:math id="M116" display="block"><mml:mrow><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msup><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        This least-squares fit problem can be solved by multiplying the Moore–Penrose pseudoinverse <xref ref-type="bibr" rid="bib1.bibx36 bib1.bibx31" id="paren.70"/>

          <disp-formula id="App1.Ch1.S3.E5" content-type="numbered"><label>C5</label><mml:math id="M117" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">G</mml:mi><mml:mo>+</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="double-struck">G</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msup><mml:mi mathvariant="double-struck">G</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mi mathvariant="double-struck">G</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>

        from the left to Eq. (<xref ref-type="disp-formula" rid="App1.Ch1.S3.E2"/>), which finally results in

          <disp-formula id="App1.Ch1.S3.E6" content-type="numbered"><label>C6</label><mml:math id="M118" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="double-struck">G</mml:mi><mml:mo>+</mml:mo></mml:msup><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">V</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        An alternative calculation of the pseudoinverse using the matrices obtained with the singular value decomposition of <inline-formula><mml:math id="M119" display="inline"><mml:mi mathvariant="double-struck">G</mml:mi></mml:math></inline-formula> is less susceptible to errors for poorly conditioned <inline-formula><mml:math id="M120" display="inline"><mml:mi mathvariant="double-struck">G</mml:mi></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx8" id="paren.71"/>. Therefore, algorithms usually calculate the pseudoinverse <xref ref-type="bibr" rid="bib1.bibx31" id="paren.72"/>

          <disp-formula id="App1.Ch1.S3.E7" content-type="numbered"><label>C7</label><mml:math id="M121" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">G</mml:mi><mml:mo>+</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="double-struck">W</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub><mml:msubsup><mml:mi mathvariant="double-struck">S</mml:mi><mml:mi mathvariant="normal">p</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:msubsup><mml:mi mathvariant="double-struck">U</mml:mi><mml:mi mathvariant="normal">p</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">W</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">S</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">U</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are submatrices of <inline-formula><mml:math id="M125" display="inline"><mml:mi mathvariant="double-struck">W</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M126" display="inline"><mml:mi mathvariant="double-struck">S</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M127" display="inline"><mml:mi mathvariant="double-struck">U</mml:mi></mml:math></inline-formula>, and

          <disp-formula id="App1.Ch1.S3.E8" content-type="numbered"><label>C8</label><mml:math id="M128" display="block"><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="double-struck">U</mml:mi><mml:mi mathvariant="double-struck">S</mml:mi><mml:msup><mml:mi mathvariant="double-struck">W</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>

        is the singular value decomposition of <inline-formula><mml:math id="M129" display="inline"><mml:mi mathvariant="double-struck">G</mml:mi></mml:math></inline-formula>. <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">S</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a diagonal matrix of the singular values of <inline-formula><mml:math id="M131" display="inline"><mml:mi mathvariant="double-struck">G</mml:mi></mml:math></inline-formula>, which is <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:mi mathvariant="normal">diag</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> for the present problem.</p>
      <p id="d2e5634"><inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">S</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is also needed for the calculation of the CN. Usually, <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">S</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is calculated with  <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in descending order <xref ref-type="bibr" rid="bib1.bibx31" id="paren.73"/>, which is also the case in the NumPy implementation (<uri>https://numpy.org/doc/stable/reference/generated/numpy.linalg.svd.html</uri>, last access: 5 November 2024) used in the present software. The condition number <inline-formula><mml:math id="M138" display="inline"><mml:mi mathvariant="normal">CN</mml:mi></mml:math></inline-formula> is the maximum singular value divided by the minimum singular value <xref ref-type="bibr" rid="bib1.bibx8" id="paren.74"/>, which is

          <disp-formula id="App1.Ch1.S3.E9" content-type="numbered"><label>C9</label><mml:math id="M139" display="block"><mml:mrow><mml:mi mathvariant="normal">CN</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</app>

<app id="App1.Ch1.S4">
  <label>Appendix D</label><title>Extension of the standard module chain for Neumayer Station</title>
      <p id="d2e5741">The StreamLine XR+ at Neumayer Station exhibits peculiar, temporally, and vertically extensive regions with vertical winds of approx. <inline-formula><mml:math id="M140" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M141" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, without apparent background wind (i.e. horizontal wind speeds of approx. 0 <inline-formula><mml:math id="M142" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>). Figure <xref ref-type="fig" rid="FD1"/> shows an example of this effect. The corresponding SNR is displayed in Fig. <xref ref-type="fig" rid="FD2"/>. While some of the retrievals could be physical, e.g. due to snowfall in quiescent air, the continuity and frequent occurrence of the vertical winds without horizontal winds is implausible. Closer analysis reveals that the vertical velocities are attributable to frequent radial velocity measurements around <inline-formula><mml:math id="M143" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M144" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> during weak-SNR conditions below <inline-formula><mml:math id="M145" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>22 dB (Fig. <xref ref-type="fig" rid="F8"/>c). Since the <inline-formula><mml:math id="M146" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M147" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> radial velocity measurements are independent of the scanning direction (i.e. also azimuth direction), no horizontal winds and solely vertical winds are retrieved if the <inline-formula><mml:math id="M148" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M149" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> measurements present the overwhelming majority of measurements.</p>
      <p id="d2e5872">The non-uniform distribution of radial velocity measurements during weak-signal conditions is traceable to a previously unreported issue of the StreamLine XR+ at Neumayer Station. Internal system issues (e.g. electro-magnetic interference of hardware components) likely contaminate the spectrum used for radial velocity estimation (Holger Schmithüsen, Markus Kayser, Johannes Bühl, Ronny Engelmann, Martin Radenz, personal communication,  2024). Since the raw spectrum data are not available, the radial velocity estimation cannot be improved through an improved background noise correction and subsequent reprocessing in this study.</p>

      <fig id="FD1"><label>Figure D1</label><caption><p id="d2e5877">Result of the standard module chain applied for the StreamLine XR+ at Neumayer Station on 19 May 2024. A number of wind vectors indicate a vertical wind of <inline-formula><mml:math id="M150" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M151" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> without horizontal wind. The reason is a peak in the radial velocity noise distribution around <inline-formula><mml:math id="M152" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M153" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. </p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f17.png"/>

      </fig>

      <fig id="FD2"><label>Figure D2</label><caption><p id="d2e5939">Doppler lidar SNR at Neumayer Station on 19 May 2024. The median of the SNR values of all measurements available per bin is displayed.</p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f18.png"/>

      </fig>

      <p id="d2e5950">Nevertheless, StreamLine XR+ wind profiles from Neumayer Station are included in the radiosonde comparison since they serve to show both a limitation and an advantage of the presented modular wind profile retrieval software. First, the software should not be used to process Doppler lidar data irrespective of data quality, without the operator's reflection on the provided results. The consensus approach used in the least-squares fit retrieval and the background wind estimation rely on a broad distribution of radial velocity noise. In the Neumayer case, only user experience and meteorological reasoning allow judging the frequent <inline-formula><mml:math id="M154" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 <inline-formula><mml:math id="M155" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> radial velocity measurements as implausible, a task which cannot be provided by the software. Second, if an issue with the data is identified, the modular software can be easily adapted to deal with the problem. In the Neumayer case, an additional level 1 consideration flag is introduced in the module chain: radial velocities between <inline-formula><mml:math id="M156" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>2 and <inline-formula><mml:math id="M157" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.35 <inline-formula><mml:math id="M158" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are excluded if they exhibit an SNR below <inline-formula><mml:math id="M159" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>22 dB. This filter prevents ingestion of the contaminated radial velocities prior to wind vector retrieval but still allows for retrieval even in weak-SNR conditions with the remaining measurements.</p><fig id="FD3"><label>Figure D3</label><caption><p id="d2e6022">Result of the extended standard module chain applied for the StreamLine XR+ at Neumayer Station on 19  May 2024. Radial velocities between <inline-formula><mml:math id="M160" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>2 and <inline-formula><mml:math id="M161" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.35 <inline-formula><mml:math id="M162" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are excluded from the retrieval for SNR below <inline-formula><mml:math id="M163" display="inline"><mml:mrow class="unit"><mml:mo>-</mml:mo><mml:mn mathvariant="normal">22</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">dB</mml:mi></mml:mrow></mml:math></inline-formula>. Implausible wind vectors which appear in Fig. <xref ref-type="fig" rid="FD1"/> are rejected. </p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f19.png"/>

      </fig>

</app>

<app id="App1.Ch1.S5">
  <label>Appendix E</label><title>Additional figures</title>

      <fig id="FE1"><label>Figure E1</label><caption><p id="d2e6089">Simple retrieval considering measurements with a CNR threshold of <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">30</mml:mn></mml:mrow></mml:math></inline-formula> dB. As no confidence background is applied, transient conditions (at 20:00 UTC in particular) are covered better than in Fig. <xref ref-type="fig" rid="F10"/>. However, some erroneous wind vector retrievals are also incorporated. </p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f20.png"/>

      </fig>

<fig id="FE2"><label>Figure E2</label><caption><p id="d2e6115"> Occurrence of azimuth and elevation scan angles for WLS200s at Payerne <bold>(a)</bold>, WTX at Villingen-Schwenningen <bold>(b)</bold>, and StreamLine XR+ at Neumayer Station <bold>(c)</bold>. All angles are summed up in bins of 1° between June and August 2023 for <bold>(a)</bold> and <bold>(b)</bold> and between 3  January and 26  November 2024 for <bold>(c)</bold>.</p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f21.png"/>

      </fig>

      <fig id="FE3"><label>Figure E3</label><caption><p id="d2e6148">Horizontal wind component difference between radiosondes and the WTX retrieval at Villingen-Schwenningen. The same situation as in Fig. <xref ref-type="fig" rid="F14"/> is shown, however, at an increased temporal resolution of 5 min of the lidar retrieval. </p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f22.png"/>

      </fig>

<fig id="FE4"><label>Figure E4</label><caption><p id="d2e6164">Horizontal wind component differences between radiosondes and retrieved wind profiles as a function of the horizontal distance between Doppler lidar and radiosonde. Bias and MAE are calculated for a number of samples <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula>. The MAE indicates a slight increase with increasing distance until about <inline-formula><mml:math id="M166" display="inline"><mml:mrow class="unit"><mml:mn mathvariant="normal">10</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>. For longer distances, the decreasing number of samples <inline-formula><mml:math id="M167" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> causes high fluctuations.</p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f23.png"/>

      </fig>

      <fig id="FE5"><label>Figure E5</label><caption><p id="d2e6207">Positions of the radiosondes during the comparison with the Doppler lidars. Differences in the horizontal wind component <inline-formula><mml:math id="M168" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> <bold>(a–c)</bold> and <inline-formula><mml:math id="M169" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> <bold>(d–f)</bold> are colour-coded. The positions of the Doppler lidars WLS200s at Payerne <bold>(a, d)</bold>, WTX at Villingen-Schwenningen <bold>(b, e)</bold>, and StreamLine XR+ at Neumayer Station <bold>(c, f)</bold> are marked with a star.</p></caption>
        
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/2497/2026/gmd-19-2497-2026-f24.png"/>

      </fig>


</app>
  </app-group><notes notes-type="codeavailability"><title>Code availability</title>

      <p id="d2e6254">The software can be accessed under <uri>https://codebase.helmholtz.cloud/KIT-KIAOS/KITcube/AtmoProKIT</uri> (last access: 2 March 2026). A permanent snapshot of the version associated with this publication is available under <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844632" ext-link-type="DOI">10.5281/zenodo.14844632</ext-link> <xref ref-type="bibr" rid="bib1.bibx17" id="paren.75"/>.</p>
  </notes><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d2e6269">The Doppler lidar measurements from Neumayer Station <xref ref-type="bibr" rid="bib1.bibx49" id="paren.76"/> and Payerne <xref ref-type="bibr" rid="bib1.bibx24" id="paren.77"/> are publicly available in the ACTRIS Cloudnet data portal <uri>https://cloudnet.fmi.fi</uri>. The Doppler lidar measurements from these two stations and the radiosonde comparisons from all stations are permanently available under <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844887" ext-link-type="DOI">10.5281/zenodo.14844887</ext-link> <xref ref-type="bibr" rid="bib1.bibx18" id="paren.78"/>. The Doppler lidar measurements from the Swabian MOSES 2023 campaign are provided under <ext-link xlink:href="https://doi.org/10.5281/zenodo.14842966" ext-link-type="DOI">10.5281/zenodo.14842966</ext-link> <xref ref-type="bibr" rid="bib1.bibx65" id="paren.79"/>, <ext-link xlink:href="https://doi.org/10.5281/zenodo.14843671" ext-link-type="DOI">10.5281/zenodo.14843671</ext-link> <xref ref-type="bibr" rid="bib1.bibx66" id="paren.80"/>, <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844362" ext-link-type="DOI">10.5281/zenodo.14844362</ext-link> <xref ref-type="bibr" rid="bib1.bibx64" id="paren.81"/>, <ext-link xlink:href="https://doi.org/10.5281/zenodo.14843822" ext-link-type="DOI">10.5281/zenodo.14843822</ext-link> <xref ref-type="bibr" rid="bib1.bibx70" id="paren.82"/>, <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844518" ext-link-type="DOI">10.5281/zenodo.14844518</ext-link> <xref ref-type="bibr" rid="bib1.bibx63" id="paren.83"/>, <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844019" ext-link-type="DOI">10.5281/zenodo.14844019</ext-link> <xref ref-type="bibr" rid="bib1.bibx69" id="paren.84"/>, <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844229" ext-link-type="DOI">10.5281/zenodo.14844229</ext-link> <xref ref-type="bibr" rid="bib1.bibx68" id="paren.85"/>, and <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844286" ext-link-type="DOI">10.5281/zenodo.14844286</ext-link> <xref ref-type="bibr" rid="bib1.bibx67" id="paren.86"/>.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e6341">AE: conceptualization, methodology, software, validation, writing – original draft, visualization. PG: conceptualization, methodology, validation, writing – original draft.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e6347">The contact author has declared that neither of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e6353">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.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e6359">The authors thankfully acknowledge the continuous support of Maxime Hervo (MeteoSwiss) for providing Doppler lidar and radiosonde measurements at the Payerne, Grenchen, Schaffhausen, and Zürich stations. The authors also thankfully acknowledge the support of Holger Schmithüsen (Alfred Wegener Institute, Helmholtz Centre for Polar and Marine Research) for discussions about the Doppler lidar at Neumayer Station and for providing radiosonde measurements from Neumayer Station. The authors also thank Markus Kayser, Johannes Bühl, Ronny Engelmann, and Martin Radenz for sharing their experiences of and insights into the noise characteristics of the Halo Photonics StreamLine XR+ Doppler lidar. The authors thankfully acknowledge the support of the Swabian MOSES measurement campaign team in conducting the field measurement campaign. In particular, the essential effort of the KITcube team under the coordination of Andreas Wieser is thankfully acknowledged. The authors further acknowledge the contribution of the referees for their constructive and thorough comments, which helped to improve the scientific content and presentation of the paper. The authors also acknowledge the efforts of the editor in managing the review process.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e6365">The article processing charges for this open-access publication were covered by the Karlsruhe Institute   of  Technology (KIT).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e6373">This paper was edited by Jinkyu Hong and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Adler et al.(2020)Adler, Gohm, Kalthoff, Babić, Corsmeier, Lehner, Rotach, Haid, Markmann, Gast et al.</label><mixed-citation>Adler, B., Gohm, A., Kalthoff, N., Babić, N., Corsmeier, U., Lehner, M., Rotach, M. W., Haid, M., Markmann, P., Gast, E.,   Tsaknakis, G., and  Georgoussis, G.: CROSSINN-a field experiment to study the three-dimensional flow structure in the Inn Valley, Austria, B. Am. Meteorol. Soc., 1–55, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-19-0283.1" ext-link-type="DOI">10.1175/BAMS-D-19-0283.1</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Baidar et al.(2023)Baidar, Wagner, Turner, and Brewer</label><mixed-citation>Baidar, S., Wagner, T. J., Turner, D. D., and Brewer, W. A.: Using optimal estimation to retrieve winds from velocity-azimuth display (VAD) scans by a Doppler lidar, Atmos. Meas. Tech., 16, 3715–3726, <ext-link xlink:href="https://doi.org/10.5194/amt-16-3715-2023" ext-link-type="DOI">10.5194/amt-16-3715-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Baker et al.(1995)Baker, Emmitt, Robertson, Atlas, Molinari, Bowdle, Paegle, Hardesty, Post, Menzies, Krishnamurti, Brown, Anderson, Lorenc, and McElroy</label><mixed-citation>Baker, W. E., Emmitt, G. D., Robertson, F., Atlas, R. M., Molinari, J. E., Bowdle, D. A., Paegle, J., Hardesty, R. M., Post, M. J., Menzies, R. T., Krishnamurti, T. N., Brown, R. A., Anderson, J. R., Lorenc, A. C., and McElroy, J.: Lidar-measured winds from space: A key component for weather and climate prediction, B. Am. Meteorol. Soc., 76, 869–888, <ext-link xlink:href="https://doi.org/10.1175/1520-0477(1995)076&lt;0869:lmwfsa&gt;2.0.co;2" ext-link-type="DOI">10.1175/1520-0477(1995)076&lt;0869:lmwfsa&gt;2.0.co;2</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Baker et al.(2014)Baker, Atlas, Cardinali, Clement, Emmitt, Gentry, Hardesty, Källén, Kavaya, Langland, Ma, Masutani, McCarty, Pierce, Pu, Riishojgaard, Ryan, Tucker, Weissmann, and Yoe</label><mixed-citation>Baker, W. E., Atlas, R., Cardinali, C., Clement, A., Emmitt, G. D., Gentry, B. M., Hardesty, R. M., Källén, E., Kavaya, M. J., Langland, R., Ma, Z., Masutani, M., McCarty, W., Pierce, R. B., Pu, Z., Riishojgaard, L. P., Ryan, J., Tucker, S., Weissmann, M., and Yoe, J. G.: Lidar-measured wind profiles: The missing link in the global observing system, B. Am. Meteorol. Soc., 95, 543–564, <ext-link xlink:href="https://doi.org/10.1175/BAMS-D-12-00164.1" ext-link-type="DOI">10.1175/BAMS-D-12-00164.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Banta et al.(1999)Banta, Darby, Kaufmann, Levinson, and Zhu</label><mixed-citation>Banta, R. M., Darby, L. S., Kaufmann, P., Levinson, D. H., and Zhu, C.-J.: Wind-Flow Patterns in the Grand Canyon as Revealed by Doppler Lidar, J. Appl. Meteorol., 38, 1069–1083, <ext-link xlink:href="https://doi.org/10.1175/1520-0450(1999)038&lt;1069:wfpitg&gt;2.0.co;2" ext-link-type="DOI">10.1175/1520-0450(1999)038&lt;1069:wfpitg&gt;2.0.co;2</ext-link>, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Bell et al.(2020)Bell, Klein, Wildmann, and Menke</label><mixed-citation>Bell, T. M., Klein, P., Wildmann, N., and Menke, R.: Analysis of flow in complex terrain using multi-Doppler lidar retrievals, Atmos. Meas. Tech., 13, 1357–1371, <ext-link xlink:href="https://doi.org/10.5194/amt-13-1357-2020" ext-link-type="DOI">10.5194/amt-13-1357-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Bingöl et al.(2009)Bingöl, Mann, and Foussekis</label><mixed-citation>Bingöl, F., Mann, J., and Foussekis, D.: Conically scanning lidar error in complex terrain, Meteorol. Z., 18, 189–195, <ext-link xlink:href="https://doi.org/10.1127/0941-2948/2009/0368" ext-link-type="DOI">10.1127/0941-2948/2009/0368</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Boccippio(1995)</label><mixed-citation>Boccippio, D. J.: A diagnostic analysis of the VVP single-Doppler retrieval technique, J. Atmos. Ocean. Tech., 12, 230–248, <ext-link xlink:href="https://doi.org/10.1175/1520-0426(1995)012&lt;0230:adaotv&gt;2.0.co;2" ext-link-type="DOI">10.1175/1520-0426(1995)012&lt;0230:adaotv&gt;2.0.co;2</ext-link>, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Bonin et al.(2017)Bonin, Choukulkar, Brewer, Sandberg, Weickmann, Pichugina, Banta, Oncley, and Wolfe</label><mixed-citation>Bonin, T. A., Choukulkar, A., Brewer, W. A., Sandberg, S. P., Weickmann, A. M., Pichugina, Y. L., Banta, R. M., Oncley, S. P., and Wolfe, D. E.: Evaluation of turbulence measurement techniques from a single Doppler lidar, Atmos. Meas. Tech., 10, 3021–3039, <ext-link xlink:href="https://doi.org/10.5194/amt-10-3021-2017" ext-link-type="DOI">10.5194/amt-10-3021-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Bonin et al.(2018)Bonin, Carroll, Hardesty, Brewer, Hajny, Salmon, and Shepson</label><mixed-citation>Bonin, T. A., Carroll, B. J., Hardesty, R. M., Brewer, W. A., Hajny, K., Salmon, O. E., and Shepson, P. B.: Doppler Lidar Observations of the Mixing Height in Indianapolis Using an Automated Composite Fuzzy Logic Approach, J. Atmos. Ocean. Tech., 35, 473–490, <ext-link xlink:href="https://doi.org/10.1175/JTECH-D-17-0159.1" ext-link-type="DOI">10.1175/JTECH-D-17-0159.1</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Browning and Wexler(1968)</label><mixed-citation>Browning, K. and Wexler, R.: The determination of kinematic properties of a wind field using Doppler radar, J. Appl. Meteorol., 7, 105–113, <ext-link xlink:href="https://doi.org/10.1175/1520-0450(1968)007&lt;0105:tdokpo&gt;2.0.co;2" ext-link-type="DOI">10.1175/1520-0450(1968)007&lt;0105:tdokpo&gt;2.0.co;2</ext-link>, 1968.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Chui and Mhaskar(2010)</label><mixed-citation>Chui, C. K. and Mhaskar, H.: MRA contextual-recovery extension of smooth functions on manifolds, Appl. Comput. Harmon. A., 28, 104–113, <ext-link xlink:href="https://doi.org/10.1016/j.acha.2009.04.004" ext-link-type="DOI">10.1016/j.acha.2009.04.004</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Damelin and Hoang(2018)</label><mixed-citation>Damelin, S. B. and Hoang, N. S.: On Surface Completion and Image Inpainting by Biharmonic Functions: Numerical Aspects, International Journal of Mathematics and Mathematical Sciences, 2018, <ext-link xlink:href="https://doi.org/10.1155/2018/3950312" ext-link-type="DOI">10.1155/2018/3950312</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Drew et al.(2013)Drew, Barlow, and Lane</label><mixed-citation>Drew, D. R., Barlow, J. F., and Lane, S. E.: Observations of wind speed profiles over Greater London, UK, using a Doppler lidar, J. Wind Eng. Ind. Aerod., 121, 98–105, <ext-link xlink:href="https://doi.org/10.1016/j.jweia.2013.07.019" ext-link-type="DOI">10.1016/j.jweia.2013.07.019</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Eaton et al.(2023)Eaton, Gregory, Drach, Taylor, Hankin, Blower, Caron, Signell, Bentley, Rappa, Höck, Pamment, Juckes, Raspaud, Randy Horne, Blodgett, Zender, Lee, Hassell, Snow, Kölling, Allured, Jelenak, Soerensen, Gaultier, Herlédan, Manzano, Bärring, Barker, and Bartholomew</label><mixed-citation>Eaton, B., Gregory, J., Drach, B., Taylor, K., Hankin, S., Blower, J., Caron, J., Signell, R., Bentley, P., Rappa, G., Höck, H., Pamment, A., Juckes, M., Raspaud, M., Randy Horne, T. W., Blodgett, D., Zender, C., Lee, D., Hassell, D., Snow, A. D., Kölling, T., Allured, D., Jelenak, A., Soerensen, A. M., Gaultier, L., Herlédan, S., Manzano, F., Bärring, L., Barker, C., and Bartholomew, S.: NetCDF Climate and Forecast (CF) Metadata Conventions, version 1.11, <uri>https://cfconventions.org/Data/cf-conventions/cf-conventions-1.11/cf-conventions.pdf</uri> (last access: 27 August 2024), 2023.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Erdmann(2025)</label><mixed-citation>Erdmann, A.: AtmoProKIT level 1 Doppler lidar measurements demonstration dataset, Karlsruhe Institute of Technology [data set], <ext-link xlink:href="https://doi.org/10.35097/XZWDZQJFYUAJC0CE" ext-link-type="DOI">10.35097/XZWDZQJFYUAJC0CE</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Erdmann and Gasch(2026a)</label><mixed-citation>Erdmann, A. and Gasch, P.: Code for Erdmann and Gasch: Modular wind profile retrieval software for heterogeneous Doppler lidar measurements (AtmoProKIT v1.1), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844632" ext-link-type="DOI">10.5281/zenodo.14844632</ext-link>, 2026a.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Erdmann and Gasch(2026b)</label><mixed-citation>Erdmann, A. and Gasch, P.: Doppler lidar validation data for Erdmann and Gasch: Modular wind profile retrieval software for heterogeneous Doppler lidar measurements, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844887" ext-link-type="DOI">10.5281/zenodo.14844887</ext-link>, 2026b.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Fernando et al.(2019)Fernando, Mann, Palma, Lundquist, Barthelmie, Belo-Pereira, Brown, Chow, Gerz, Hocut, Klein, Leo, Matos, Oncley, Pryor, Bariteau, Bell, Bodini, Carney, Courtney, Creegan, Dimitrova, Gomes, Hagen, Hyde, Kigle, Krishnamurthy, Lopes, Mazzaro, Neher, Menke, Murphy, Oswald, Otarola-Bustos, Pattantyus, Rodrigues, Schady, Sirin, Spuler, Svensson, Tomaszewski, Turner, van Veen, Vasiljević, Vassallo, Voss, Wildmann, and Wang</label><mixed-citation>Fernando, H. J. S., Mann, J., Palma, J. M. L. M., Lundquist, J. K., Barthelmie, R. J., Belo-Pereira, M., Brown, W. O. J., Chow, F. K., Gerz, T., Hocut, C. M., Klein, P. M., Leo, L. S., Matos, J. C., Oncley, S. P., Pryor, S. C., Bariteau, L., Bell, T. M., Bodini, N., Carney, M. B., Courtney, M. S., Creegan, E. D., Dimitrova, R., Gomes, S., Hagen, M., Hyde, J. O., Kigle, S., Krishnamurthy, R., Lopes, J. C., Mazzaro, L., Neher, J. M. T., Menke, R., Murphy, P., Oswald, L., Otarola-Bustos, S., Pattantyus, A. K., Rodrigues, C. V., Schady, A., Sirin, N., Spuler, S., Svensson, E., Tomaszewski, J., Turner, D. D., van Veen, L., Vasiljević, N., Vassallo, D., Voss, S., Wildmann, N., and Wang, Y.: The Perdigão: Peering into microscale details of mountain winds, B. Am. Meteorol. Soc., 100, 799–819, <ext-link xlink:href="https://doi.org/10.1175/bams-d-17-0227.1" ext-link-type="DOI">10.1175/bams-d-17-0227.1</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Gasch et al.(2020)Gasch, Wieser, Lundquist, and Kalthoff</label><mixed-citation>Gasch, P., Wieser, A., Lundquist, J. K., and Kalthoff, N.: An LES-based airborne Doppler lidar simulator and its application to wind profiling in inhomogeneous flow conditions, Atmos. Meas. Tech., 13, 1609–1631, <ext-link xlink:href="https://doi.org/10.5194/amt-13-1609-2020" ext-link-type="DOI">10.5194/amt-13-1609-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Gasch et al.(2023)Gasch, Kasic, Maas, and Wang</label><mixed-citation>Gasch, P., Kasic, J., Maas, O., and Wang, Z.: Advancing airborne Doppler lidar wind profiling in turbulent boundary layer flow – an LES-based optimization of traditional scanning-beam versus novel fixed-beam measurement systems, Atmos. Meas. Tech., 16, 5495–5523, <ext-link xlink:href="https://doi.org/10.5194/amt-16-5495-2023" ext-link-type="DOI">10.5194/amt-16-5495-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Gebauer and Bell(2024)</label><mixed-citation>Gebauer, J. G. and Bell, T. M.: A Flexible, Multi-Instrument Optimal Estimation Retrieval for Wind Profiles, J. Atmos. Ocean. Tech., 41, 605–620, <ext-link xlink:href="https://doi.org/10.1175/JTECH-D-23-0134.1" ext-link-type="DOI">10.1175/JTECH-D-23-0134.1</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Handwerker et al.(2025)Handwerker, Barthlott, Bauckholt, Belleflamme, Böhmländer, Borg, Dick, Dietrich, Fichtelmann, Geppert, Goergen, Güntner, Hammoudeh, Hervo, Hühn, Kaniyodical Sebastian, Keller, Kohler, Knippertz, Kunz, Landmark, Li, Mohannazadeh, Möhler, Morsy, Najafi, Nallasamy, Oertel, Rakovec, Reich, Reich, Saathoff, Samaniego, Schrön, Schütze, Steinert, Vogel, Vorogushyn, Weber, Wieser, and Zhang</label><mixed-citation>Handwerker, J., Barthlott, C., Bauckholt, M., Belleflamme, A., Böhmländer, A., Borg, E., Dick, G., Dietrich, P., Fichtelmann, B., Geppert, G., Goergen, K., Güntner, A., Hammoudeh, S., Hervo, M., Hühn, E., Kaniyodical Sebastian, M., Keller, J., Kohler, M., Knippertz, P., Kunz, M., Landmark, S., Li, Y., Mohannazadeh, M., Möhler, O., Morsy, M., Najafi, H., Nallasamy, N. D., Oertel, A., Rakovec, O., Reich, H., Reich, M., Saathoff, H., Samaniego, L., Schrön, M., Schütze, C., Steinert, T., Vogel, F., Vorogushyn, S., Weber, U., Wieser, A., and Zhang, H.: From initiation of convective storms to their impact – the Swabian MOSES 2023 campaign in southwestern Germany, Front. Earth Sci.,  13, <ext-link xlink:href="https://doi.org/10.3389/feart.2025.1555755" ext-link-type="DOI">10.3389/feart.2025.1555755</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Hervo and Coen(2024)</label><mixed-citation>Hervo, M. and Coen, M.: Custom collection of Doppler lidar wind data from Payerne between 1 Jun and 31 Aug 2023, ACTRIS Cloud remote sensing data centre unit (CLU) [data set], <uri>https://cloudnet.fmi.fi/instrument/a3c0f804-d91e-4966-9efb-aef54b9f2cd1</uri> (last access: 4 March 2026), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Hoyer and Hamman(2017)</label><mixed-citation>Hoyer, S. and Hamman, J.: xarray: N-D labeled Arrays and Datasets in Python, J. Open Res. Softw., 5, 10–10, <ext-link xlink:href="https://doi.org/10.5334/jors.148" ext-link-type="DOI">10.5334/jors.148</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Kawabata et al.(2014)Kawabata, Iwai, Seko, Shoji, Saito, Ishii, and Mizutani</label><mixed-citation>Kawabata, T., Iwai, H., Seko, H., Shoji, Y., Saito, K., Ishii, S., and Mizutani, K.: Cloud-resolving 4D-Var assimilation of Doppler wind lidar data on a meso-gamma-scale convective system, Mon. Weather Rev., 142, 4484–4498, <ext-link xlink:href="https://doi.org/10.1175/mwr-d-13-00362.1" ext-link-type="DOI">10.1175/mwr-d-13-00362.1</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Kayser et al.(2021)Kayser, Päschke, Detring, Lehmann, Beyrich, and Leinweber</label><mixed-citation>Kayser, M., Päschke, E., Detring, C., Lehmann, V., Beyrich, F., and Leinweber, R.: Standardized Doppler lidar processing for operational use in a future network, DACH2022, Leipzig, Deutschland, 21–25 Mar 2022, DACH2022-209, <ext-link xlink:href="https://doi.org/10.5194/dach2022-209" ext-link-type="DOI">10.5194/dach2022-209</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Kohler(2025)</label><mixed-citation>Kohler, M.: Radiosonde measurements from Villingen-Schwenningen, Swabian MOSES 2023, Level 0 BUFR files [data set], <ext-link xlink:href="https://doi.org/10.35097/2gc4v9mv5k8qmsa8" ext-link-type="DOI">10.35097/2gc4v9mv5k8qmsa8</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Kunz et al.(2022)Kunz, Abbas, Bauckholt, Böhmländer, Feuerle, Gasch, Glaser, Groß, Hajnsek, Handwerker, Hase, Khordakova, Knippertz, Kohler, Lange, Latt, Laube, Martin, Mauder, Möhler, Mohr, Reitter, Rettenmeier, Rolf, Saathoff, Schrön, Schütze, Spahr, Späth, Vogel, Völksch, Weber, Wieser, Wilhelm, Zhang, and Dietrich</label><mixed-citation>Kunz, M., Abbas, S. S., Bauckholt, M., Böhmländer, A., Feuerle, T., Gasch, P., Glaser, C., Groß, J., Hajnsek, I., Handwerker, J., Hase, F., Khordakova, D., Knippertz, P., Kohler, M., Lange, D., Latt, M., Laube, J., Martin, L., Mauder, M., Möhler, O., Mohr, S., Reitter, R. W., Rettenmeier, A., Rolf, C., Saathoff, H., Schrön, M., Schütze, C., Spahr, S., Späth, F., Vogel, F., Völksch, I., Weber, U., Wieser, A., Wilhelm, J., Zhang, H., and Dietrich, P.: Swabian MOSES 2021: An interdisciplinary field campaign for investigating convective storms and their event chains, Front. Earth Sci., p. 1886, <ext-link xlink:href="https://doi.org/10.3389/feart.2022.999593" ext-link-type="DOI">10.3389/feart.2022.999593</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Manninen et al.(2016)Manninen, O'Connor, Vakkari, and Petäjä</label><mixed-citation>Manninen, A. J., O'Connor, E. J., Vakkari, V., and Petäjä, T.: A generalised background correction algorithm for a Halo Doppler lidar and its application to data from Finland, Atmos. Meas. Tech., 9, 817–827, <ext-link xlink:href="https://doi.org/10.5194/amt-9-817-2016" ext-link-type="DOI">10.5194/amt-9-817-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Menke(2012)</label><mixed-citation>Menke, W.: Describing inverse problems, Elsevier/Academic Press, Oxford UK, <ext-link xlink:href="https://doi.org/10.1016/B978-0-12-397160-9.00001-1" ext-link-type="DOI">10.1016/B978-0-12-397160-9.00001-1</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Mense et al.(2024)Mense, Höffner, Baumgarten, Eixmann, Froh, Mauer, Munk, Wing, and Lübken</label><mixed-citation>Mense, T. H., Höffner, J., Baumgarten, G., Eixmann, R., Froh, J., Mauer, A., Munk, A., Wing, R., and Lübken, F.-J.: 3D wind observations with a compact mobile lidar based on tropo- and stratospheric aerosol backscatter, Atmos. Meas. Tech., 17, 1665–1677, <ext-link xlink:href="https://doi.org/10.5194/amt-17-1665-2024" ext-link-type="DOI">10.5194/amt-17-1665-2024</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Neto and Castelao(2023)</label><mixed-citation>Neto, J. D. and Castelao, G. P.: lidarwind: A Python package for retrieving wind profiles from Doppler lidar observations, J. Open Source Softw., 8, 4852, <ext-link xlink:href="https://doi.org/10.21105/joss.04852" ext-link-type="DOI">10.21105/joss.04852</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Newsom and Banta(2004)</label><mixed-citation>Newsom, R. K. and Banta, R. M.: Assimilating Coherent Doppler Lidar Measurements into a Model of the Atmospheric Boundary Layer. Part I: Algorithm Development and Sensitivity to Measurement Error, J. Atmos. Ocean. Tech., 21, 1328–1345, <ext-link xlink:href="https://doi.org/10.1175/1520-0426(2004)021&lt;1328:acdlmi&gt;2.0.co;2" ext-link-type="DOI">10.1175/1520-0426(2004)021&lt;1328:acdlmi&gt;2.0.co;2</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>O’Connor et al.(2010)O’Connor, Illingworth, Brooks, Westbrook, Hogan, Davies, and Brooks</label><mixed-citation>O’Connor, E. J., Illingworth, A. J., Brooks, I. M., Westbrook, C. D., Hogan, R. J., Davies, F., and Brooks, B. J.: A Method for Estimating the Turbulent Kinetic Energy Dissipation Rate from a Vertically Pointing Doppler Lidar, and Independent Evaluation from Balloon-Borne In Situ Measurements, J. Atmos. Ocean. Tech., 27, 1652–1664, <ext-link xlink:href="https://doi.org/10.1175/2010jtecha1455.1" ext-link-type="DOI">10.1175/2010jtecha1455.1</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Päschke et al.(2015)Päschke, Leinweber, and Lehmann</label><mixed-citation>Päschke, E., Leinweber, R., and Lehmann, V.: An assessment of the performance of a 1.5 μm Doppler lidar for operational vertical wind profiling based on a 1-year trial, Atmos. Meas. Tech., 8, 2251–2266, <ext-link xlink:href="https://doi.org/10.5194/amt-8-2251-2015" ext-link-type="DOI">10.5194/amt-8-2251-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Pearson and Collier(1999)</label><mixed-citation>Pearson, G. N. and Collier, C. G.: A pulsed coherent CO<sub>2</sub> lidar for boundary-layer meteorology, Q. J. Roy. Meteor. Soc., 125, 2703–2721, <ext-link xlink:href="https://doi.org/10.1002/qj.49712555918" ext-link-type="DOI">10.1002/qj.49712555918</ext-link>, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Pentikäinen et al.(2023)Pentikäinen, O'Connor, and Ortiz-Amezcua</label><mixed-citation>Pentikäinen, P., O'Connor, E. J., and Ortiz-Amezcua, P.: Evaluating wind profiles in a numerical weather prediction model with Doppler lidar, Geosci. Model Dev., 16, 2077–2094, <ext-link xlink:href="https://doi.org/10.5194/gmd-16-2077-2023" ext-link-type="DOI">10.5194/gmd-16-2077-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Pichugina et al.(2019)Pichugina, Banta, Bonin, Brewer, Choukulkar, McCarty, Baidar, Draxl, Fernando, Kenyon, Krishnamurthy, Marquis, Olson, Sharp, and Stoelinga</label><mixed-citation>Pichugina, Y. L., Banta, R. M., Bonin, T., Brewer, W. A., Choukulkar, A., McCarty, B. J., Baidar, S., Draxl, C., Fernando, H. J. S., Kenyon, J., Krishnamurthy, R., Marquis, M., Olson, J., Sharp, J., and Stoelinga, M.: Spatial Variability of Winds and HRRR–NCEP Model Error Statistics at Three Doppler-Lidar Sites in the Wind-Energy Generation Region of the Columbia River Basin, J.  Appl. Meteorol. Clim., 58, 1633–1656, <ext-link xlink:href="https://doi.org/10.1175/JAMC-D-18-0244.1" ext-link-type="DOI">10.1175/JAMC-D-18-0244.1</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Päschke and Detring(2024)</label><mixed-citation>Päschke, E. and Detring, C.: Noise filtering options for conically scanning Doppler lidar measurements with low pulse accumulation, Atmos. Meas. Tech., 17, 3187–3217, <ext-link xlink:href="https://doi.org/10.5194/amt-17-3187-2024" ext-link-type="DOI">10.5194/amt-17-3187-2024</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Rahlves et al.(2022)Rahlves, Beyrich, and Raasch</label><mixed-citation>Rahlves, C., Beyrich, F., and Raasch, S.: Scan strategies for wind profiling with Doppler lidar – an large-eddy simulation (LES)-based evaluation, Atmos. Meas. Tech., 15, 2839–2856, <ext-link xlink:href="https://doi.org/10.5194/amt-15-2839-2022" ext-link-type="DOI">10.5194/amt-15-2839-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Rew and Davis(1990)</label><mixed-citation>Rew, R. and Davis, G.: NetCDF: an interface for scientific data access, IEEE Comput.  Graph. Appl., 10, 76–82, <ext-link xlink:href="https://doi.org/10.1109/38.56302" ext-link-type="DOI">10.1109/38.56302</ext-link>, 1990.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Robey and Lundquist(2022)</label><mixed-citation>Robey, R. and Lundquist, J. K.: Behavior and mechanisms of Doppler wind lidar error in varying stability regimes, Atmos. Meas. Tech., 15, 4585–4622, <ext-link xlink:href="https://doi.org/10.5194/amt-15-4585-2022" ext-link-type="DOI">10.5194/amt-15-4585-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Rucker et al.(2008)Rucker, Banta, and Steyn</label><mixed-citation>Rucker, M., Banta, R. M., and Steyn, D. G.: Along-Valley Structure of Daytime Thermally Driven Flows in the Wipp Valley, J. Appl. Meteorol. Clim., 47, 733–751, <ext-link xlink:href="https://doi.org/10.1175/2007jamc1319.1" ext-link-type="DOI">10.1175/2007jamc1319.1</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Rye and Hardesty(1993a)</label><mixed-citation>Rye, B. J. and Hardesty, R. M.: Discrete spectral peak estimation in incoherent backscatter heterodyne lidar. I. Spectral accumulation and the Cramer-Rao lower bound, IEEE T. Geosci. Remote Sens., 31, 16–27, <ext-link xlink:href="https://doi.org/10.1109/36.210440" ext-link-type="DOI">10.1109/36.210440</ext-link>, 1993a.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Rye and Hardesty(1993b)</label><mixed-citation>Rye, B. J. and Hardesty, R. M.: Discrete spectral peak estimation in incoherent backscatter heterodyne lidar. II. Correlogram accumulation, IEEE T. Geosci. Remote Sens., 31, 28–35, <ext-link xlink:href="https://doi.org/10.1109/36.210441" ext-link-type="DOI">10.1109/36.210441</ext-link>, 1993b.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Sathe and Mann(2013)</label><mixed-citation>Sathe, A. and Mann, J.: A review of turbulence measurements using ground-based wind lidars, Atmos. Meas. Tech., 6, 3147–3167, <ext-link xlink:href="https://doi.org/10.5194/amt-6-3147-2013" ext-link-type="DOI">10.5194/amt-6-3147-2013</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Schmithüsen(2022)</label><mixed-citation>Schmithüsen, H.: Radiosonde measurements from Neumayer Station (1983-02 et seq), PANGAEA [data set], <ext-link xlink:href="https://doi.org/10.1594/PANGAEA.940584" ext-link-type="DOI">10.1594/PANGAEA.940584</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Schmithüsen et al.(2024)Schmithüsen, Engelmann, and Radenz</label><mixed-citation>Schmithüsen, H., Engelmann, R., and Radenz, M.: Custom collection of Doppler lidar wind data from Neumayer Station between 1 Jan and 27 Nov 2024, ACTRIS Cloud remote sensing data centre unit (CLU) [data set], <uri>https://cloudnet.fmi.fi/instrument/e166bb0b-5e92-46ce-adb8-73ed38ecc459</uri> (last access: 4 March 2026), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Smalikho and Banakh(2017)</label><mixed-citation>Smalikho, I. N. and Banakh, V. A.: Measurements of wind turbulence parameters by a conically scanning coherent Doppler lidar in the atmospheric boundary layer, Atmos. Meas. Tech., 10, 4191–4208, <ext-link xlink:href="https://doi.org/10.5194/amt-10-4191-2017" ext-link-type="DOI">10.5194/amt-10-4191-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Steinheuer et al.(2022)Steinheuer, Detring, Beyrich, Löhnert, Friederichs, and Fiedler</label><mixed-citation>Steinheuer, J., Detring, C., Beyrich, F., Löhnert, U., Friederichs, P., and Fiedler, S.: A new scanning scheme and flexible retrieval for mean winds and gusts from Doppler lidar measurements, Atmos. Meas. Tech., 15, 3243–3260, <ext-link xlink:href="https://doi.org/10.5194/amt-15-3243-2022" ext-link-type="DOI">10.5194/amt-15-3243-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>Teschke and Lehmann(2017)</label><mixed-citation>Teschke, G. and Lehmann, V.: Mean wind vector estimation using the velocity–azimuth display (VAD) method: an explicit algebraic solution, Atmos. Meas. Tech., 10, 3265–3271, <ext-link xlink:href="https://doi.org/10.5194/amt-10-3265-2017" ext-link-type="DOI">10.5194/amt-10-3265-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx53"><label>Träumner et al.(2015)Träumner, Damian, Stawiarski, and Wieser</label><mixed-citation>Träumner, K., Damian, T., Stawiarski, C., and Wieser, A.: Turbulent structures and coherence in the atmospheric surface layer, Bound.-Lay. Meteorol., 154, 1–25, <ext-link xlink:href="https://doi.org/10.1007/s10546-014-9967-6" ext-link-type="DOI">10.1007/s10546-014-9967-6</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Tucker et al.(2009)Tucker, Senff, Weickmann, Brewer, Banta, Sandberg, Law, and Hardesty</label><mixed-citation>Tucker, S. C., Senff, C. J., Weickmann, A. M., Brewer, W. A., Banta, R. M., Sandberg, S. P., Law, D. C., and Hardesty, R. M.: Doppler Lidar Estimation of Mixing Height Using Turbulence, Shear, and Aerosol Profiles, J. Atmos. Ocean. Tech., 26, 673–688, <ext-link xlink:href="https://doi.org/10.1175/2008JTECHA1157.1" ext-link-type="DOI">10.1175/2008JTECHA1157.1</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx55"><label>Tukiainen et al.(2024)Tukiainen, Siipola, Leskinen, and O'Connor</label><mixed-citation>Tukiainen, S., Siipola, T., Leskinen, N., and O'Connor, E.: Cloudnet – an ACTRIS data repository for cloud remote sensing observations, EGU General Assembly 2024, Vienna, Austria, 14–19 Apr 2024, EGU24-20005, <ext-link xlink:href="https://doi.org/10.5194/egusphere-egu24-20005" ext-link-type="DOI">10.5194/egusphere-egu24-20005</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx56"><label>Vakkari et al.(2019)Vakkari, Manninen, O'Connor, Schween, van Zyl, and Marinou</label><mixed-citation>Vakkari, V., Manninen, A. J., O'Connor, E. J., Schween, J. H., van Zyl, P. G., and Marinou, E.: A novel post-processing algorithm for Halo Doppler lidars, Atmos. Meas. Tech., 12, 839–852, <ext-link xlink:href="https://doi.org/10.5194/amt-12-839-2019" ext-link-type="DOI">10.5194/amt-12-839-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx57"><label>van der Walt et al.(2011)van der Walt, Colbert, and Varoquaux</label><mixed-citation>van der Walt, S., Colbert, S. C., and Varoquaux, G.: The NumPy Array: A Structure for Efficient Numerical Computation, Comput. Sci. Eng., 13, 22–30, <ext-link xlink:href="https://doi.org/10.1109/MCSE.2011.37" ext-link-type="DOI">10.1109/MCSE.2011.37</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx58"><label>Wagner et al.(2022)Wagner, Turner, Heus, and Blumberg</label><mixed-citation>Wagner, T. J., Turner, D. D., Heus, T., and Blumberg, W. G.: Observing Profiles of Derived Kinematic Field Quantities Using a Network of Profiling Sites, J. Atmos. Ocean. Tech., 39, 335–351, <ext-link xlink:href="https://doi.org/10.1175/jtech-d-21-0061.1" ext-link-type="DOI">10.1175/jtech-d-21-0061.1</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx59"><label>Waldteufel and Corbin(1978)</label><mixed-citation>Waldteufel, P. and Corbin, H.: On the analysis of single-Doppler radar data, J. Appl. Meteorol., 18, 532–542, <ext-link xlink:href="https://doi.org/10.1175/1520-0450(1979)018&lt;0532:OTAOSD&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0450(1979)018&lt;0532:OTAOSD&gt;2.0.CO;2</ext-link>, 1978.</mixed-citation></ref>
      <ref id="bib1.bibx60"><label>Wang et al.(2015)Wang, Barthelmie, Clifton, and Pryor</label><mixed-citation>Wang, H., Barthelmie, R. J., Clifton, A., and Pryor, S. C.: Wind measurements from arc scans with Doppler wind lidar, J. Atmos. Ocean. Tech., 32, 2024–2040, <ext-link xlink:href="https://doi.org/10.1175/JTECH-D-14-00059.1" ext-link-type="DOI">10.1175/JTECH-D-14-00059.1</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx61"><label>Wang et al.(2016)Wang, Barthelmie, Pryor, and Brown</label><mixed-citation>Wang, H., Barthelmie, R. J., Pryor, S. C., and Brown, G.: Lidar arc scan uncertainty reduction through scanning geometry optimization, Atmos. Meas. Tech., 9, 1653–1669, <ext-link xlink:href="https://doi.org/10.5194/amt-9-1653-2016" ext-link-type="DOI">10.5194/amt-9-1653-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx62"><label>Werner(2005)</label><mixed-citation>Werner, C.: Doppler wind lidar, in: Lidar – range-resolved optical remote sensing of the atmosphere, chap. 12,  Springer Science &amp; Business Media, New York, NY, 326–354, <ext-link xlink:href="https://doi.org/10.1007/b106786" ext-link-type="DOI">10.1007/b106786</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx63"><label>Wieser and Gasch(2025a)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Albbruck, Swabian MOSES 2023, Level 0 netCDF files, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844518" ext-link-type="DOI">10.5281/zenodo.14844518</ext-link>, 2025a.</mixed-citation></ref>
      <ref id="bib1.bibx64"><label>Wieser and Gasch(2025b)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Fischerbach, Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844362" ext-link-type="DOI">10.5281/zenodo.14844362</ext-link>, 2025b.</mixed-citation></ref>
      <ref id="bib1.bibx65"><label>Wieser and Gasch(2025c)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Schallstadt, Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14842966" ext-link-type="DOI">10.5281/zenodo.14842966</ext-link>, 2025c. </mixed-citation></ref>
      <ref id="bib1.bibx66"><label>Wieser and Gasch(2025d)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Titisee-Neustadt, Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14843671" ext-link-type="DOI">10.5281/zenodo.14843671</ext-link>, 2025d.</mixed-citation></ref>
      <ref id="bib1.bibx67"><label>Wieser and Gasch(2025e)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Villingen-Schwenningen, August 2023, Swabian MOSES 2023, Level 0 netCDF files,   Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844286" ext-link-type="DOI">10.5281/zenodo.14844286</ext-link>, 2025e.</mixed-citation></ref>
      <ref id="bib1.bibx68"><label>Wieser and Gasch(2025f)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Villingen-Schwenningen, July 2023, Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844229" ext-link-type="DOI">10.5281/zenodo.14844229</ext-link>, 2025f.</mixed-citation></ref>
      <ref id="bib1.bibx69"><label>Wieser and Gasch(2025g)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Villingen-Schwenningen, June 2023, Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14844019" ext-link-type="DOI">10.5281/zenodo.14844019</ext-link>, 2025g.</mixed-citation></ref>
      <ref id="bib1.bibx70"><label>Wieser and Gasch(2025h)</label><mixed-citation>Wieser, A. and Gasch, P.: Doppler lidar measurements from Weil am Rhein, Swabian MOSES 2023, Level 0 netCDF files,   Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14843822" ext-link-type="DOI">10.5281/zenodo.14843822</ext-link>, 2025h.</mixed-citation></ref>
      <ref id="bib1.bibx71"><label>Wilkinson et al.(2016)Wilkinson, Dumontier, Aalbersberg, Appleton, Axton, Baak, Blomberg, Boiten, da Silva Santos, Bourne, Bouwman, Brookes, Clark, Crosas, Dillo, Dumon, Edmunds, Evelo, Finkers, Gonzalez-Beltran, Gray, Groth, Goble, Grethe, Heringa, t Hoen, Hooft, Kuhn, Kok, Kok, Lusher, Martone, Mons, Packer, Persson, Rocca-Serra, Roos, van Schaik, Sansone, Schultes, Sengstag, Slater, Strawn, Swertz, Thompson, Van Der Lei, Van Mulligen, Velterop, Waagmeester, Wittenburg, Wolstencroft, Zhao, and Mons</label><mixed-citation>Wilkinson, M. D., Dumontier, M., Aalbersberg, I. J., Appleton, G., Axton, M., Baak, A., Blomberg, N., Boiten, J.-W., da Silva Santos, L. B., Bourne, P. E., Bouwman, J., Brookes, A. J., Clark, T., Crosas, M., Dillo, I., Dumon, O., Edmunds, S., Evelo, C. T., Finkers, R., Gonzalez-Beltran, A., Gray, A. J., Groth, P., Goble, C., Grethe, J. S., Heringa, J., t Hoen, P. A., Hooft, R., Kuhn, T., Kok, R., Kok, J., Lusher, S. J., Martone, M. E., Mons, A., Packer, A. L., Persson, B., Rocca-Serra, P., Roos, M., van Schaik, R., Sansone, S.-A., Schultes, E., Sengstag, T., Slater, T., Strawn, G., Swertz, M. A., Thompson, M., Van Der Lei, J., Van Mulligen, E., Velterop, J., Waagmeester, A., Wittenburg, P., Wolstencroft, K., Zhao, J., and Mons, B.: Comment: The FAIR Guiding Principles for scientific data management and stewardship, Sci. Data, 3, <ext-link xlink:href="https://doi.org/10.1038/sdata.2016.18" ext-link-type="DOI">10.1038/sdata.2016.18</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx72"><label>Zentek et al.(2018)Zentek, Kohnemann, and Heinemann</label><mixed-citation>Zentek, R., Kohnemann, S. H. E., and Heinemann, G.: Analysis of the performance of a ship-borne scanning wind lidar in the Arctic and Antarctic, Atmos. Meas. Tech., 11, 5781–5795, <ext-link xlink:href="https://doi.org/10.5194/amt-11-5781-2018" ext-link-type="DOI">10.5194/amt-11-5781-2018</ext-link>, 2018.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Modular wind profile retrieval software for heterogeneous Doppler lidar measurements (AtmoProKIT v1.1)</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Adler et al.(2020)Adler, Gohm, Kalthoff, Babić, Corsmeier,
Lehner, Rotach, Haid, Markmann, Gast et al.</label><mixed-citation>
      
Adler, B., Gohm, A., Kalthoff, N., Babić, N., Corsmeier, U., Lehner, M.,
Rotach, M. W., Haid, M., Markmann, P., Gast, E.,   Tsaknakis, G., and  Georgoussis, G.: CROSSINN-a field
experiment to study the three-dimensional flow structure in the Inn Valley,
Austria, B. Am. Meteorol. Soc., 1–55,
<a href="https://doi.org/10.1175/BAMS-D-19-0283.1" target="_blank">https://doi.org/10.1175/BAMS-D-19-0283.1</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Baidar et al.(2023)Baidar, Wagner, Turner, and Brewer</label><mixed-citation>
      
Baidar, S., Wagner, T. J., Turner, D. D., and Brewer, W. A.: Using optimal estimation to retrieve winds from velocity-azimuth display (VAD) scans by a Doppler lidar, Atmos. Meas. Tech., 16, 3715–3726, <a href="https://doi.org/10.5194/amt-16-3715-2023" target="_blank">https://doi.org/10.5194/amt-16-3715-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Baker et al.(1995)Baker, Emmitt, Robertson, Atlas, Molinari, Bowdle,
Paegle, Hardesty, Post, Menzies, Krishnamurti, Brown, Anderson, Lorenc, and
McElroy</label><mixed-citation>
      
Baker, W. E., Emmitt, G. D., Robertson, F., Atlas, R. M., Molinari, J. E.,
Bowdle, D. A., Paegle, J., Hardesty, R. M., Post, M. J., Menzies, R. T.,
Krishnamurti, T. N., Brown, R. A., Anderson, J. R., Lorenc, A. C., and
McElroy, J.: Lidar-measured winds from space: A key component for weather
and climate prediction, B. Am. Meteorol. Soc., 76, 869–888,
<a href="https://doi.org/10.1175/1520-0477(1995)076&lt;0869:lmwfsa&gt;2.0.co;2" target="_blank">https://doi.org/10.1175/1520-0477(1995)076&lt;0869:lmwfsa&gt;2.0.co;2</a>, 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Baker et al.(2014)Baker, Atlas, Cardinali, Clement, Emmitt, Gentry,
Hardesty, Källén, Kavaya, Langland, Ma, Masutani, McCarty,
Pierce, Pu, Riishojgaard, Ryan, Tucker, Weissmann, and Yoe</label><mixed-citation>
      
Baker, W. E., Atlas, R., Cardinali, C., Clement, A., Emmitt, G. D., Gentry,
B. M., Hardesty, R. M., Källén, E., Kavaya, M. J., Langland, R.,
Ma, Z., Masutani, M., McCarty, W., Pierce, R. B., Pu, Z., Riishojgaard,
L. P., Ryan, J., Tucker, S., Weissmann, M., and Yoe, J. G.: Lidar-measured
wind profiles: The missing link in the global observing system, B. Am.
Meteorol. Soc., 95, 543–564, <a href="https://doi.org/10.1175/BAMS-D-12-00164.1" target="_blank">https://doi.org/10.1175/BAMS-D-12-00164.1</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Banta et al.(1999)Banta, Darby, Kaufmann, Levinson, and
Zhu</label><mixed-citation>
      
Banta, R. M., Darby, L. S., Kaufmann, P., Levinson, D. H., and Zhu, C.-J.:
Wind-Flow Patterns in the Grand Canyon as Revealed by Doppler Lidar, J. Appl. Meteorol., 38, 1069–1083,
<a href="https://doi.org/10.1175/1520-0450(1999)038&lt;1069:wfpitg&gt;2.0.co;2" target="_blank">https://doi.org/10.1175/1520-0450(1999)038&lt;1069:wfpitg&gt;2.0.co;2</a>, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Bell et al.(2020)Bell, Klein, Wildmann, and Menke</label><mixed-citation>
      
Bell, T. M., Klein, P., Wildmann, N., and Menke, R.: Analysis of flow in complex terrain using multi-Doppler lidar retrievals, Atmos. Meas. Tech., 13, 1357–1371, <a href="https://doi.org/10.5194/amt-13-1357-2020" target="_blank">https://doi.org/10.5194/amt-13-1357-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Bingöl et al.(2009)Bingöl, Mann, and
Foussekis</label><mixed-citation>
      
Bingöl, F., Mann, J., and Foussekis, D.: Conically scanning lidar error
in complex terrain, Meteorol. Z., 18, 189–195,
<a href="https://doi.org/10.1127/0941-2948/2009/0368" target="_blank">https://doi.org/10.1127/0941-2948/2009/0368</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Boccippio(1995)</label><mixed-citation>
      
Boccippio, D. J.: A diagnostic analysis of the VVP single-Doppler retrieval
technique, J. Atmos. Ocean. Tech., 12, 230–248,
<a href="https://doi.org/10.1175/1520-0426(1995)012&lt;0230:adaotv&gt;2.0.co;2" target="_blank">https://doi.org/10.1175/1520-0426(1995)012&lt;0230:adaotv&gt;2.0.co;2</a>, 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Bonin et al.(2017)Bonin, Choukulkar, Brewer, Sandberg, Weickmann,
Pichugina, Banta, Oncley, and Wolfe</label><mixed-citation>
      
Bonin, T. A., Choukulkar, A., Brewer, W. A., Sandberg, S. P., Weickmann, A. M., Pichugina, Y. L., Banta, R. M., Oncley, S. P., and Wolfe, D. E.: Evaluation of turbulence measurement techniques from a single Doppler lidar, Atmos. Meas. Tech., 10, 3021–3039, <a href="https://doi.org/10.5194/amt-10-3021-2017" target="_blank">https://doi.org/10.5194/amt-10-3021-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Bonin et al.(2018)Bonin, Carroll, Hardesty, Brewer, Hajny, Salmon,
and Shepson</label><mixed-citation>
      
Bonin, T. A., Carroll, B. J., Hardesty, R. M., Brewer, W. A., Hajny, K.,
Salmon, O. E., and Shepson, P. B.: Doppler Lidar Observations of the Mixing
Height in Indianapolis Using an Automated Composite Fuzzy Logic Approach,
J. Atmos. Ocean. Tech., 35, 473–490,
<a href="https://doi.org/10.1175/JTECH-D-17-0159.1" target="_blank">https://doi.org/10.1175/JTECH-D-17-0159.1</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Browning and Wexler(1968)</label><mixed-citation>
      
Browning, K. and Wexler, R.: The determination of kinematic properties of a
wind field using Doppler radar, J. Appl. Meteorol., 7, 105–113,
<a href="https://doi.org/10.1175/1520-0450(1968)007&lt;0105:tdokpo&gt;2.0.co;2" target="_blank">https://doi.org/10.1175/1520-0450(1968)007&lt;0105:tdokpo&gt;2.0.co;2</a>, 1968.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Chui and Mhaskar(2010)</label><mixed-citation>
      
Chui, C. K. and Mhaskar, H.: MRA contextual-recovery extension of smooth
functions on manifolds, Appl. Comput. Harmon. A., 28,
104–113, <a href="https://doi.org/10.1016/j.acha.2009.04.004" target="_blank">https://doi.org/10.1016/j.acha.2009.04.004</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Damelin and Hoang(2018)</label><mixed-citation>
      
Damelin, S. B. and Hoang, N. S.: On Surface Completion and Image Inpainting by
Biharmonic Functions: Numerical Aspects, International Journal of Mathematics
and Mathematical Sciences, 2018, <a href="https://doi.org/10.1155/2018/3950312" target="_blank">https://doi.org/10.1155/2018/3950312</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Drew et al.(2013)Drew, Barlow, and Lane</label><mixed-citation>
      
Drew, D. R., Barlow, J. F., and Lane, S. E.: Observations of wind speed
profiles over Greater London, UK, using a Doppler lidar, J. Wind Eng. Ind.
Aerod., 121, 98–105, <a href="https://doi.org/10.1016/j.jweia.2013.07.019" target="_blank">https://doi.org/10.1016/j.jweia.2013.07.019</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Eaton et al.(2023)Eaton, Gregory, Drach, Taylor, Hankin, Blower,
Caron, Signell, Bentley, Rappa, Höck, Pamment, Juckes, Raspaud, Randy Horne,
Blodgett, Zender, Lee, Hassell, Snow, Kölling, Allured, Jelenak, Soerensen,
Gaultier, Herlédan, Manzano, Bärring, Barker, and Bartholomew</label><mixed-citation>
      
Eaton, B., Gregory, J., Drach, B., Taylor, K., Hankin, S., Blower, J., Caron,
J., Signell, R., Bentley, P., Rappa, G., Höck, H., Pamment, A., Juckes, M.,
Raspaud, M., Randy Horne, T. W., Blodgett, D., Zender, C., Lee, D., Hassell,
D., Snow, A. D., Kölling, T., Allured, D., Jelenak, A., Soerensen, A. M.,
Gaultier, L., Herlédan, S., Manzano, F., Bärring, L., Barker, C., and
Bartholomew, S.: NetCDF Climate and Forecast (CF) Metadata Conventions, version 1.11,
<a href="https://cfconventions.org/Data/cf-conventions/cf-conventions-1.11/cf-conventions.pdf" target="_blank"/> (last access: 27 August 2024), 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Erdmann(2025)</label><mixed-citation>
      
Erdmann, A.: AtmoProKIT level 1 Doppler lidar measurements demonstration dataset, Karlsruhe Institute of Technology [data set], <a href="https://doi.org/10.35097/XZWDZQJFYUAJC0CE" target="_blank">https://doi.org/10.35097/XZWDZQJFYUAJC0CE</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Erdmann and Gasch(2026a)</label><mixed-citation>
      
Erdmann, A. and Gasch, P.: Code for Erdmann and Gasch: Modular wind profile
retrieval software for heterogeneous Doppler lidar measurements (AtmoProKIT
v1.1), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.14844632" target="_blank">https://doi.org/10.5281/zenodo.14844632</a>, 2026a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Erdmann and Gasch(2026b)</label><mixed-citation>
      
Erdmann, A. and Gasch, P.: Doppler lidar validation data for Erdmann and Gasch:
Modular wind profile retrieval software for heterogeneous Doppler lidar
measurements, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.14844887" target="_blank">https://doi.org/10.5281/zenodo.14844887</a>, 2026b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Fernando et al.(2019)Fernando, Mann, Palma, Lundquist, Barthelmie,
Belo-Pereira, Brown, Chow, Gerz, Hocut, Klein, Leo, Matos, Oncley, Pryor,
Bariteau, Bell, Bodini, Carney, Courtney, Creegan, Dimitrova, Gomes, Hagen,
Hyde, Kigle, Krishnamurthy, Lopes, Mazzaro, Neher, Menke, Murphy, Oswald,
Otarola-Bustos, Pattantyus, Rodrigues, Schady, Sirin, Spuler, Svensson,
Tomaszewski, Turner, van Veen, Vasiljević, Vassallo, Voss, Wildmann, and
Wang</label><mixed-citation>
      
Fernando, H. J. S., Mann, J., Palma, J. M. L. M., Lundquist, J. K., Barthelmie,
R. J., Belo-Pereira, M., Brown, W. O. J., Chow, F. K., Gerz, T., Hocut,
C. M., Klein, P. M., Leo, L. S., Matos, J. C., Oncley, S. P., Pryor, S. C.,
Bariteau, L., Bell, T. M., Bodini, N., Carney, M. B., Courtney, M. S.,
Creegan, E. D., Dimitrova, R., Gomes, S., Hagen, M., Hyde, J. O., Kigle, S.,
Krishnamurthy, R., Lopes, J. C., Mazzaro, L., Neher, J. M. T., Menke, R.,
Murphy, P., Oswald, L., Otarola-Bustos, S., Pattantyus, A. K., Rodrigues,
C. V., Schady, A., Sirin, N., Spuler, S., Svensson, E., Tomaszewski, J.,
Turner, D. D., van Veen, L., Vasiljević, N., Vassallo, D., Voss, S.,
Wildmann, N., and Wang, Y.: The Perdigão: Peering into microscale details
of mountain winds, B. Am. Meteorol. Soc., 100, 799–819,
<a href="https://doi.org/10.1175/bams-d-17-0227.1" target="_blank">https://doi.org/10.1175/bams-d-17-0227.1</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Gasch et al.(2020)Gasch, Wieser, Lundquist, and Kalthoff</label><mixed-citation>
      
Gasch, P., Wieser, A., Lundquist, J. K., and Kalthoff, N.: An LES-based airborne Doppler lidar simulator and its application to wind profiling in inhomogeneous flow conditions, Atmos. Meas. Tech., 13, 1609–1631, <a href="https://doi.org/10.5194/amt-13-1609-2020" target="_blank">https://doi.org/10.5194/amt-13-1609-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Gasch et al.(2023)Gasch, Kasic, Maas, and Wang</label><mixed-citation>
      
Gasch, P., Kasic, J., Maas, O., and Wang, Z.: Advancing airborne Doppler lidar wind profiling in turbulent boundary layer flow – an LES-based optimization of traditional scanning-beam versus novel fixed-beam measurement systems, Atmos. Meas. Tech., 16, 5495–5523, <a href="https://doi.org/10.5194/amt-16-5495-2023" target="_blank">https://doi.org/10.5194/amt-16-5495-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Gebauer and Bell(2024)</label><mixed-citation>
      
Gebauer, J. G. and Bell, T. M.: A Flexible, Multi-Instrument Optimal Estimation
Retrieval for Wind Profiles, J. Atmos. Ocean. Tech.,
41, 605–620, <a href="https://doi.org/10.1175/JTECH-D-23-0134.1" target="_blank">https://doi.org/10.1175/JTECH-D-23-0134.1</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Handwerker et al.(2025)Handwerker, Barthlott, Bauckholt, Belleflamme,
Böhmländer, Borg, Dick, Dietrich, Fichtelmann, Geppert, Goergen, Güntner,
Hammoudeh, Hervo, Hühn, Kaniyodical Sebastian, Keller, Kohler, Knippertz,
Kunz, Landmark, Li, Mohannazadeh, Möhler, Morsy, Najafi, Nallasamy, Oertel,
Rakovec, Reich, Reich, Saathoff, Samaniego, Schrön, Schütze, Steinert,
Vogel, Vorogushyn, Weber, Wieser, and Zhang</label><mixed-citation>
      
Handwerker, J., Barthlott, C., Bauckholt, M., Belleflamme, A., Böhmländer,
A., Borg, E., Dick, G., Dietrich, P., Fichtelmann, B., Geppert, G., Goergen,
K., Güntner, A., Hammoudeh, S., Hervo, M., Hühn, E., Kaniyodical Sebastian,
M., Keller, J., Kohler, M., Knippertz, P., Kunz, M., Landmark, S., Li, Y.,
Mohannazadeh, M., Möhler, O., Morsy, M., Najafi, H., Nallasamy, N. D.,
Oertel, A., Rakovec, O., Reich, H., Reich, M., Saathoff, H., Samaniego, L.,
Schrön, M., Schütze, C., Steinert, T., Vogel, F., Vorogushyn, S., Weber,
U., Wieser, A., and Zhang, H.: From initiation of convective storms to their
impact – the Swabian MOSES 2023 campaign in southwestern Germany, Front.
Earth Sci.,  13, <a href="https://doi.org/10.3389/feart.2025.1555755" target="_blank">https://doi.org/10.3389/feart.2025.1555755</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Hervo and Coen(2024)</label><mixed-citation>
      
Hervo, M. and Coen, M.: Custom collection of Doppler lidar wind data from
Payerne between 1 Jun and 31 Aug 2023, ACTRIS Cloud remote sensing data
centre unit (CLU) [data set], <a href="https://cloudnet.fmi.fi/instrument/a3c0f804-d91e-4966-9efb-aef54b9f2cd1" target="_blank"/> (last access: 4 March 2026), 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Hoyer and Hamman(2017)</label><mixed-citation>
      
Hoyer, S. and Hamman, J.: xarray: N-D labeled Arrays and Datasets in
Python, J. Open Res. Softw., 5, 10–10,
<a href="https://doi.org/10.5334/jors.148" target="_blank">https://doi.org/10.5334/jors.148</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Kawabata et al.(2014)Kawabata, Iwai, Seko, Shoji, Saito, Ishii, and
Mizutani</label><mixed-citation>
      
Kawabata, T., Iwai, H., Seko, H., Shoji, Y., Saito, K., Ishii, S., and
Mizutani, K.: Cloud-resolving 4D-Var assimilation of Doppler wind lidar data
on a meso-gamma-scale convective system, Mon. Weather Rev., 142, 4484–4498,
<a href="https://doi.org/10.1175/mwr-d-13-00362.1" target="_blank">https://doi.org/10.1175/mwr-d-13-00362.1</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Kayser et al.(2021)Kayser, Päschke, Detring, Lehmann, Beyrich, and
Leinweber</label><mixed-citation>
      
Kayser, M., Päschke, E., Detring, C., Lehmann, V., Beyrich, F., and Leinweber, R.: Standardized Doppler lidar processing for operational use in a future network, DACH2022, Leipzig, Deutschland, 21–25 Mar 2022, DACH2022-209, <a href="https://doi.org/10.5194/dach2022-209" target="_blank">https://doi.org/10.5194/dach2022-209</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Kohler(2025)</label><mixed-citation>
      
Kohler, M.: Radiosonde measurements from Villingen-Schwenningen, Swabian MOSES
2023, Level 0 BUFR files [data set], <a href="https://doi.org/10.35097/2gc4v9mv5k8qmsa8" target="_blank">https://doi.org/10.35097/2gc4v9mv5k8qmsa8</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Kunz et al.(2022)Kunz, Abbas, Bauckholt, Böhmländer, Feuerle,
Gasch, Glaser, Groß, Hajnsek, Handwerker, Hase, Khordakova, Knippertz,
Kohler, Lange, Latt, Laube, Martin, Mauder, Möhler, Mohr, Reitter,
Rettenmeier, Rolf, Saathoff, Schrön, Schütze, Spahr, Späth, Vogel,
Völksch, Weber, Wieser, Wilhelm, Zhang, and Dietrich</label><mixed-citation>
      
Kunz, M., Abbas, S. S., Bauckholt, M., Böhmländer, A., Feuerle, T., Gasch,
P., Glaser, C., Groß, J., Hajnsek, I., Handwerker, J., Hase, F., Khordakova,
D., Knippertz, P., Kohler, M., Lange, D., Latt, M., Laube, J., Martin, L.,
Mauder, M., Möhler, O., Mohr, S., Reitter, R. W., Rettenmeier, A., Rolf, C.,
Saathoff, H., Schrön, M., Schütze, C., Spahr, S., Späth, F., Vogel, F.,
Völksch, I., Weber, U., Wieser, A., Wilhelm, J., Zhang, H., and Dietrich,
P.: Swabian MOSES 2021: An interdisciplinary field campaign for
investigating convective storms and their event chains, Front. Earth Sci.,
p. 1886, <a href="https://doi.org/10.3389/feart.2022.999593" target="_blank">https://doi.org/10.3389/feart.2022.999593</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Manninen et al.(2016)Manninen, O'Connor, Vakkari, and
Petäjä</label><mixed-citation>
      
Manninen, A. J., O'Connor, E. J., Vakkari, V., and Petäjä, T.: A generalised background correction algorithm for a Halo Doppler lidar and its application to data from Finland, Atmos. Meas. Tech., 9, 817–827, <a href="https://doi.org/10.5194/amt-9-817-2016" target="_blank">https://doi.org/10.5194/amt-9-817-2016</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Menke(2012)</label><mixed-citation>
      
Menke, W.: Describing inverse problems, Elsevier/Academic Press, Oxford UK,
<a href="https://doi.org/10.1016/B978-0-12-397160-9.00001-1" target="_blank">https://doi.org/10.1016/B978-0-12-397160-9.00001-1</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Mense et al.(2024)Mense, Höffner, Baumgarten, Eixmann, Froh, Mauer,
Munk, Wing, and Lübken</label><mixed-citation>
      
Mense, T. H., Höffner, J., Baumgarten, G., Eixmann, R., Froh, J., Mauer, A., Munk, A., Wing, R., and Lübken, F.-J.: 3D wind observations with a compact mobile lidar based on tropo- and stratospheric aerosol backscatter, Atmos. Meas. Tech., 17, 1665–1677, <a href="https://doi.org/10.5194/amt-17-1665-2024" target="_blank">https://doi.org/10.5194/amt-17-1665-2024</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Neto and Castelao(2023)</label><mixed-citation>
      
Neto, J. D. and Castelao, G. P.: lidarwind: A Python package for retrieving
wind profiles from Doppler lidar observations, J. Open Source
Softw., 8, 4852, <a href="https://doi.org/10.21105/joss.04852" target="_blank">https://doi.org/10.21105/joss.04852</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Newsom and Banta(2004)</label><mixed-citation>
      
Newsom, R. K. and Banta, R. M.: Assimilating Coherent Doppler Lidar
Measurements into a Model of the Atmospheric Boundary Layer. Part I:
Algorithm Development and Sensitivity to Measurement Error, J. Atmos. Ocean.
Tech., 21, 1328–1345, <a href="https://doi.org/10.1175/1520-0426(2004)021&lt;1328:acdlmi&gt;2.0.co;2" target="_blank">https://doi.org/10.1175/1520-0426(2004)021&lt;1328:acdlmi&gt;2.0.co;2</a>,
2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>O’Connor et al.(2010)O’Connor, Illingworth, Brooks, Westbrook,
Hogan, Davies, and Brooks</label><mixed-citation>
      
O’Connor, E. J., Illingworth, A. J., Brooks, I. M., Westbrook, C. D., Hogan,
R. J., Davies, F., and Brooks, B. J.: A Method for Estimating the Turbulent
Kinetic Energy Dissipation Rate from a Vertically Pointing Doppler Lidar, and
Independent Evaluation from Balloon-Borne In Situ Measurements, J. Atmos.
Ocean. Tech., 27, 1652–1664, <a href="https://doi.org/10.1175/2010jtecha1455.1" target="_blank">https://doi.org/10.1175/2010jtecha1455.1</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Päschke et al.(2015)Päschke, Leinweber, and
Lehmann</label><mixed-citation>
      
Päschke, E., Leinweber, R., and Lehmann, V.: An assessment of the performance of a 1.5&thinsp;μm Doppler lidar for operational vertical wind profiling based on a 1-year trial, Atmos. Meas. Tech., 8, 2251–2266, <a href="https://doi.org/10.5194/amt-8-2251-2015" target="_blank">https://doi.org/10.5194/amt-8-2251-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Pearson and Collier(1999)</label><mixed-citation>
      
Pearson, G. N. and Collier, C. G.: A pulsed coherent CO<sub>2</sub> lidar
for boundary-layer meteorology, Q. J. Roy. Meteor. Soc., 125,
2703–2721, <a href="https://doi.org/10.1002/qj.49712555918" target="_blank">https://doi.org/10.1002/qj.49712555918</a>, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Pentikäinen et al.(2023)Pentikäinen, O'Connor, and
Ortiz-Amezcua</label><mixed-citation>
      
Pentikäinen, P., O'Connor, E. J., and Ortiz-Amezcua, P.: Evaluating wind profiles in a numerical weather prediction model with Doppler lidar, Geosci. Model Dev., 16, 2077–2094, <a href="https://doi.org/10.5194/gmd-16-2077-2023" target="_blank">https://doi.org/10.5194/gmd-16-2077-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Pichugina et al.(2019)Pichugina, Banta, Bonin, Brewer, Choukulkar,
McCarty, Baidar, Draxl, Fernando, Kenyon, Krishnamurthy, Marquis, Olson,
Sharp, and Stoelinga</label><mixed-citation>
      
Pichugina, Y. L., Banta, R. M., Bonin, T., Brewer, W. A., Choukulkar, A.,
McCarty, B. J., Baidar, S., Draxl, C., Fernando, H. J. S., Kenyon, J.,
Krishnamurthy, R., Marquis, M., Olson, J., Sharp, J., and Stoelinga, M.:
Spatial Variability of Winds and HRRR–NCEP Model Error Statistics at Three
Doppler-Lidar Sites in the Wind-Energy Generation Region of the Columbia
River Basin, J.  Appl. Meteorol. Clim., 58, 1633–1656, <a href="https://doi.org/10.1175/JAMC-D-18-0244.1" target="_blank">https://doi.org/10.1175/JAMC-D-18-0244.1</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Päschke and Detring(2024)</label><mixed-citation>
      
Päschke, E. and Detring, C.: Noise filtering options for conically scanning Doppler lidar measurements with low pulse accumulation, Atmos. Meas. Tech., 17, 3187–3217, <a href="https://doi.org/10.5194/amt-17-3187-2024" target="_blank">https://doi.org/10.5194/amt-17-3187-2024</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Rahlves et al.(2022)Rahlves, Beyrich, and Raasch</label><mixed-citation>
      
Rahlves, C., Beyrich, F., and Raasch, S.: Scan strategies for wind profiling with Doppler lidar – an large-eddy simulation (LES)-based evaluation, Atmos. Meas. Tech., 15, 2839–2856, <a href="https://doi.org/10.5194/amt-15-2839-2022" target="_blank">https://doi.org/10.5194/amt-15-2839-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Rew and Davis(1990)</label><mixed-citation>
      
Rew, R. and Davis, G.: NetCDF: an interface for scientific data access, IEEE
Comput.  Graph. Appl., 10, 76–82, <a href="https://doi.org/10.1109/38.56302" target="_blank">https://doi.org/10.1109/38.56302</a>, 1990.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Robey and Lundquist(2022)</label><mixed-citation>
      
Robey, R. and Lundquist, J. K.: Behavior and mechanisms of Doppler wind lidar error in varying stability regimes, Atmos. Meas. Tech., 15, 4585–4622, <a href="https://doi.org/10.5194/amt-15-4585-2022" target="_blank">https://doi.org/10.5194/amt-15-4585-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Rucker et al.(2008)Rucker, Banta, and Steyn</label><mixed-citation>
      
Rucker, M., Banta, R. M., and Steyn, D. G.: Along-Valley Structure of Daytime
Thermally Driven Flows in the Wipp Valley, J. Appl. Meteorol. Clim., 47,
733–751, <a href="https://doi.org/10.1175/2007jamc1319.1" target="_blank">https://doi.org/10.1175/2007jamc1319.1</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Rye and Hardesty(1993a)</label><mixed-citation>
      
Rye, B. J. and Hardesty, R. M.: Discrete spectral peak estimation in
incoherent backscatter heterodyne lidar. I. Spectral accumulation and the
Cramer-Rao lower bound, IEEE T. Geosci. Remote Sens., 31, 16–27,
<a href="https://doi.org/10.1109/36.210440" target="_blank">https://doi.org/10.1109/36.210440</a>, 1993a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Rye and Hardesty(1993b)</label><mixed-citation>
      
Rye, B. J. and Hardesty, R. M.: Discrete spectral peak estimation in
incoherent backscatter heterodyne lidar. II. Correlogram accumulation, IEEE
T. Geosci. Remote Sens., 31, 28–35, <a href="https://doi.org/10.1109/36.210441" target="_blank">https://doi.org/10.1109/36.210441</a>,
1993b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Sathe and Mann(2013)</label><mixed-citation>
      
Sathe, A. and Mann, J.: A review of turbulence measurements using ground-based wind lidars, Atmos. Meas. Tech., 6, 3147–3167, <a href="https://doi.org/10.5194/amt-6-3147-2013" target="_blank">https://doi.org/10.5194/amt-6-3147-2013</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Schmithüsen(2022)</label><mixed-citation>
      
Schmithüsen, H.: Radiosonde measurements from Neumayer Station (1983-02
et seq), PANGAEA [data set], <a href="https://doi.org/10.1594/PANGAEA.940584" target="_blank">https://doi.org/10.1594/PANGAEA.940584</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Schmithüsen et al.(2024)Schmithüsen, Engelmann, and
Radenz</label><mixed-citation>
      
Schmithüsen, H., Engelmann, R., and Radenz, M.: Custom collection of Doppler
lidar wind data from Neumayer Station between 1 Jan and 27 Nov 2024, ACTRIS
Cloud remote sensing data centre unit (CLU) [data set], <a href="https://cloudnet.fmi.fi/instrument/e166bb0b-5e92-46ce-adb8-73ed38ecc459" target="_blank"/> (last access: 4 March 2026), 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Smalikho and Banakh(2017)</label><mixed-citation>
      
Smalikho, I. N. and Banakh, V. A.: Measurements of wind turbulence parameters by a conically scanning coherent Doppler lidar in the atmospheric boundary layer, Atmos. Meas. Tech., 10, 4191–4208, <a href="https://doi.org/10.5194/amt-10-4191-2017" target="_blank">https://doi.org/10.5194/amt-10-4191-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Steinheuer et al.(2022)Steinheuer, Detring, Beyrich, Löhnert,
Friederichs, and Fiedler</label><mixed-citation>
      
Steinheuer, J., Detring, C., Beyrich, F., Löhnert, U., Friederichs, P., and Fiedler, S.: A new scanning scheme and flexible retrieval for mean winds and gusts from Doppler lidar measurements, Atmos. Meas. Tech., 15, 3243–3260, <a href="https://doi.org/10.5194/amt-15-3243-2022" target="_blank">https://doi.org/10.5194/amt-15-3243-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Teschke and Lehmann(2017)</label><mixed-citation>
      
Teschke, G. and Lehmann, V.: Mean wind vector estimation using the velocity–azimuth display (VAD) method: an explicit algebraic solution, Atmos. Meas. Tech., 10, 3265–3271, <a href="https://doi.org/10.5194/amt-10-3265-2017" target="_blank">https://doi.org/10.5194/amt-10-3265-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Träumner et al.(2015)Träumner, Damian, Stawiarski, and
Wieser</label><mixed-citation>
      
Träumner, K., Damian, T., Stawiarski, C., and Wieser, A.: Turbulent
structures and coherence in the atmospheric surface layer, Bound.-Lay.
Meteorol., 154, 1–25, <a href="https://doi.org/10.1007/s10546-014-9967-6" target="_blank">https://doi.org/10.1007/s10546-014-9967-6</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Tucker et al.(2009)Tucker, Senff, Weickmann, Brewer, Banta, Sandberg,
Law, and Hardesty</label><mixed-citation>
      
Tucker, S. C., Senff, C. J., Weickmann, A. M., Brewer, W. A., Banta, R. M.,
Sandberg, S. P., Law, D. C., and Hardesty, R. M.: Doppler Lidar Estimation of
Mixing Height Using Turbulence, Shear, and Aerosol Profiles, J.
Atmos. Ocean. Tech., 26, 673–688,
<a href="https://doi.org/10.1175/2008JTECHA1157.1" target="_blank">https://doi.org/10.1175/2008JTECHA1157.1</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Tukiainen et al.(2024)Tukiainen, Siipola, Leskinen, and
O'Connor</label><mixed-citation>
      
Tukiainen, S., Siipola, T., Leskinen, N., and O'Connor, E.: Cloudnet – an ACTRIS data repository for cloud remote sensing observations, EGU General Assembly 2024, Vienna, Austria, 14–19 Apr 2024, EGU24-20005, <a href="https://doi.org/10.5194/egusphere-egu24-20005" target="_blank">https://doi.org/10.5194/egusphere-egu24-20005</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Vakkari et al.(2019)Vakkari, Manninen, O'Connor, Schween, van Zyl,
and Marinou</label><mixed-citation>
      
Vakkari, V., Manninen, A. J., O'Connor, E. J., Schween, J. H., van Zyl, P. G., and Marinou, E.: A novel post-processing algorithm for Halo Doppler lidars, Atmos. Meas. Tech., 12, 839–852, <a href="https://doi.org/10.5194/amt-12-839-2019" target="_blank">https://doi.org/10.5194/amt-12-839-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>van der Walt et al.(2011)van der Walt, Colbert, and
Varoquaux</label><mixed-citation>
      
van der Walt, S., Colbert, S. C., and Varoquaux, G.: The NumPy Array: A
Structure for Efficient Numerical Computation, Comput. Sci.
Eng., 13, 22–30, <a href="https://doi.org/10.1109/MCSE.2011.37" target="_blank">https://doi.org/10.1109/MCSE.2011.37</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Wagner et al.(2022)Wagner, Turner, Heus, and Blumberg</label><mixed-citation>
      
Wagner, T. J., Turner, D. D., Heus, T., and Blumberg, W. G.: Observing
Profiles of Derived Kinematic Field Quantities Using a Network of Profiling
Sites, J. Atmos. Ocean. Tech., 39, 335–351,
<a href="https://doi.org/10.1175/jtech-d-21-0061.1" target="_blank">https://doi.org/10.1175/jtech-d-21-0061.1</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Waldteufel and Corbin(1978)</label><mixed-citation>
      
Waldteufel, P. and Corbin, H.: On the analysis of single-Doppler radar data,
J. Appl. Meteorol., 18, 532–542,
<a href="https://doi.org/10.1175/1520-0450(1979)018&lt;0532:OTAOSD&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0450(1979)018&lt;0532:OTAOSD&gt;2.0.CO;2</a>, 1978.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Wang et al.(2015)Wang, Barthelmie, Clifton, and Pryor</label><mixed-citation>
      
Wang, H., Barthelmie, R. J., Clifton, A., and Pryor, S. C.: Wind measurements
from arc scans with Doppler wind lidar, J. Atmos. Ocean. Tech., 32,
2024–2040, <a href="https://doi.org/10.1175/JTECH-D-14-00059.1" target="_blank">https://doi.org/10.1175/JTECH-D-14-00059.1</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>Wang et al.(2016)Wang, Barthelmie, Pryor, and Brown</label><mixed-citation>
      
Wang, H., Barthelmie, R. J., Pryor, S. C., and Brown, G.: Lidar arc scan uncertainty reduction through scanning geometry optimization, Atmos. Meas. Tech., 9, 1653–1669, <a href="https://doi.org/10.5194/amt-9-1653-2016" target="_blank">https://doi.org/10.5194/amt-9-1653-2016</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib62"><label>Werner(2005)</label><mixed-citation>
      
Werner, C.: Doppler wind lidar, in: Lidar – range-resolved optical remote
sensing of the atmosphere, chap. 12,  Springer Science &amp;
Business Media, New York, NY, 326–354, <a href="https://doi.org/10.1007/b106786" target="_blank">https://doi.org/10.1007/b106786</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib63"><label>Wieser and Gasch(2025a)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from Albbruck, Swabian
MOSES 2023, Level 0 netCDF files, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.14844518" target="_blank">https://doi.org/10.5281/zenodo.14844518</a>,
2025a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib64"><label>Wieser and Gasch(2025b)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from Fischerbach, Swabian
MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.14844362" target="_blank">https://doi.org/10.5281/zenodo.14844362</a>,
2025b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib65"><label>Wieser and Gasch(2025c)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from Schallstadt, Swabian
MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.14842966" target="_blank">https://doi.org/10.5281/zenodo.14842966</a>,
2025c.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib66"><label>Wieser and Gasch(2025d)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from Titisee-Neustadt,
Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.14843671" target="_blank">https://doi.org/10.5281/zenodo.14843671</a>,
2025d.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib67"><label>Wieser and Gasch(2025e)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from
Villingen-Schwenningen, August 2023, Swabian MOSES 2023, Level 0 netCDF
files,   Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.14844286" target="_blank">https://doi.org/10.5281/zenodo.14844286</a>, 2025e.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib68"><label>Wieser and Gasch(2025f)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from
Villingen-Schwenningen, July 2023, Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set],
<a href="https://doi.org/10.5281/zenodo.14844229" target="_blank">https://doi.org/10.5281/zenodo.14844229</a>, 2025f.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib69"><label>Wieser and Gasch(2025g)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from
Villingen-Schwenningen, June 2023, Swabian MOSES 2023, Level 0 netCDF files,  Zenodo [data set],
<a href="https://doi.org/10.5281/zenodo.14844019" target="_blank">https://doi.org/10.5281/zenodo.14844019</a>, 2025g.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib70"><label>Wieser and Gasch(2025h)</label><mixed-citation>
      
Wieser, A. and Gasch, P.: Doppler lidar measurements from Weil am Rhein,
Swabian MOSES 2023, Level 0 netCDF files,   Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.14843822" target="_blank">https://doi.org/10.5281/zenodo.14843822</a>,
2025h.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib71"><label>Wilkinson et al.(2016)Wilkinson, Dumontier, Aalbersberg, Appleton,
Axton, Baak, Blomberg, Boiten, da Silva Santos, Bourne, Bouwman, Brookes,
Clark, Crosas, Dillo, Dumon, Edmunds, Evelo, Finkers, Gonzalez-Beltran, Gray,
Groth, Goble, Grethe, Heringa, t Hoen, Hooft, Kuhn, Kok, Kok, Lusher,
Martone, Mons, Packer, Persson, Rocca-Serra, Roos, van Schaik, Sansone,
Schultes, Sengstag, Slater, Strawn, Swertz, Thompson, Van Der Lei,
Van Mulligen, Velterop, Waagmeester, Wittenburg, Wolstencroft, Zhao, and
Mons</label><mixed-citation>
      
Wilkinson, M. D., Dumontier, M., Aalbersberg, I. J., Appleton, G., Axton, M.,
Baak, A., Blomberg, N., Boiten, J.-W., da Silva Santos, L. B., Bourne, P. E.,
Bouwman, J., Brookes, A. J., Clark, T., Crosas, M., Dillo, I., Dumon, O.,
Edmunds, S., Evelo, C. T., Finkers, R., Gonzalez-Beltran, A., Gray, A. J.,
Groth, P., Goble, C., Grethe, J. S., Heringa, J., t Hoen, P. A., Hooft, R.,
Kuhn, T., Kok, R., Kok, J., Lusher, S. J., Martone, M. E., Mons, A., Packer,
A. L., Persson, B., Rocca-Serra, P., Roos, M., van Schaik, R., Sansone,
S.-A., Schultes, E., Sengstag, T., Slater, T., Strawn, G., Swertz, M. A.,
Thompson, M., Van Der Lei, J., Van Mulligen, E., Velterop, J., Waagmeester,
A., Wittenburg, P., Wolstencroft, K., Zhao, J., and Mons, B.: Comment: The
FAIR Guiding Principles for scientific data management and stewardship,
Sci. Data, 3, <a href="https://doi.org/10.1038/sdata.2016.18" target="_blank">https://doi.org/10.1038/sdata.2016.18</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib72"><label>Zentek et al.(2018)Zentek, Kohnemann, and Heinemann</label><mixed-citation>
      
Zentek, R., Kohnemann, S. H. E., and Heinemann, G.: Analysis of the performance of a ship-borne scanning wind lidar in the Arctic and Antarctic, Atmos. Meas. Tech., 11, 5781–5795, <a href="https://doi.org/10.5194/amt-11-5781-2018" target="_blank">https://doi.org/10.5194/amt-11-5781-2018</a>, 2018.

    </mixed-citation></ref-html>--></article>
