<?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">AMT</journal-id><journal-title-group>
    <journal-title>Atmospheric Measurement Techniques</journal-title>
    <abbrev-journal-title abbrev-type="publisher">AMT</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Atmos. Meas. Tech.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1867-8548</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/amt-18-2261-2025</article-id><title-group><article-title>An introduction of the Three-Dimensional Precipitation Particle Imager (3D-PPI)</article-title><alt-title>Three-Dimensional Precipitation Particle Imager</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Shi</surname><given-names>Jiayi</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Liu</surname><given-names>Xichuan</given-names></name>
          <email>liuxichuan17@nudt.edu.cn</email>
        <ext-link>https://orcid.org/0000-0002-3393-3988</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Liu</surname><given-names>Lei</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-9330-4315</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Liu</surname><given-names>Liying</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Wang</surname><given-names>Peng</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>College of Meteorology and Oceanography, National University of Defense Technology, Changsha, China</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Key Laboratory of High Impact Weather (special), China Meteorological Administration, Changsha, China</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Aerospace NewSky Technology Co., Ltd, Wuxi, China</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Xichuan Liu (liuxichuan17@nudt.edu.cn)</corresp></author-notes><pub-date><day>27</day><month>May</month><year>2025</year></pub-date>
      
      <volume>18</volume>
      <issue>10</issue>
      <fpage>2261</fpage><lpage>2278</lpage>
      <history>
        <date date-type="received"><day>16</day><month>June</month><year>2024</year></date>
           <date date-type="rev-request"><day>12</day><month>July</month><year>2024</year></date>
           <date date-type="rev-recd"><day>24</day><month>February</month><year>2025</year></date>
           <date date-type="accepted"><day>3</day><month>March</month><year>2025</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2025 Jiayi Shi et al.</copyright-statement>
        <copyright-year>2025</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://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025.html">This article is available from https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025.html</self-uri><self-uri xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025.pdf">The full text article is available as a PDF file from https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e130">The Three-Dimensional Precipitation Particle Imager (3D-PPI) is presented as a new instrument for measuring the size, fall velocity, and three-dimensional shape of precipitation particles. The 3D-PPI consists of three high-resolution cameras with telecentric lenses and one high-speed camera with one non-telecentric lens. The former captures high-resolution images of falling particles from three angles, enabling three-dimensional (3D) shape reconstruction via a 3D reconstruction algorithm, while the large observation volume facilitates particle size distribution (PSD) analysis. The latter records the images of the falling precipitation particles with 200 frames per second, based on which the falling velocity of particles can be calculated. The field experiment of the 3D-PPI and OTT Parsivel disdrometer (OTT) was conducted in Tulihe, China, with more than 880 000 snowflakes  recorded during a typical snowfall case lasting 13 h, and the results indicate  strong agreement between the PSDs obtained by the 3D-PPI and those obtained by the OTT. This demonstrates its potential application in atmospheric science, polar research, and other fields.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>National Key Research and Development Program of China</funding-source>
<award-id>2021YFC2802501</award-id>
</award-group>
<award-group id="gs2">
<funding-source>National Natural Science Foundation of China</funding-source>
<award-id>42222505</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e142">Precipitation microphysics refers to the interactions and processes associated with the scale of individual precipitation particles. Microphysics and microstructure, i.e., the distribution of particle properties, such as size, shape, density, and mass, together determine the state and evolution of clouds and precipitation at this scale and are intrinsic to the process of cloud and precipitation evolution (Taylor, 1998). The microphysical properties of spherical (or ellipsoidal) raindrops are relatively well studied. Research on ice-phase precipitation (such as snowflakes) microphysics is complicated by the complex geometry of individual snowflakes. Minor variations in air temperature and humidity can cause significant changes in the shape of ice crystals, resulting in a wide variety of crystal shapes ranging from simple plates and columns to complex dendrites or needles (Bailey and Hallett, 2012). Aggregation combines individual crystals into complex and random shapes of snowflakes. Despite the challenges associated with measuring snowflake shapes, the significance of this work is substantial. Accurate measurement of snowflake shapes is crucial for advancing our understanding of atmospheric sciences, particularly in ice- and mixed-phase cloud formation and precipitation processes (Morrison et al., 2020). Specifically, accurate descriptions of snowflake shapes are critical for triple-frequency radar retrievals, as they directly influence the interpretation of radar echoes and the assessment of snow's microphysical properties (Mason et al., 2019). Moreover, precise shape descriptions of snowflakes will significantly improve  radar-based quantitative winter precipitation estimation (Notaroš et al., 2016).</p>
      <p id="d2e145">The absence of accurate information on the three-dimensional (3D) shape of precipitation particles leads to errors in the parameterization of physical processes in cloud precipitation and quantitative precipitation estimation (QPE) using weather radar. The assumption that true snowflakes are ellipsoidal may lead to inaccurate scattering matrix calculations and hence incorrect determinations of snow water equivalent (Tyynelä et al., 2011). The ellipsoid approximation is valid only for smaller particles. As snowflake size increases, shape properties become increasingly significant in scattering calculations (Olson et al., 2016). Between isovolumetric spheres and hexagonal columns, more accurate snowflake models are needed. In addition, an assessment of the sensitivity of high-frequency falling-snow characteristics using an idealized simulated snowflake model indicates the necessity for a scattering database of snowflakes, in which three highly variable shapes should be taken into consideration (Kneifel et al., 2010). Ideal ice crystal models were created in dendritic, thin plate, stellar plate, crown prism, and hollow column forms, and the scattering effects of these geometries were calculated using the discrete dipole approximation (DDA) approach (Kim, 2006). The results indicate that the scattering characteristics of these ideal snowflakes are highly sensitive to their shapes. This further emphasizes the necessity for accurate shape modeling (Kim et al., 2007).</p>
      <p id="d2e148">Various in situ instruments have been developed to measure precipitation particles. The OTT Parsivel disdrometer measures the size and fall velocity of particles based on laser signal attenuation and duration (Loffler-Mang and Joss, 2000). However, the 1D measurement concept requires additional assumptions to correctly size irregularly shaped particles such as snowflakes (Battaglia et al., 2010), and the shape of particles cannot be obtained. The Two-Dimensional Video Disdrometer (2DVD) can obtain the 3D particle shape by using two line-scan cameras with an angle of 90°, where the sampling area is 10 <inline-formula><mml:math id="M1" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 10 cm<sup>2</sup> (Bernauer et al., 2016). Particle shape estimates may still be biased due to horizontal winds (Helms et al., 2022). The Multi-angle Snowflake Imager (MSI) can obtain the 3D shape and fall velocity of individual snowflakes by using four line-scan cameras with an angle of 45°; however, a limitation lies in its restricted sampling area, allowing for the measurement of only one snowflake within a narrow field of view (Minda et al., 2017).</p>
      <p id="d2e167">In addition to line-scan cameras, several planar camera instruments have been developed. The Snowfall Video Imager (SVI) employs a camera and a light source to record the images of snowflakes in free fall. Its subsequent evolution, the Precipitation Imaging Package (PIP), employs advanced digital image processing algorithms to enhance the precision and resolution of snowflake imaging (Newman et al., 2009; Pettersen et al., 2020). The PIP provides physically consistent estimates of snowfall intensity and volume-equivalent densities from high-speed images, although its equivalent-density parameterization requires further refinement for extremely high snow-to-liquid ratio snowfall events (Pettersen et al., 2020). The Video Precipitation Sensor (VPS) can obtain the shape and fall velocity of hydrometeors when the particles fall through the sampling volume. The camera is exposed twice in a single frame, which allows for the double exposure of particle images to be recorded, and the size and fall velocity of particles can be obtained simultaneously (Liu et al., 2014, 2019). The Video In Situ Snowfall Sensor (VISSS) consists of two cameras with LED backlights and telecentric lenses and can measure the shape and size of snowflakes in a large observation volume with high pixel resolution (43 to 59 <inline-formula><mml:math id="M3" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">px</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>) (Maahn et al., 2024). Nevertheless, it is challenging to resolve highly fine structures of snowflakes with only two angles of observation.</p>
      <p id="d2e190">The Multi-Angle Snowflake Camera (MASC) simultaneously captures three high-resolution images of falling hydrometeors from three different viewpoints (Garrett et al., 2012), which provides the conceptual possibility of 3D reconstruction of the observed snowflakes. The visual hull (VH) algorithm was used to reconstruct the 3D shape of snowflakes through multi-angle imaging, and the addition of two more cameras to MASC has been shown to improve reconstruction results (Kleinkort et al., 2017). Incorporating the rich dataset from MASC, the 3D-GAN model is adeptly trained to reconstruct the intricate 3D architecture of snowflakes, thereby unlocking new dimensions in the study of snowfall microphysics (Leinonen et al., 2021). Furthermore, MASCDB is a comprehensive database of images, descriptors, and microphysical properties of individual snowflakes in free fall and showcases the MASC's exceptional potential for contributing to the field of atmospheric science by providing an extensive and detailed resource for studying the microphysical properties of snowflakes (Grazioli et al., 2022).</p>
      <p id="d2e193">Currently, instruments are needed that not only provide a finer 3D structure of  snowflakes but also capture enough particles per unit of time to estimate the particle size distribution (PSD). This study presents a new instrument: the Three-Dimensional Precipitation Particle Imager (3D-PPI). The instrument's design and main components are introduced in Sect. 2; the calibration of the cameras is described in Sect. 3; and detailed algorithms, including image processing, particle matching, particle localization, and 3D reconstruction, are presented in Sect. 4. The preliminary results of the field experiment are discussed in Sect. 5, and the last part summarizes the main results and future work of the 3D-PPI.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Instrument design</title>
      <p id="d2e204">The 3D-PPI contains three identical high-resolution cameras with telecentric lenses (numbered Cam0, Cam1, and Cam2 in this paper) and one high-speed camera with a non-telecentric lens (numbered Cam3). Four high-brightness LED arrays are used as light sources to illuminate the observation volume. Additionally, a ZYNQ driver circuit has been developed to control the cameras and light source and to transmit the raw images to the PC terminal. To improve the instrument's working efficiency, a capacitive rain sensor is adopted as a trigger, meaning the cameras only work when  precipitation occurs. The sensor detects any moisture on the instrument's surface, and its heating element ensures that snow is melted and appropriately sensed. To mitigate the effects of wind on camera alignment, we  designed the 3D-PPI with a protective cover that effectively shields the cameras from wind disturbances. The concept illustration and prototype, as well as snowflake images of the 3D-PPI, are shown in Fig. 1.</p>

      <fig id="Ch1.F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e209"><bold>(a)</bold> Concept illustration of the 3D-PPI. <bold>(b)</bold> The prototype of the 3D-PPI deployed at Tulihe, China. <bold>(c)</bold> Randomly selected snowflakes were observed on 6 April 2024 between 04:53 and 11:13 UTC.</p></caption>
        <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f01.jpg"/>

      </fig>

      <p id="d2e226">The high-speed camera is positioned horizontally at the center, Cam1 and Cam2 are positioned at 45° on either side of the high-speed camera in the same horizontal plane, and  Cam0 is positioned at 45° vertically above (Fig. 1a). The high-brightness LED array light sources are situated on the same side as the cameras to illuminate the observation volume. The four cameras, lenses, and LED lights, including the additional beams of the 3D-PPI, are illustrated in Fig. 2. To clarify, the observation volume (OV) of one high-resolution camera is a cuboid defined by the following three dimensions: <inline-formula><mml:math id="M4" display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M5" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M6" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> (170, 125, and 88 mm), which represent the length, width, and depth of the field of view, respectively. The intersection of the three OVs of the three high-resolution cameras forms the effective OV of the 3D-PPI (775 cm<sup>3</sup>). Only the particles falling within the effective OV of the 3D-PPI can be simultaneously captured by the three high-resolution cameras, and  their 3D shapes can then be reconstructed three-dimensionally.</p>

      <fig id="Ch1.F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e262">Two views of four cameras and lenses, including additional beams extending from the lenses and the LED light beams.</p></caption>
        <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f02.png"/>

      </fig>

      <p id="d2e271">The high-resolution camera is a Sony IMX304 with a resolution of 4096 <inline-formula><mml:math id="M8" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 3000 grayscale pixels and a frame rate of 5 fps. The high-speed camera is a Sony IMX287 with a resolution of 720 <inline-formula><mml:math id="M9" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 540 grayscale pixels and a frame rate of 200 fps. The detailed technical parameters are shown in Table 1 and are divided into two parts, the image sensor and the lens.</p>

<table-wrap id="Ch1.T1" specific-use="star"><label>Table 1</label><caption><p id="d2e291">Technical specifications of the cameras.</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"/>

         <oasis:entry colname="col2"/>

         <oasis:entry colname="col3">High-resolution camera</oasis:entry>

         <oasis:entry colname="col4">High-speed camera</oasis:entry>

       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="7">Image sensor</oasis:entry>

         <oasis:entry colname="col2">Type</oasis:entry>

         <oasis:entry colname="col3">CMOS, Global shutter</oasis:entry>

         <oasis:entry colname="col4">CMOS, Global shutter</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Model</oasis:entry>

         <oasis:entry colname="col3">Sony IMX304</oasis:entry>

         <oasis:entry colname="col4">Sony IMX287</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Single pixel size [<inline-formula><mml:math id="M10" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>]</oasis:entry>

         <oasis:entry colname="col3">3.45 <inline-formula><mml:math id="M11" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 3.45</oasis:entry>

         <oasis:entry colname="col4">6.9 <inline-formula><mml:math id="M12" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 6.9</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Resolution [px]</oasis:entry>

         <oasis:entry colname="col3">4096 <inline-formula><mml:math id="M13" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 3000</oasis:entry>

         <oasis:entry colname="col4">720 <inline-formula><mml:math id="M14" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 540</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Pixel resolution [<inline-formula><mml:math id="M15" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">px</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:entry colname="col3">41.6</oasis:entry>

         <oasis:entry colname="col4">265.4 (450 mm distance)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Size of the field of view (<inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:mi>a</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>×</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>b</mml:mi></mml:mrow></mml:math></inline-formula>) [mm]</oasis:entry>

         <oasis:entry colname="col3">170 <inline-formula><mml:math id="M17" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 125</oasis:entry>

         <oasis:entry colname="col4">191 <inline-formula><mml:math id="M18" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 143 (450 mm distance)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Frame rate [fps]</oasis:entry>

         <oasis:entry colname="col3">5</oasis:entry>

         <oasis:entry colname="col4">200</oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2">Effective exposure time [<inline-formula><mml:math id="M19" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>]</oasis:entry>

         <oasis:entry colname="col3">20</oasis:entry>

         <oasis:entry colname="col4">20</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1" morerows="3">Lens</oasis:entry>

         <oasis:entry colname="col2">Type</oasis:entry>

         <oasis:entry colname="col3">Telecentric lenses</oasis:entry>

         <oasis:entry colname="col4">25 mm non-telecentric lenes</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Aperture</oasis:entry>

         <oasis:entry colname="col3">F6.5</oasis:entry>

         <oasis:entry colname="col4">F2.4 to F16</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Magnification of lens</oasis:entry>

         <oasis:entry colname="col3">0.083 (constant)</oasis:entry>

         <oasis:entry colname="col4">0.026 (450 mm distance)</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col2">Distortion</oasis:entry>

         <oasis:entry colname="col3">0.044 %</oasis:entry>

         <oasis:entry colname="col4">0.16 %</oasis:entry>

       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e574">For the high-resolution camera, the single pixel size is 3.45 <inline-formula><mml:math id="M20" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>, and the magnification of the lens is 0.083, meaning that the pixel resolution is 41.6 <inline-formula><mml:math id="M21" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">px</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>. Telecentric lens distortion is 0.044 % and can be ignored. For the high-speed camera, the single pixel size is 3.45 <inline-formula><mml:math id="M22" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>, and the magnification is 0.026 at a working distance of 450 mm, meaning that the pixel resolution is  265.4 <inline-formula><mml:math id="M23" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">px</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>
      <p id="d2e635">The utilization of telecentric lenses eliminates the sizing error caused by the uncertain distance between the snowflakes and the cameras. Unlike non-telecentric lenses, which produce larger images of nearby objects and smaller images of distant objects (Fig. 3a), telecentric lenses are based on the principle of parallel-light imaging, resulting in identical objects at different distances from the lens having the same size in the image (Fig. 3c). This difference in imaging characteristics will lead to distinct methods for 3D reconstruction (Fig. 3b, d), which are discussed in detail in Sect. 4. With an optical distortion of 0.044 %, the telecentric lens effectively minimizes distortion, establishing a linear correspondence between image coordinates and world coordinates. This alignment greatly simplifies camera calibration, as elaborated upon in Sect. 3.</p>

      <fig id="Ch1.F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e641">Illustration of imaging characteristics and reconstruction of a snowflake using three cameras. <bold>(a)</bold> Non-telecentric lens imaging characteristics, <bold>(b)</bold> non-telecentric lenses back-projected to obtain three visual cones (Kleinkort et al., 2017), <bold>(c)</bold> telecentric lens imaging characteristics, and <bold>(d)</bold> telecentric lenses back-projected to obtain three visual columns.</p></caption>
        <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f03.jpg"/>

      </fig>

      <p id="d2e662">The 3D-PPI has four light source arrays, each consisting of six high-brightness LEDs organized into a cluster to create an array lighting system. Each LED is 5 W with a total power of 120 W. This LED lighting system integrates a high-brightness LED chip, substrate, heat sink, casing, leads, protective features, and other functionalities into a single unit. At its core lies the LED chip, utilizing white high-brightness LED chips. Each LED is equipped with a converging lens, facilitating the creation of a cone-shaped beam of light. Once triggered, the LEDs will continue to illuminate, providing consistent lighting throughout the exposure period. The design and physical representation of the LED array lighting system are illustrated in Fig. 4. The LED light sources are configured in parallel, allowing for a single power supply connection that distributes power to the entire array. Each LED can operate in either constant-current mode or trigger mode. In constant-current mode, the LEDs provide stable and uniform light intensity, which enhances the uniformity of illumination within the OVs.</p>

      <fig id="Ch1.F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e667"><bold>(a)</bold> LED array lighting group design. <bold>(b)</bold> Cone-shaped beam formed by LED array lighting group.</p></caption>
        <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f04.jpg"/>

      </fig>

</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Calibration of cameras</title>
      <p id="d2e689">Camera calibration is the basis for obtaining 3D spatial information from 2D images. There is a one-to-one correspondence between the spatial scene points and their image points in the image, and their positional relationship is determined by the camera imaging geometric model (Cheng and Huang, 2023). The parameters of this geometric model are called camera parameters, which can be determined by an experiment and computation, and the process of solving the parameters experimentally and computationally is called camera calibration. The geometric model for telecentric lens imaging is described in detail in Appendix A, where four coordinate systems (the world coordinate system (WCS), camera coordinate system (CCS), image coordinate system (ICS), and pixel coordinate system (PCS)) are defined and their transformations derived. The purpose of camera calibration in this section is to estimate the projection matrices <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M26" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> for the three high-resolution cameras (Cam0, Cam1, and Cam2, respectively), which enables the transformation of 3D spatial points in the WCS to their corresponding pixel coordinates on the image plane in PCS. Appendix A derives a model that assumes linear, telecentric imaging without distortion. Based on this model, Eq. (A6) is transformed to
          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M27" display="block"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mfrac><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msub><mml:mi>t</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></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:mi>u</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="italic">ν</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
        where <inline-formula><mml:math id="M28" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is the telecentric camera magnification; <inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are the length and width dimensions of the individual image; <inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M32" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) denote the matrix elements of the rotation and translation process from the WCS to the CCS, respectively, and these parameters relate solely to the relative position of the cameras; and <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are the horizontal and vertical coordinates of the camera's main point offsets, which may change over time.</p>
      <p id="d2e1020">The coordinate points (<inline-formula><mml:math id="M35" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) in the WCS are projected onto the coordinate points (<inline-formula><mml:math id="M38" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M39" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>) in the PCS through the 2 <inline-formula><mml:math id="M40" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 4 matrix (also denoted as <inline-formula><mml:math id="M41" display="inline"><mml:mi mathvariant="bold">KM</mml:mi></mml:math></inline-formula>) on the left side of Eq. (1). In particular, the three telecentric lenses are in the same WCS, and each lens corresponds to a PCS.</p>
      <p id="d2e1085">To obtain the projection matrices, the following steps are executed. Firstly, make a 3D checkerboard and establish the WCS. Attach three high-precision 2D checkerboards to three mutually perpendicular flat boards to form a 3D checkerboard. The three plane intersections are used as the WCS origin O, and the two plane intersections are used as the <inline-formula><mml:math id="M42" display="inline"><mml:mi>X</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M43" display="inline"><mml:mi>Y</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M44" display="inline"><mml:mi>Z</mml:mi></mml:math></inline-formula> axes, respectively (Fig. 5b). The 3D checkerboard is placed in a position that defines the WCS. This position is within the effective OV to ensure that the three high-resolution cameras can capture checkerboard corner points simultaneously. Secondly, physically measure the precise coordinates of all checkerboard corner points in the WCS (<inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) (<inline-formula><mml:math id="M48" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> denotes the index of the corner points), and identify the corresponding pixel coordinates (<inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) of the <inline-formula><mml:math id="M51" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>th corner points in the PCS of each camera image. Thirdly, substituting these coordinates into Eq. (1) yields Eq. (2) for each camera image:
          <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M52" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="bold">KM</mml:mi><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="bold">W</mml:mi><mml:mi>J</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">C</mml:mi><mml:mi>J</mml:mi></mml:msub><mml:mo>⇔</mml:mo><mml:mi mathvariant="bold">KM</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>J</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>J</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>J</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>J</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>J</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
        where  <inline-formula><mml:math id="M53" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> is the number of chosen points for each camera image. Its value is determined based on the number of corner points of the image captured by each camera and may be different for each camera image; <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">W</mml:mi><mml:mi>J</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a matrix of four rows and <inline-formula><mml:math id="M55" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> columns denoting the <inline-formula><mml:math id="M56" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> coordinates of the points in the WCS, and <inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">C</mml:mi><mml:mi>J</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a matrix of two rows and <inline-formula><mml:math id="M58" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> columns denoting the <inline-formula><mml:math id="M59" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> coordinates of the points in the PCS.</p>
      <p id="d2e1462">As can be seen from Fig. 5b, the value of <inline-formula><mml:math id="M60" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> is much larger than 4, so Eq. (2) is equivalent to overdetermined linear systems. Further, the least-squares method is used to optimally estimate the <inline-formula><mml:math id="M61" display="inline"><mml:mi mathvariant="bold">KM</mml:mi></mml:math></inline-formula> for each high-resolution camera. It is worth noting that during the solution (optimal estimation), it is important to make sure that no row of <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">W</mml:mi><mml:mi>J</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (except the row with value 1) can be the same value. In other words, the selected points cannot be in the same plane in the WCS. Therefore, the reason for selecting a 3D checkerboard rather than a 2D checkerboard becomes evident.</p>
      <p id="d2e1491">To assess the accuracy of the estimated <inline-formula><mml:math id="M63" display="inline"><mml:mi mathvariant="bold">KM</mml:mi></mml:math></inline-formula> of the three cameras, we calculated the average reprojection error, which is calculated as the mean distance between the identified 2D image points (<inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and their corresponding projected points <inline-formula><mml:math id="M66" display="inline"><mml:mi mathvariant="bold">KM</mml:mi></mml:math></inline-formula> <inline-formula><mml:math id="M67" display="inline"><mml:mo>⋅</mml:mo></mml:math></inline-formula> (<inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>)<sup><italic>T</italic></sup>. The results show that the average reprojection error for the three high-resolution cameras is 0.32 px.</p>
      <p id="d2e1589">However, even small movements of the high-resolution camera can alter the projection matrix. This requires the instrument to be more robust. To mitigate the effects of wind on camera alignment, the instrument's housing has specifically been designed for stability. Additionally, a semiconductor air conditioner has been installed in the housing, which  prevents minor camera expansion caused by temperature fluctuations.</p>

      <fig id="Ch1.F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e1594"><bold>(a)</bold> The 3D checkerboard calibration principle; <bold>(b)</bold> the WCS with three camera views.</p></caption>
        <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f05.png"/>

      </fig>

</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Algorithms</title>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Image processing</title>
      <p id="d2e1623">For high-resolution camera images with a resolution of 4096 <inline-formula><mml:math id="M72" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 3000, no background removal and denoising are required due to low image noise and little background interference. The processing steps are as follows: <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e1635"><italic>Image binarization</italic>. The image is binarized through adaptive thresholding, which is a method used to binarize images by determining thresholds locally rather than using a global threshold. This approach is particularly useful for images with varying illumination and complex backgrounds (Bataineh et al., 2011). The threshold at each pixel (<inline-formula><mml:math id="M73" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M74" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>), denoted as <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, is calculated based on the local mean intensity <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:mi mathvariant="italic">μ</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> of the pixels in a defined neighborhood around (<inline-formula><mml:math id="M77" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M78" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>). This local mean is adjusted by a sensitivity coefficient <inline-formula><mml:math id="M79" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> to balance the classification of pixels into foreground or background.<disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M80" display="block"><mml:mrow><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="italic">μ</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>C</mml:mi></mml:mrow></mml:math></disp-formula>The sensitivity coefficient <inline-formula><mml:math id="M81" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> is crucial; it adjusts how the local mean is used to set the threshold. A smaller <inline-formula><mml:math id="M82" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> favors classifying pixels as foreground, while a larger <inline-formula><mml:math id="M83" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> favors background classification. We  manually adjusted the sensitivity coefficient <inline-formula><mml:math id="M84" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> to determine the optimal value of 0.4. This process involved visually assessing the binarization outcomes for various <inline-formula><mml:math id="M85" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> values to identify which value best distinguishes between foreground objects and background objects.</p></list-item><list-item><label>ii.</label>
      <p id="d2e1788"><italic>Particle detection</italic>. Firstly, in binarized images, detect the connected regions with an area larger than 20 px (equivalent to 0.035 mm<sup>2</sup>, where diameter is about 0.2 mm), which enables the removal of pixel noise or small snowflakes (no larger than 20 px) from the image, to exclude features of small snowflakes that cannot be detected from the analysis. Secondly, combine regions into a single region of interest (ROI) when the distance between the closest points of connected regions in a single image is detected to be less than 0.5 mm apart. This step is necessary because a single particle may sometimes be perceived as two separate particles due to its position near the edge of the image processing threshold. This method enhances the accuracy of foreground particle detection, particularly in images with complex backgrounds and uneven illumination. Thirdly, discard the blurred particles outside the depth of field. To avoid detecting the particles completely out of focus, in the greyscale image before binarization, the mean gray value of the ROI must be at least 20 times greater than the mean gray value of the image, and the variance of the Laplacian of the ROI gray value must be at least 10 times greater. Fourthly, discard the particles at the edge of the image. If the connected region of a particle contains points located at the edges of the image, the particle is considered not to be fully captured, and it should be discarded.</p></list-item></list></p>
      <p id="d2e1802">For the high-speed camera images with a resolution of 720 <inline-formula><mml:math id="M87" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 540, there is non-negligible noise and background interference; therefore, two more steps are required before image binarization and particle detection: <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e1814"><italic>Background removal and enhancement.</italic> Background artifacts captured by high-speed cameras in natural settings can be influenced by varying lighting conditions, lens surface contamination, or other factors that change over time. To address this issue, a real-time background detection method is employed. Specifically, 1024 images are randomly selected every minute to calculate the average grayscale value, representing the minute-by-minute background changes. These background variations are then subtracted from all images taken within that minute to effectively remove the background interference. It is further necessary to enhance the contrast of the image by stretching the grayscale histogram to better distinguish between background and foreground particles.</p></list-item><list-item><label>ii.</label>
      <p id="d2e1820"><italic>Image denoising.</italic> Median filtering is used to remove the remaining noise. Further, the image binarization and particle detection methods are the same as the previous high-resolution camera image processing methods.</p></list-item></list></p>
      <p id="d2e1825">The two types of image processing processes and the results of each step are shown in Fig. 6.</p>

      <fig id="Ch1.F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e1831">Flowchart of two types of image processing.</p></caption>
          <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f06.png"/>

        </fig>

      <p id="d2e1840">The next step is to evaluate the effectiveness of the image processing algorithm. Firstly, drop the 15 spheres with absolute sphericity ranging from 1 to 25 mm in diameter into the OV of the 3D-PPI, and acquire 20 clear images for each diameter (Fig. 7a). The materials of the spheres have a similar refractive index to the snowflakes. Next, use the image processing algorithm to convert the sphere image into the binarized image (Fig. b), and then calculate <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. (In the image, <inline-formula><mml:math id="M90" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> is the diameter of the smallest enclosing circle, and <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the diameter of the circle equal to the area of the particle profile. <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are equal only when the image of the sphere is perfectly circular.) Finally, convert <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> from pixels to millimeters through pixel resolution (41.6 <inline-formula><mml:math id="M96" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">px</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 calculate the average value of <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> 20 times for each diameter.</p>

      <fig id="Ch1.F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e1975"><bold>(a)</bold> The 15 reference spheres ranging from 1 to 25 mm in diameter captured by the high-resolution camera. <bold>(b)</bold> The binarized images of 15 spheres after image processing; the average values of measurements of <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>. <bold>(c–f)</bold> The average values and relative errors of 20 <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> measurements per diameter sphere.</p></caption>
          <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f07.png"/>

        </fig>

      <p id="d2e2025">Regarding the <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> measurement results (Fig. 7c, e), smaller spheres (<inline-formula><mml:math id="M103" display="inline"><mml:mo lspace="0mm">≤</mml:mo></mml:math></inline-formula> 9 mm) exhibit slight overestimations of the true values, while larger particles show underestimations. The maximum relative error is approximately 14 %. The arithmetic mean of relative errors across all diameters is <inline-formula><mml:math id="M104" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>2.2 %, though the average absolute relative error (i.e., magnitude regardless of sign) is 5.0 %, reflecting a systematic overestimation tendency. For <inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> measurements (Fig. 7d, f), nearly all estimates are below the true values, with a single exception at 10 mm (<inline-formula><mml:math id="M106" display="inline"><mml:mo lspace="0mm">+</mml:mo></mml:math></inline-formula>0.8 %). The worst relative error is <inline-formula><mml:math id="M107" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>7 %, and the arithmetic mean of relative errors is <inline-formula><mml:math id="M108" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>2.7 %. The consistent underestimation of <inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (except for the 10 mm case) suggests its utility for systematic error correction. Overall, the image processing methods demonstrate effectiveness, with errors remaining minimal in practical terms.</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Particle matching and localization</title>
<sec id="Ch1.S4.SS2.SSS1">
  <label>4.2.1</label><title>Particle matching</title>
      <p id="d2e2112">In the observation volume of the 3D-PPI, there might be numbers of particles with similar sizes, colors, shapes, and textures, which poses a challenge for particle matching from the images captured by the three cameras. In this work, we propose a particle matching algorithm that addresses this issue by focusing on the spatial positions of particles in three images, as derived from the projection matrices obtained through precise calibration of the trinocular telecentric camera system. For one particle, the matching algorithm is implemented in detail as follows (Fig. 8): <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e2117">Detect the centroid coordinates of the particle <inline-formula><mml:math id="M110" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> (<inline-formula><mml:math id="M111" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M112" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>) in the PCS from Cam0 (Fig. 9a).</p></list-item><list-item><label>ii.</label>
      <p id="d2e2142">Using the projection matrix <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> of Cam0, the underdetermined linear equations corresponding to <inline-formula><mml:math id="M114" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> are solved to obtain a straight line <inline-formula><mml:math id="M115" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> in the WCS. Specifically, it is equivalent to solving <inline-formula><mml:math id="M116" display="inline"><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (2) with <inline-formula><mml:math id="M117" display="inline"><mml:mi mathvariant="bold">KM</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> known, where the solution to <inline-formula><mml:math id="M119" display="inline"><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is not unique and all solutions are  <inline-formula><mml:math id="M120" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> in the WCS.  <inline-formula><mml:math id="M121" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> represents all points in 3D space that can be projected onto <inline-formula><mml:math id="M122" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> by <inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>; in other words, the line <inline-formula><mml:math id="M124" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> is the back projection of the point <inline-formula><mml:math id="M125" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> in the WCS.</p></list-item><list-item><label>iii.</label>
      <p id="d2e2259">Project <inline-formula><mml:math id="M126" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> onto the planes of Cam1 and Cam2 by multiplying the projection matrices <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, respectively, with <inline-formula><mml:math id="M129" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula>, resulting in the line segments on each of the image planes of Cam1 and Cam2 (Fig. 9b, c). The exact derivations of the formulae in (i) and (ii) are described in detail in Appendix B.</p></list-item><list-item><label>iv.</label>
      <p id="d2e2299">Detect the particles that the line segments pass through on Cam1 and Cam2. If the line segments do not pass through any particles in Cam1 or Cam2, it is a failed matching, meaning that the particle does not appear in the effective OV.</p></list-item></list></p>

      <fig id="Ch1.F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e2304">Flowchart of a particle matching.</p></caption>
            <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f08.png"/>

          </fig>

      <fig id="Ch1.F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e2315">The three particles detected in Cam0 can only appear on the corresponding three line segments in Cam1 and Cam2.</p></caption>
            <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f09.png"/>

          </fig>

      <p id="d2e2325">By performing the above matching for each particle detected by Cam0, the location of this particle in Cam1 and Cam2 can be found. Figure 10 shows the three particles detected in Cam0 and the matching of each particle in Cam1 and Cam2.</p>

      <fig id="Ch1.F10" specific-use="star"><label>Figure 10</label><caption><p id="d2e2330">Steps to localize the particle position in the WCS according to the image particle contours.</p></caption>
            <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f10.png"/>

          </fig>

</sec>
<sec id="Ch1.S4.SS2.SSS2">
  <label>4.2.2</label><title>Particle localization</title>
      <p id="d2e2347">After completing camera calibration and particle matching, 3D reconstruction for each particle needs to be performed. However, since each particle only occupies a small space in the effective OV, we propose a method that involves preliminarily locating particles in the WCS before proceeding with subsequent 3D reconstruction. This method leverages the positions of single particles in three images to identify the minimal cuboid capable of containing the particles, thereby accurately pinpointing the particles' localizations.</p>
      <p id="d2e2350">For a single particle, the pixel coordinates of the centroid point of the particle in Cam0, Cam1, and Cam2  have been detected, and the subsequent 3D spatial localization steps in the WCS are as follows (Fig. 10): <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e2355">Find the back-projection line <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> of point <inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> by <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. The underdetermined linear equation corresponding to <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is solved to obtain a straight line <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in the WCS. This implementation principle is similar to the second step of particle matching mentioned above. Equations (B1) and (B2) in Appendix B explain this process.</p></list-item><list-item><label>ii.</label>
      <p id="d2e2414">The lines <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are projected onto the planes of Cam1 by multiplying the projection matrices <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, resulting in line segment <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, which is represented as a two-row by one-column matrix. This corresponds to the segment of <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> within the image boundaries, as described in Eq. (B3).</p></list-item><list-item><label>iii.</label>
      <p id="d2e2465">Find the point <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> on <inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> that is closest to <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. Due to the irregular shape of the particle, <inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> does not necessarily coincide with <inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item><list-item><label>iv.</label>
      <p id="d2e2528">Follow the same approach as in step 1 – determine the back-projection line <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> of point <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> by <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item><list-item><label>v.</label>
      <p id="d2e2567">Localize the 3D coordinates of the intersection of <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in the WCS, that is <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which is the centroid of the target cuboid, and further determine the side lengths of the cuboid. From the previous steps, <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are destined to intersect in the WCS, and the intersection point is regarded as the centroid of the rectangle, whose side lengths can be determined by converting from the pixel dimensions in the particle image to the actual physical dimensions in the WCS.</p></list-item><list-item><label>vi.</label>
      <p id="d2e2626">Finally, verify that the projection of  point <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> through <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in Cam2 is near  point <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and within the particle contour; otherwise, it is a failed localization.</p></list-item></list></p>
      <p id="d2e2662">The particle's position in the WCS should be inside the region of the cuboid determined by localization, which is next discretized into numerous smaller voxel grids to finely perform the 3D reconstruction.</p>
</sec>
</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Three-dimensional (3D) reconstruction</title>
      <p id="d2e2674">The visual hull (VH) method is a technique used to reconstruct the 3D shape of snowflakes by utilizing silhouettes, which are the outlines of the snowflakes as seen from different camera angles. In this process, multiple cameras are positioned around the snowflake at various viewpoints (Cam0, Cam1, and Cam2 in 3D-PPI). Each camera captures the silhouette of the snowflake, and these silhouettes are carefully calibrated to ensure that they accurately represent the snowflake's geometry. A cone of the silhouette is created by back projecting the set of points of view of the previously detected silhouettes into the corresponding image planes in front of the cameras (Fig. 3b), and the intersection of these cones gives the visual hull (Hauswiesner et al., 2013). Since concave features do not affect the silhouette obtained from each image, a limitation of the visual hull method is its inability to capture concave features. Based on high-resolution contour images captured by the three high-resolution cameras of the 3D-PPI and the projection matrix for each camera, we propose applying the visual hull method to reconstruct the 3D shapes of snowflakes. The use of telecentric cameras allows the visual solid cones formed by back projection to become visual solid columns (Fig. 3b, d).</p>
      <p id="d2e2677">The algorithm operates as follows: given a multi-viewpoint contour image and projection matrices, it ascertains whether the pixel or voxel corresponding to a spatial point on each contour map is part of the object's contour. The resulting model represents a sample of the smallest convex set that encloses the object's true shape, precluding the depiction of indentations.</p>
      <p id="d2e2680">Initially, we employ the preliminary particle localization method described in Sect. 4 to estimate the particle's approximate spatial position. The further procedure for obtaining a 3D point cloud and reconstructing the 3D model of precipitation particles is outlined through the following refined steps (Fig. 11): <list list-type="custom"><list-item><label>i.</label>
      <p id="d2e2685"><italic>Voxel grid discretization.</italic> Subdivide the space into a voxel grid with a predefined resolution. For each voxel, extract the 3D coordinates of the upper-left corner point. This grid will serve as a framework for subsequent steps.</p></list-item><list-item><label>ii.</label>
      <p id="d2e2691"><italic>Projection onto 2D pixel coordinates.</italic> Utilize the projection matrix to project the 3D voxel coordinates of each voxel onto the three-angle contour, transforming them into 2D pixel point coordinates.</p></list-item><list-item><label>iii.</label>
      <p id="d2e2697"><italic>Obtaining back-projected visual columns (by three sets of point clouds).</italic> Mark the 3D voxel coordinates of points that can be projected onto the contours of each of the three images; that is, obtain three contours of back-projected visual columns.</p></list-item><list-item><label>iv.</label>
      <p id="d2e2703"><italic>Preserve the point cloud of the intersecting region.</italic> Retain a point cloud within the convergence region of the three optical axes, identifying the spatial locus where the 3D reconstructed object is situated.</p></list-item><list-item><label>v.</label>
      <p id="d2e2709"><italic>3D point cloud envelope and rendering.</italic> Apply the triangular sectioning algorithm to extract the visual envelope of the 3D point cloud. Subsequent rendering steps will then be used to construct the 3D reconstruction model of the precipitation particle.</p></list-item></list></p>

      <fig id="Ch1.F11" specific-use="star"><label>Figure 11</label><caption><p id="d2e2717">Flowchart of 3D construction algorithm.</p></caption>
          <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f11.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Preliminary results of field experiment</title>
<sec id="Ch1.S5.SS1">
  <label>5.1</label><title>Case studies of snowfall case</title>
      <p id="d2e2743">To evaluate the performance of the 3D-PPI, the prototype of the 3D-PPI was deployed at Tulihe, China (50.692° N, 121.652° E; 733 m a.m.s.l.), from 1 January 2024, and an OTT Parsivel laser disdrometer (OTT for short) was installed 10 m apart for comparison. According to the conclusion of the wind field simulation in Appendix C, the 3D-PPI is installed facing towards the south. A typical snowfall case lasting  13 h, from 19:00 UTC on 28 March 2024 to 07:59 UTC on 29 March 2024, was observed and analyzed.</p>
      <p id="d2e2746">The PSD calculated from OTT counting is as follows (Zhang et al., 2019):
            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M155" display="block"><mml:mrow><mml:mtext>PSD</mml:mtext><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mi>S</mml:mi><mml:mo>⋅</mml:mo><mml:mi>T</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">32</mml:mn></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where PSD (<inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) (mm<sup>−1</sup> m<sup>−3</sup>) is the number concentration of particles per unit volume per unit size interval <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for snowflake size <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (mm), <inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the number of snowflakes within size bin <inline-formula><mml:math id="M162" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> and velocity bin <inline-formula><mml:math id="M163" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M164" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> (s) is the sampling time (60 s in this study),  <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (m s<sup>−1</sup>) is the falling speed for velocity bin <inline-formula><mml:math id="M167" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M168" display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula> (m<sup>2</sup>) is the effective sampling area (0.18 m <inline-formula><mml:math id="M170" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 0.03 m).</p>
      <p id="d2e2967">The time-averaged PSD calculated from the 3D-PPI counting over a specified period is as follows:
            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M171" display="block"><mml:mrow><mml:mtext>PSD</mml:mtext><mml:mo>(</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">ima</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the number of particles in the <inline-formula><mml:math id="M173" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th size bin, and <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">ima</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the number of acquired images over a period of time. The size descriptor <inline-formula><mml:math id="M175" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula> for the 3D-PPI is <inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in this paper, and <inline-formula><mml:math id="M178" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (m<sup>3</sup>) is the valid OV of Cam0 after edge correction. Since we discard particles at the edges of the image in Sect. 4.1, <inline-formula><mml:math id="M180" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a function of <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, shown in Eq. (6). Here, <inline-formula><mml:math id="M182" display="inline"><mml:mi>a</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M183" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M184" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> represent the length (0.17 m), width (0.125 m), and depth (0.088 m) of the field of view, respectively.
            <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M185" display="block"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi>a</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi>b</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>⋅</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:math></disp-formula>
          Considering that the sampling rate of a high-resolution camera is 5 fps and the time for a snowflake to pass through the field of view is less than 0.2 s, the probability of capturing the same snowflake in two consecutive frames is low.</p>
      <p id="d2e3186">During the snowfall case, three high-resolution cameras of the 3D-PPI recorded 552 383 and 328 792 snowflakes over 2 d. The time-averaged PSD in the same period obtained by the 3D-PPI (using two types of size descriptors) and OTT are compared (Fig. 12a, b). The PSDs measured by OTT and the 3D-PPI using <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> as a size descriptor are highly consistent; however, they deviate significantly from those using <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> as a size descriptor. The PSDs of particles with a <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of about 0.4 mm were the highest for both chosen days.</p>

      <fig id="Ch1.F12" specific-use="star"><label>Figure 12</label><caption><p id="d2e3225">This typical continuous snowfall was split into 2 d and plotted separately (left and right). The 1 min particle size distribution (PSD) of  <inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> (blue) and <inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (orange) for the 3D-PPI and OTT (yellow) for the snowfall case <bold>(a, b)</bold>. Temporal plot of average particle counts per unit volume per minute over 2 d <bold>(c, d)</bold>. Temporal plot of average particle size per minute over time <bold>(e, f)</bold>.</p></caption>
          <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f12.png"/>

        </fig>

      <p id="d2e3265">The trends in the number density of particles observed by the two instruments were similar; the correlation coefficients are 0.94 and 0.96 for the 2 d. In comparing the temporal plots (Fig. 12c, d, e, f), certain periods (19:00 to 19:50, 20:50 to 22:00, and after 23:30 UTC on 28 March; 01:30 to 04:30 and 06:00 to 07:59 UTC on 29 March) exhibited a smaller number of particles per unit volume, with larger average sizes and  greater difference between <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>. This indicates a higher degree of aggregation and potentially more complex shapes of individual snowflakes during these times. Conversely, other periods (19:50 to 20:50 and 22:00 to 23:30 UTC on 28 March; 00:00 to 01:30 and 04:30 to 06:00 UTC on 29 March) showed a larger number of particles per unit volume, smaller average sizes, and reduced difference between <inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S5.SS2">
  <label>5.2</label><title>Three-dimensional shape of snowflakes</title>
      <p id="d2e3320">Figure 14 shows the reconstructed 3D shapes of six snowflakes collected on 6 April 2024. For each snowflake, three images were obtained from three high-resolution cameras (Cam0, Cam1, and Cam2), and the results of the 3D shape were reconstructed by utilizing the visual hull method (Fig. 13). To characterize the 3D shape of each snowflake, four parameters are calculated: volume (<inline-formula><mml:math id="M195" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula>), dimensional maximum in volume (DV<sub>max⁡</sub>; distance between the two farthest points on the surface of the 3D reconstructed particle), aspect ratio (AR; ratio of the longest and shortest axes of the smallest outer ellipsoid), and sphericity (Sp). Sp is derived from  <inline-formula><mml:math id="M197" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M198" display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula> (surface area of 3D reconstructed hull) and characterizes the degree to which 3D particles approach the sphere:
            <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M199" display="block"><mml:mrow><mml:mtext>Sp</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">π</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:mfrac></mml:msup></mml:mrow><mml:mi>S</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
          The 3D shapes of snowflakes ranging in volume from over 400 mm<sup>3</sup> (Fig. 14b) to as small as less than 20 mm<sup>3</sup> (Fig. 13f) can all be reconstructed. In the algorithm when two connected regions are close together, they are considered to be the same snowflake, so the reconstructed snowflake will appear as a separated small part that is not connected to the main body, in which case DV<sub>max⁡</sub> is meaningless (Fig. 13e, f). From the results, it can be found that the visual hull approach can effectively and precisely execute the 3D reconstruction for snowflakes with highly realistic, intricate, and varied shapes and compositions, as well as diverse sizes and sphericity. While individual snowflake analysis is beyond the scope of this study, the reconstructed 3D shapes (Fig. 13) demonstrate the instrument's capability to resolve diverse morphologies. Therefore, the next step is to embed the 3D reconstruction and pre-algorithms into the instrument to realize real-time, automated, and batch 3D reconstruction of snowflakes to statistically characterize the distribution of the 3D shape of a large number of snowflakes.</p>

      <fig id="Ch1.F13" specific-use="star"><label>Figure 13</label><caption><p id="d2e3423">Several typical snowflakes captured by the 3D-PPI in the field and the corresponding 3D reconstruction results. For each reconstruction, the computed <inline-formula><mml:math id="M203" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula>, DV<sub>max⁡</sub>, AR, and Sp are shown.</p></caption>
          <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f13.jpg"/>

        </fig>

      <fig id="Ch1.F14" specific-use="star"><label>Figure 14</label><caption><p id="d2e3450"><bold>(a)</bold> Processed high-speed camera images, with  the same particles from consecutive frames  merged into a single image. <bold>(b)</bold> Speed measurement schematic.</p></caption>
          <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f14.png"/>

        </fig>

</sec>
<sec id="Ch1.S5.SS3">
  <label>5.3</label><title>Fall velocity of snowflakes</title>
      <p id="d2e3472">The exposure time for a single frame is 20 <inline-formula><mml:math id="M205" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>, which renders the motion blur of the particles negligible. Additionally, the time interval between two consecutive frames is 5 ms, allowing the same particle to be captured multiple times, thus enabling accurate velocity calculations. The same particle from consecutive frames is merged into a single image in Fig. 14a to enhance the visualization of its movement. The speed calculation schematic is shown in Fig. 14b.</p>
      <p id="d2e3485">When there are multiple particles in a high-speed camera image, particle matching is required. The particle is regarded as the same particle when the following two principles are satisfied: (i) the pixel coordinates of the centroid of the contours in the particle images in consecutive frames are similar (the falling velocity of the snowflake is generally not more than 4 m s<sup>−1</sup>, so the distance between the vertical pixel coordinates of the same particle centroid in two adjacent image frames is not more than 100 px), and (ii) given that the size of the particles captured in two consecutive frames does not change significantly, <inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of the particles are similar, generally not more than 20 % (the <inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> value of the particle in the next frame deviates within <inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> % of the previous particle). Each particle may have recorded anywhere from 2 to 20 <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, pixel horizontal coordinates, and pixel vertical coordinates. The standard deviation of <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M215" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the difference between the horizontal and vertical coordinates of each particle are calculated, and if the standard deviation of any of the particle's quantities is too large, the particle is treated as an invalid particle, and it will be discarded. <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of each particle are taken to be the maximum of these values, which excludes cases where the particle is not captured because it is at the edge of the image. The horizontal velocity (<inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) component and vertical velocity component (<inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) are calculated as follows:

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M220" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E8"><mml:mtd><mml:mtext>8</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>⋅</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E9"><mml:mtd><mml:mtext>9</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>⋅</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> denote the horizontal and vertical coordinates of the same particle in two consecutive frames; <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> denotes the time interval, which is generally 5 ms; and <inline-formula><mml:math id="M226" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> denotes the pixel resolution of the high-speed camera at the working distance, which is 265 <inline-formula><mml:math id="M227" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">px</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>
      <p id="d2e3813">From 08:00 to 08:30 UTC on 6 April 2024,  Cam3 of the 3D-PPI recorded 77 042 valid snowflakes, and for each snowflake, horizontal and vertical velocities were calculated. The distributions of horizontal and vertical velocity components as a function of <inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are further plotted as a scatter density plot and compared to the results measured by OTT at the same period, which is shown in Fig. 15. The color scale denotes the number of snowflakes measured in the corresponding bins. OTT's <inline-formula><mml:math id="M229" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M230" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> binning is uneven, whereas here the 3D-PPI is set to even binning, with <inline-formula><mml:math id="M231" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M232" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> intervals of 0.1 mm and 0.1 m s<sup>−1</sup>, respectively. The solid red and black lines in Fig. 15b, d represent the empirical curves of the falling velocity and diameter of unrimed aggregates and densely rimed dendrites, respectively (Locatelli and Hobbs, 1974).</p>

      <fig id="Ch1.F15" specific-use="star"><label>Figure 15</label><caption><p id="d2e3871">Distribution of <bold>(a)</bold> horizontal and <bold>(b)</bold> vertical snowflake velocities with <inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> measured by the 3D-PPI. Distribution of falling velocity with diameter measured by <bold>(c)</bold> OTT. The color scale denotes the number of snowflakes measured.</p></caption>
          <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f15.png"/>

        </fig>

      <p id="d2e3900">The empirical velocity of unrimed aggregates is
            <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M235" display="block"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.81</mml:mn><mml:msup><mml:mi>D</mml:mi><mml:mn mathvariant="normal">0.16</mml:mn></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
          The empirical velocity of densely rimed dendrites is
            <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M236" display="block"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.62</mml:mn><mml:msup><mml:mi>D</mml:mi><mml:mn mathvariant="normal">0.33</mml:mn></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e3946">Installing the instrument facing south means that the horizontal velocity seen by the high-speed camera Cam3 corresponds to east–west. The average value of the horizontal velocity measured by the 3D-PPI is <inline-formula><mml:math id="M237" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>0.41 m s<sup>−1</sup>, and the standard deviation is 0.73 m s<sup>−1</sup> (Fig. 15a). The overall distribution of particle horizontal velocities ranges between <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> m s<sup>−1</sup>, and more than 70 % of the snowflakes have a horizontal velocity distribution between <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> m s<sup>−1</sup>. Positive velocities predominate over negative ones, largely influenced by the prevailing westward winds. The average value of the vertical velocity component measured by the 3D-PPI is 0.74 m s<sup>−1</sup>, and the standard deviation is 0.62 m s<sup>−1</sup>, while the average value and standard deviation of the velocities measured by OTT are 0.69 and 0.31 m s<sup>−1</sup>. The diameters of snowflakes measured by the 3D-PPI (OTT) were concentrated in the range of 0.5 to 2.2 mm (0.4 to 1 mm). The vertical velocities were concentrated in the range of 0.6 to 1.1 m s<sup>−1</sup> (0.3 to 0.7 m s<sup>−1</sup>). The diameter and velocity values measured by the 3D-PPI are larger and more dispersed than those measured by OTT. Overall, the vertical velocity of snowflakes increases with  increasing diameter, and the observed data are in good agreement with the two empirical velocity relationships (Locatelli and Hobbs, 1974). It should be noted that  small numbers (7 % of the total sample) of small snowflakes have an almost zero vertical velocity or are negative (not shown due to the positive vertical-axis range of Fig. 15b). This phenomenon may be attributed to localized updrafts caused by thermal convection or wind shear. Additionally, lighter or smaller snowflakes may be temporarily suspended in the air due to turbulence, resulting in a recorded velocity of almost zero or upwards.</p>
</sec>
</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <label>6</label><title>Conclusion</title>
      <p id="d2e4095">The design of the Three-Dimensional Precipitation Particle Imager (3D-PPI) was introduced in this paper. The 3D-PPI consists of three high-resolution cameras (4096 <inline-formula><mml:math id="M249" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 3000, 5 fps) with telecentric lenses and one high-speed camera (720 <inline-formula><mml:math id="M250" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 540, 200 fps) with a non-telecentric lens. The three high-resolution cameras are oriented at a 45° angle relative to the optical axis of the high-speed camera, forming an intersecting observation volume of 775 cm<sup>3</sup>. The high-resolution cameras feature a pixel resolution of 41.6 <inline-formula><mml:math id="M252" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">px</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 are precisely synchronized by clock control, which is sufficient to obtain fine shapes of snowflakes larger than 0.2 mm, and the large field of view of 170 mm <inline-formula><mml:math id="M253" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 125 mm enables the cameras to capture enough snowflakes to estimate PSD accurately. The high-speed camera allows for the calculation of velocity accurately. Moreover, the utilization of telecentric lenses eliminates the sizing error caused by the uncertain distance between the snowflakes and the cameras.</p>
      <p id="d2e4147">For the three high-resolution cameras, a calibration method using a 3D checkerboard was proposed. By shooting the 3D checkerboard grid from three angles simultaneously, we found the correspondence between the world coordinate points and the image coordinate points and then solved the system of equations to estimate the projection matrix of the three high-resolution cameras. A reprojection averaging error of 0.32 px can indicate the accuracy of the calibration. However, even minor displacements of the cameras can alter the projection matrix, which may adversely affect the subsequent reconstruction results. Therefore, it is essential to perform periodic calibration to ensure the accuracy and reliability of the projection matrix. Both types of image processing require binarization and particle detection, and high-speed cameras require background removal, enhancement, and denoising before these two steps. The image processing algorithm needs to be evaluated by batch processing of ceramic sphere images, and the average values of the relative errors of <inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">eq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are <inline-formula><mml:math id="M256" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>2.2 % and <inline-formula><mml:math id="M257" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>2.7 %, respectively. The issue of matching the same particle by its position in the image can be addressed by using the projection matrix obtained from the calibration of cameras in Sect. 3.1. The preliminary determination of the 3D spatial localization of particles after particle matching can effectively improve the computational efficiency of the 3D reconstruction algorithm, so particle localization is an indispensable step before 3D reconstruction. The snowflake 3D shape is further reconstructed using a visual hull algorithm based on binarized contour images from different angles and projection matrixes (Kleinkort et al., 2017).</p>
      <p id="d2e4186">The 3D-PPI was installed at Tulihe, China, on 1 January 2024, and the OTT was installed 10 m apart for comparison. The PSDs, 3D shapes, and fall velocity of snowflakes were preliminarily analyzed. The PSD measured solely by Cam1 and that obtained by OTT exhibit excellent agreement during the typical snowfall case. Several snowflakes with different morphologies were selected and reconstructed in three dimensions, indicating that the 3D-PPI is initially capable of reconstructing snowflakes. The horizontal and vertical velocities of snowflakes were calculated to obtain the velocity distribution. Further comparisons were made with the OTT, and overall, the two distributions for fall velocity were similar. However, the diameter and velocity values measured by the 3D-PPI are larger and more dispersed than those measured by OTT. This difference may be attributed to the potential magnification differences in the high-speed camera in the 3D-PPI due to particles being at varying distances from the cameras.</p>
      <p id="d2e4189">In this paper, the PSD statistics use only one image from a high-resolution camera, and the 3D reconstruction is limited to just one case study. Future work will focus on algorithm optimization for real-time 3D reconstruction and statistical characterization of snowflake shape distributions. Moreover, the accuracy of velocity measurement still needs to be verified and improved. In the future, the 3D-PPI will facilitate more precise and realistic estimations of snowflake parameters, including the size, volume, mass, and density. Based on these parameters, the 3D-PPI has the potential to improve  radar-based estimation of solid precipitation in winter.</p>
</sec>

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

<app id="App1.Ch1.S1">
  <label>Appendix A</label><title>Coordinate system transformation</title>
      <p id="d2e4203">Camera calibration encompasses four key coordinate systems: <list list-type="custom"><list-item><label>1.</label>
      <p id="d2e4208"><italic>World coordinate system (WCS).</italic> This system, denoted as (<inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M259" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), is a user-defined 3D spatial coordinate system that is utilized to describe the location of the target object within the tangible world, with units typically expressed in millimeters.</p></list-item><list-item><label>2.</label>
      <p id="d2e4247"><italic>Camera coordinate system (CCS).</italic> This coordinate system, denoted as (<inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), is intrinsic to the camera and is utilized to describe the object's position relative to the camera's perspective. It acts as an intermediary between the WCS and the image (pixel) coordinate system.</p></list-item><list-item><label>3.</label>
      <p id="d2e4286"><italic>Image coordinate system (ICS).</italic> This system, denoted as (<inline-formula><mml:math id="M264" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M265" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>), is employed to articulate the projection and translation of the object from the CCS to the ICS during the imaging process. It facilitates the subsequent extraction of coordinates under the pixel coordinate system, with the unit being millimeters.</p></list-item><list-item><label>4.</label>
      <p id="d2e4306"><italic>Pixel coordinate system (PCS).</italic> This system, denoted as (<inline-formula><mml:math id="M266" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M267" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>), describes the coordinates of the object's image point post-imaging on the digital image sensor. It is the actual coordinate system from which image information is read from the camera, measured in units of pixels.</p></list-item></list> The camera imaging process involves the transformation from the WCS to the PCS. Camera calibration, in essence, is the procedure of determining the transformation relationships between these four coordinate systems.</p>
<sec id="App1.Ch1.S1.SS1">
  <label>A1</label><title>WCS to CCS</title>
      <p id="d2e4333">Firstly, the transformation of a camera shot from the WCS to the CCS is a rigid-body transformation, where the object does not deform but only rotates and translates. Only the rotation matrix <inline-formula><mml:math id="M268" display="inline"><mml:mi mathvariant="bold">R</mml:mi></mml:math></inline-formula> and translation matrix <inline-formula><mml:math id="M269" display="inline"><mml:mi mathvariant="bold">T</mml:mi></mml:math></inline-formula> need to be obtained. The camera coordinate system is obtained by rotating <inline-formula><mml:math id="M270" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M271" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M272" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> angles around the <inline-formula><mml:math id="M273" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M274" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M275" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> axes in turn and translating to obtain the rotation matrix in the three dimensions:
            <disp-formula id="App1.Ch1.S1.E12" content-type="numbered"><label>A1</label><mml:math id="M276" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">β</mml:mi><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:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo></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="d2e4637">The three matrices are multiplied together to obtain a 3D rotation matrix:
            <disp-formula id="App1.Ch1.S1.E13" content-type="numbered"><label>A2</label><mml:math id="M277" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="bold">R</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:msub><mml:mi>R</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced><mml:msub><mml:mi>R</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><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>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced><mml:mo>+</mml:mo><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced><mml:mo>+</mml:mo><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>cos⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced><mml:mo>+</mml:mo><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>cos⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced><mml:mo>+</mml:mo><mml:mi>cos⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced><mml:mi>sin⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mfenced close=")" open="("><mml:mi mathvariant="italic">α</mml:mi></mml:mfenced><mml:mi>cos⁡</mml:mi><mml:mfenced open="(" close=")"><mml:mi mathvariant="italic">β</mml:mi></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
          where, for <inline-formula><mml:math id="M278" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M279" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M280" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>, the direction of rotation is followed by the right-hand spiral rule; the thumb points to the direction of the axis; and the four-finger direction is the positive direction of rotation.</p>
      <p id="d2e4894">Following the application of the rotation matrix <inline-formula><mml:math id="M281" display="inline"><mml:mi mathvariant="bold">R</mml:mi></mml:math></inline-formula>, the WCS and CCS share identical orientations. To achieve full alignment between the two systems, an additional translation via <inline-formula><mml:math id="M282" display="inline"><mml:mi mathvariant="bold">T</mml:mi></mml:math></inline-formula> is required to reconcile their origins.</p>
      <p id="d2e4911">The rotation and translation process can be expressed by the following formula:
            <disp-formula id="App1.Ch1.S1.E14" content-type="numbered"><label>A3</label><mml:math id="M283" display="block"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>×</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>×</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>O</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="App1.Ch1.S1.SS2">
  <label>A2</label><title>CCS to ICS</title>
      <p id="d2e5029">The difference between telecentric cameras and traditional pinhole cameras is the difference in projection. A pinhole camera uses a perspective projection to transform from the CCS to the ICS; a telecentric camera uses an orthogonal projection. The relationship between the CCS and ICS is as follows:
            <disp-formula id="App1.Ch1.S1.E15" content-type="numbered"><label>A4</label><mml:math id="M284" display="block"><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi>x</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>y</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi mathvariant="italic">β</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mi mathvariant="italic">β</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>⋅</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M285" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is the magnification of the telecentric lens of the telecentric camera. It is not difficult to see that the image coordinates are independent of the camera coordinates <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>C</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>; i.e., the distance of the object to be photographed from the lens does not affect the imaging (projection) of the image, which is also in line with the characteristics of telecentric lens imaging.</p>
</sec>
<sec id="App1.Ch1.S1.SS3">
  <label>A3</label><title>ICS to PCS</title>
      <p id="d2e5156">To convert a point in the ICS whose origin is at the center of the light in real physical units to a point in an image coordinate system whose origin is at the top-left corner of pixels, we require two transformations, translation, and scaling, which are affine transformations:
            <disp-formula id="App1.Ch1.S1.E16" content-type="numbered"><label>A5</label><mml:math id="M287" display="block"><mml:mrow><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 mathvariant="italic">ν</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi>x</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>y</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where the pixel size is <inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M289" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and (<inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) is the pixel coordinate of the optical center point.</p>
</sec>
<sec id="App1.Ch1.S1.SS4">
  <label>A4</label><title>WCS to PCS</title>
      <p id="d2e5323">Integration of expressions from the first three sections can be done as follows:
            <disp-formula id="App1.Ch1.S1.E17" content-type="numbered"><label>A6</label><mml:math id="M293" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><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 mathvariant="italic">ν</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>⋅</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi mathvariant="italic">β</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mi mathvariant="italic">β</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>⋅</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></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>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mfrac><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>⋅</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>⋅</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></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="d2e5782">Similar to small-hole imaging, <inline-formula><mml:math id="M294" display="inline"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">β</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="italic">ν</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></inline-formula> is the internal parameter of the camera, which only relates to the camera itself and has nothing to do with the position of the camera. <inline-formula><mml:math id="M295" display="inline"><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></inline-formula> is an external parameter of the camera, representing the position of the camera. It has nothing to do with camera manufacturing or lens distortion but instead has to do only with the mounting position and angle of the camera in the WCS. <inline-formula><mml:math id="M296" display="inline"><mml:mi mathvariant="bold">R</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M297" display="inline"><mml:mi mathvariant="bold">T</mml:mi></mml:math></inline-formula> represent the rotation and translation process from the WCS to the CCS, respectively. Compared to common pinhole lenses, the four quantities <inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>Z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in the third row of the external reference matrix of the telecentric camera do not exist. This further confirms the special feature of telecentric camera imaging; i.e., it is a parallel-light projection, and the distance of the object from the camera does not affect the size of the object in the image.</p>
</sec>
</app>

<app id="App1.Ch1.S2">
  <label>Appendix B</label><title>Additional equation-solving process</title>
      <p id="d2e6002">To solve for (<inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M303" display="inline"><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) based on the known points <inline-formula><mml:math id="M305" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> (<inline-formula><mml:math id="M306" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M307" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>) and <inline-formula><mml:math id="M308" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, simplify Eq. (2) by removing 1 from the second term:
          <disp-formula id="App1.Ch1.S2.E18" content-type="numbered"><label>B1</label><mml:math id="M309" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><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>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></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:mi>u</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="italic">ν</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mover accent="true"><mml:mo>⟶</mml:mo><mml:mtext>simplify</mml:mtext></mml:mover><mml:mi>A</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mi>B</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
        where <inline-formula><mml:math id="M310" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> is a known 2 <inline-formula><mml:math id="M311" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 3 matrix, and <inline-formula><mml:math id="M312" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> is a known 2 <inline-formula><mml:math id="M313" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 1 matrix. It is equivalent to underdetermined linear equations. The solution is not unique and is shown in Eq. (B2):
          <disp-formula id="App1.Ch1.S2.E19" content-type="numbered"><label>B2</label><mml:math id="M314" display="block"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mi>U</mml:mi><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
        where both <inline-formula><mml:math id="M315" display="inline"><mml:mi>U</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M316" display="inline"><mml:mi>V</mml:mi></mml:math></inline-formula> are 3 <inline-formula><mml:math id="M317" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 1 matrixes, and <inline-formula><mml:math id="M318" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> is any real number. Therefore, all solutions form a straight line <inline-formula><mml:math id="M319" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> in the 3D space WCS. In other words, this process implements the back projection of <inline-formula><mml:math id="M320" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> onto line <inline-formula><mml:math id="M321" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula>.</p>
      <p id="d2e6348">Furthermore, project  <inline-formula><mml:math id="M322" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> onto the planes of Cam1 and Cam2 by multiplying the projection matrices <inline-formula><mml:math id="M323" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, respectively, shown in Eq. (B3):
          <disp-formula id="App1.Ch1.S2.E20" content-type="numbered"><label>B3</label><mml:math id="M325" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><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>U</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><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:mtd><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">KM</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>⋅</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
        where <inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> denote the point sets of projections of <inline-formula><mml:math id="M328" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> onto the Cam1 and Cam2 planes, respectively. The functions <inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M330" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are all linear functions of <inline-formula><mml:math id="M333" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Therefore, <inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> represent straight lines in the plane. Determine the range of <inline-formula><mml:math id="M338" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> to ensure that the line is within the image range (4096 <inline-formula><mml:math id="M339" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 3000) to get the corresponding line segments.</p>
</app>

<app id="App1.Ch1.S3">
  <label>Appendix C</label><title>Wind field simulation</title>
      <p id="d2e6800">To determine the optimal orientation of the 3D-PPI installation (mainly considering the relationship with the prevailing wind direction), we conducted wind field simulations using SOLIDWORKS flow simulation software. The simulation results are shown in Fig. C1.</p><fig id="App1.Ch1.S3.F16"><label>Figure C1</label><caption><p id="d2e6805">Top view of wind speed distribution in the simulated wind field. The 3D-PPI facing 10 m s<sup>−1</sup> wind <bold>(a)</bold>, back facing 10 m s<sup>−1</sup> wind <bold>(b)</bold>, and side facing 10 m s<sup>−1</sup> wind <bold>(c)</bold>. The color gradient represents wind speed, with the observation volume indicated in panel <bold>(a)</bold>.</p></caption>
        
        <graphic xlink:href="https://amt.copernicus.org/articles/18/2261/2025/amt-18-2261-2025-f16.png"/>

      </fig>

      <p id="d2e6865">When the 3D-PPI is facing the wind (Fig. C1a), the observation volume experiences an average wind speed of approximately 6.0 m s<sup>−1</sup>. Moreover, turbulence may occur within the observation volume. When the 3D-PPI is back facing the wind (Fig. C1b), the average wind speed in the observation volume is only about 3.5 m s<sup>−1</sup>, which is obviously due to the shielding of the wind by the instrument. When the 3D-PPI is side facing the wind (Fig. C1c), the observation volume shows an average wind speed of about 8.5 m s<sup>−1</sup>, exhibiting the smallest difference from 10 m s<sup>−1</sup> compared to the other two situations. However, part of the observation volume close to the instrument is still shielded by the housing, which to some extent also affects the representativeness of the wind field, and subsequent consideration will need to be given to improving the instrument design to solve this problem.</p>
      <p id="d2e6917">In addition to 10 m s<sup>−1</sup>, we also simulated 5, 20, and 40 m s<sup>−1</sup> wind speed fields, and all of them obtained the consistent conclusion that the wind speed in the observation volume is closest to the simulated wind speed when the instrument is side facing the prevailing wind direction. Therefore, the instrument should be installed sideways to the dominant wind direction in the area to minimize the disturbance of the instrument to the natural wind field. The prevailing wind direction in the area is west, so the 3D-PPI is installed facing towards the south.</p>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e6948">The codes in this article are mainly compiled using MATLAB and are available upon request from the first author (shijiayi19@nudt.edu.cn). The raw and processed 3D-PPI data mentioned in the paper are available upon request to the first author (shijiayi19@nudt.edu.cn).</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e6954">JS processed the 3D-PPI data, researched the algorithms, analyzed the data of the case, and drafted the paper. XL acquired funding, developed the 3D-PPI instrument, and proofread the paper. LL supported funding acquisition, designed the instrument, and conducted field experiments. LL contributed to instrument calibration. PW developed the hardware and software of the 3D-PPI. All authors reviewed and edited the draft.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

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

      <p id="d2e6968">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. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e6975">The authors would like to thank Aerospace NewSky Technology Co., Ltd, Wuxi, China, for the technical support in the development of the 3D-PPI hardware and software, as well as their critical contributions to instrument calibration and testing. We also thank the editor and reviewers for their valuable suggestions that improved our paper.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e6980">This research has been supported by the National Key R&amp;D Program of China (grant no. 2021YFC2802501) and the National Natural Science Foundation of China (grant no. 42222505).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e6986">This paper was edited by Maximilian Maahn and reviewed by Thomas Kuhn and one anonymous referee.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bib1"><label>1</label><mixed-citation>Bailey, M. and Hallett, J.: Ice Crystal Linear Growth Rates from <inline-formula><mml:math id="M349" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>20 ° to <inline-formula><mml:math id="M350" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>70 °C: Confirmation from Wave Cloud Studies, J. Atmos. Sci., 69, 390–402, <ext-link xlink:href="https://doi.org/10.1175/jas-d-11-035.1" ext-link-type="DOI">10.1175/jas-d-11-035.1</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bib2"><label>2</label><mixed-citation>Bataineh, B., Abdullah, S. N. H. S., and Omar, K.: An adaptive local binarization method for document images based on a novel thresholding method and dynamic windows, Pattern Recogn. Lett., 32, 1805–1813, <ext-link xlink:href="https://doi.org/10.1016/j.patrec.2011.08.001" ext-link-type="DOI">10.1016/j.patrec.2011.08.001</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib3"><label>3</label><mixed-citation>Battaglia, A., Rustemeier, E., Tokay, A., Blahak, U., and Simmer, C.: PARSIVEL Snow Observations: A Critical Assessment, J. Atmos. Ocean. Tech., 27, 333–344, <ext-link xlink:href="https://doi.org/10.1175/2009jtecha1332.1" ext-link-type="DOI">10.1175/2009jtecha1332.1</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bib4"><label>4</label><mixed-citation>Bernauer, F., Hürkamp, K., Rühm, W., and Tschiersch, J.: Snow event classification with a 2D video disdrometer – A decision tree approach, Atmos. Res., 172–173, 186–195, <ext-link xlink:href="https://doi.org/10.1016/j.atmosres.2016.01.001" ext-link-type="DOI">10.1016/j.atmosres.2016.01.001</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib5"><label>5</label><mixed-citation>Cheng, Q. and Huang, P.: Camera Calibration Based on Phase Estimation, IEEE T. Instrum. Meas., 72, 1–9, <ext-link xlink:href="https://doi.org/10.1109/tim.2022.3227554" ext-link-type="DOI">10.1109/tim.2022.3227554</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib6"><label>6</label><mixed-citation>Garrett, T. J., Fallgatter, C., Shkurko, K., and Howlett, D.: Fall speed measurement and high-resolution multi-angle photography of hydrometeors in free fall, Atmos. Meas. Tech., 5, 2625–2633, <ext-link xlink:href="https://doi.org/10.5194/amt-5-2625-2012" ext-link-type="DOI">10.5194/amt-5-2625-2012</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bib7"><label>7</label><mixed-citation>Grazioli, J., Ghiggi, G., Billault-Roux, A.-C., and Berne, A.: MASCDB, a database of images, descriptors and microphysical properties of individual snowflakes in free fall, Sci. Data, 9, 186, <ext-link xlink:href="https://doi.org/10.1038/s41597-022-01269-7" ext-link-type="DOI">10.1038/s41597-022-01269-7</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib8"><label>8</label><mixed-citation>Hauswiesner, S., Straka, M., and Reitmayr, G.: Temporal coherence in image-based visual hull rendering, IEEE T. Vis. Comput. Gr., 19, 1758–1767, <ext-link xlink:href="https://doi.org/10.1109/tvcg.2013.85" ext-link-type="DOI">10.1109/tvcg.2013.85</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bib9"><label>9</label><mixed-citation>Helms, C. N., Munchak, S. J., Tokay, A., and Pettersen, C.: A comparative evaluation of snowflake particle shape estimation techniques used by the Precipitation Imaging Package (PIP), Multi-Angle Snowflake Camera (MASC), and Two-Dimensional Video Disdrometer (2DVD), Atmos. Meas. Tech., 15, 6545–6561, <ext-link xlink:href="https://doi.org/10.5194/amt-15-6545-2022" ext-link-type="DOI">10.5194/amt-15-6545-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib10"><label>10</label><mixed-citation>Kim, M.-J., Kulie, M. S., O'Dell, C., and Bennartz, R.: Scattering of Ice Particles at Microwave Frequencies: A Physically Based Parameterization, J. Appl. Meteorol. Clim., 46, 615–633, <ext-link xlink:href="https://doi.org/10.1175/jam2483.1" ext-link-type="DOI">10.1175/jam2483.1</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bib11"><label>11</label><mixed-citation>Kim, M. J.: Single scattering parameters of randomly oriented snow particles at microwave frequencies, J. Geophys. Res.-Atmos., 111, D14201, <ext-link xlink:href="https://doi.org/10.1029/2005jd006892" ext-link-type="DOI">10.1029/2005jd006892</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bib12"><label>12</label><mixed-citation>Kleinkort, C., Huang, G. J., Bringi, V. N., and Notaroš, B. M.: Visual Hull Method for Realistic 3D Particle Shape Reconstruction Based on High-Resolution Photographs of Snowflakes in Free Fall from Multiple Views, J. Atmos. Ocean. Tech., 34, 679–702, <ext-link xlink:href="https://doi.org/10.1175/JTECH-D-16-0099.1" ext-link-type="DOI">10.1175/JTECH-D-16-0099.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib13"><label>13</label><mixed-citation>Kneifel, S., Löhnert, U., Battaglia, A., Crewell, S., and Siebler, D.: Snow scattering signals in ground-based passive microwave radiometer measurements, J. Geophys. Res.-Atmos., 115, D16214, <ext-link xlink:href="https://doi.org/10.1029/2010jd013856" ext-link-type="DOI">10.1029/2010jd013856</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bib14"><label>14</label><mixed-citation>Leinonen, J., Grazioli, J., and Berne, A.: Reconstruction of the mass and geometry of snowfall particles from multi-angle snowflake camera (MASC) images, Atmos. Meas. Tech., 14, 6851–6866, <ext-link xlink:href="https://doi.org/10.5194/amt-14-6851-2021" ext-link-type="DOI">10.5194/amt-14-6851-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib15"><label>15</label><mixed-citation>Liu, X., He, B., Zhao, S., Hu, S., and Liu, L.: Comparative measurement of rainfall with a precipitation micro-physical characteristics sensor, a 2D video disdrometer, an OTT PARSIVEL disdrometer, and a rain gauge, Atmos. Res., 229, 100–114, <ext-link xlink:href="https://doi.org/10.1016/j.atmosres.2019.06.020" ext-link-type="DOI">10.1016/j.atmosres.2019.06.020</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib16"><label>16</label><mixed-citation>Liu, X. C., Gao, T. C., and Liu, L.: A video precipitation sensor for imaging and velocimetry of hydrometeors, Atmos. Meas. Tech., 7, 2037–2046, <ext-link xlink:href="https://doi.org/10.5194/amt-7-2037-2014" ext-link-type="DOI">10.5194/amt-7-2037-2014</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bib17"><label>17</label><mixed-citation>Locatelli, J. D. and Hobbs, P. V.: Fall speeds and masses of solid precipitation particles, J. Geophys. Res., 79, 2185–2197,  <ext-link xlink:href="https://doi.org/10.1029/JC079i015p02185" ext-link-type="DOI">10.1029/JC079i015p02185</ext-link>, 1974.</mixed-citation></ref>
      <ref id="bib1.bib18"><label>18</label><mixed-citation>Loffler-Mang, M. and Joss, J.: An Optical Disdrometer for Measuring Size and Velocity of Hydrometeors, J. Atmos. Ocean. Tech., 17, 130–139, <ext-link xlink:href="https://doi.org/10.1175/1520-0426(2000)017&lt;0130:Aodfms&gt;2.0.Co;2" ext-link-type="DOI">10.1175/1520-0426(2000)017&lt;0130:Aodfms&gt;2.0.Co;2</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bib19"><label>19</label><mixed-citation>Maahn, M., Moisseev, D., Steinke, I., Maherndl, N., and Shupe, M. D.: Introducing the Video In Situ Snowfall Sensor (VISSS), Atmos. Meas. Tech., 17, 899–919, <ext-link xlink:href="https://doi.org/10.5194/amt-17-899-2024" ext-link-type="DOI">10.5194/amt-17-899-2024</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bib20"><label>20</label><mixed-citation>Mason, S. L., Hogan, R. J., Westbrook, C. D., Kneifel, S., Moisseev, D., and von Terzi, L.: The importance of particle size distribution and internal structure for triple-frequency radar retrievals of the morphology of snow, Atmos. Meas. Tech., 12, 4993–5018, <ext-link xlink:href="https://doi.org/10.5194/amt-12-4993-2019" ext-link-type="DOI">10.5194/amt-12-4993-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib21"><label>21</label><mixed-citation>Minda, H., Tsuda, N., and Fujiyoshi, Y.: Three-Dimensional Shape and Fall Velocity Measurements of Snowflakes Using a Multiangle Snowflake Imager, J. Atmos. Ocean. Tech., 34, 1763–1781, <ext-link xlink:href="https://doi.org/10.1175/jtech-d-16-0221.1" ext-link-type="DOI">10.1175/jtech-d-16-0221.1</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib22"><label>22</label><mixed-citation>Morrison, H., van Lier-Walqui, M., Fridlind, A. M., Grabowski, W. W., Harrington, J. Y., Hoose, C., Korolev, A., Kumjian, M. R., Milbrandt, J. A., Pawlowska, H., Posselt, D. J., Prat, O. P., Reimel, K. J., Shima, S. I., van Diedenhoven, B., and Xue, L.: Confronting the Challenge of Modeling Cloud and Precipitation Microphysics, J. Adv. Model. Earth Sy., 12, e2019MS001689, <ext-link xlink:href="https://doi.org/10.1029/2019ms001689" ext-link-type="DOI">10.1029/2019ms001689</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib23"><label>23</label><mixed-citation>Newman, A. J., Kucera, P. A., and Bliven, L. F.: Presenting the Snowflake Video Imager (SVI), J. Atmos. Ocean. Tech., 26, 167–179, <ext-link xlink:href="https://doi.org/10.1175/2008JTECHA1148.1" ext-link-type="DOI">10.1175/2008JTECHA1148.1</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bib24"><label>24</label><mixed-citation>Notaroš, B. M., Bringi, V. N., Kleinkort, C., Kennedy, P., Huang, G.-J., Thurai, M., Newman, A. J., Bang, W., and Lee, G.: Accurate Characterization of Winter Precipitation Using Multi-Angle Snowflake Camera, Visual Hull, Advanced Scattering Methods and Polarimetric Radar, Atmosphere, 7, 81, <ext-link xlink:href="https://doi.org/10.3390/atmos7060081" ext-link-type="DOI">10.3390/atmos7060081</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib25"><label>25</label><mixed-citation>Olson, W. S., Tian, L., Grecu, M., Kuo, K.-S., Johnson, B. T., Heymsfield, A. J., Bansemer, A., Heymsfield, G. M., Wang, J. R., and Meneghini, R.: The Microwave Radiative Properties of Falling Snow Derived from Nonspherical Ice Particle Models. Part II: Initial Testing Using Radar, Radiometer, and In Situ Observations, J. Appl. Meteorol. Clim., 55, 709–722, <ext-link xlink:href="https://doi.org/10.1175/jamc-d-15-0131.1" ext-link-type="DOI">10.1175/jamc-d-15-0131.1</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib26"><label>26</label><mixed-citation>Pettersen, C., Bliven, L. F., von Lerber, A., Wood, N. B., Kulie, M. S., Mateling, M. E., Moisseev, D. N., Munchak, S. J., Petersen, W. A., and Wolff, D. B.: The Precipitation Imaging Package: Assessment of Microphysical and Bulk Characteristics of Snow, Atmosphere, 11, 785, <ext-link xlink:href="https://doi.org/10.3390/atmos11080785" ext-link-type="DOI">10.3390/atmos11080785</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib27"><label>27</label><mixed-citation>Taylor, P. A.: H. R. Pruppacher and J. D. Klett, Microphysics of Clouds and Precipitation, Bound.-Lay. Meteorol., 86, 187–188, <ext-link xlink:href="https://doi.org/10.1023/a:1000652616430" ext-link-type="DOI">10.1023/a:1000652616430</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bib28"><label>28</label><mixed-citation>Tyynelä, J., Leinonen, J., Moisseev, D., and Nousiainen, T.: Radar Backscattering from Snowflakes: Comparison of Fractal, Aggregate, and Soft Spheroid Models, J. Atmos. Ocean. Tech., 28, 1365–1372, <ext-link xlink:href="https://doi.org/10.1175/jtech-d-11-00004.1" ext-link-type="DOI">10.1175/jtech-d-11-00004.1</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib29"><label>29</label><mixed-citation>Zhang, Y., Zhang, L., Lei, H., Xie, Y., Wen, L., Yang, J., and Wu, Z.: Characteristics of Summer Season Raindrop Size Distribution in Three Typical Regions of Western Pacific, J. Geophys. Res.-Atmos., 124, 4054–4073, <ext-link xlink:href="https://doi.org/10.1029/2018jd029194" ext-link-type="DOI">10.1029/2018jd029194</ext-link>, 2019.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>An introduction of the Three-Dimensional Precipitation Particle Imager (3D-PPI)</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>1</label><mixed-citation>
      
Bailey, M. and Hallett, J.: Ice Crystal Linear Growth Rates from
−20&thinsp;° to −70&thinsp;°C: Confirmation from Wave Cloud Studies, J. Atmos. Sci., 69, 390–402, <a href="https://doi.org/10.1175/jas-d-11-035.1" target="_blank">https://doi.org/10.1175/jas-d-11-035.1</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>2</label><mixed-citation>
      
Bataineh, B., Abdullah, S. N. H. S., and Omar, K.: An adaptive local
binarization method for document images based on a novel thresholding method
and dynamic windows, Pattern Recogn. Lett., 32, 1805–1813, <a href="https://doi.org/10.1016/j.patrec.2011.08.001" target="_blank">https://doi.org/10.1016/j.patrec.2011.08.001</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>3</label><mixed-citation>
      
Battaglia, A., Rustemeier, E., Tokay, A., Blahak, U., and Simmer, C.:
PARSIVEL Snow Observations: A Critical Assessment, J. Atmos. Ocean. Tech.,
27, 333–344, <a href="https://doi.org/10.1175/2009jtecha1332.1" target="_blank">https://doi.org/10.1175/2009jtecha1332.1</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>4</label><mixed-citation>
      
Bernauer, F., Hürkamp, K., Rühm, W., and Tschiersch, J.: Snow event
classification with a 2D video disdrometer – A decision tree approach,
Atmos. Res., 172–173, 186–195, <a href="https://doi.org/10.1016/j.atmosres.2016.01.001" target="_blank">https://doi.org/10.1016/j.atmosres.2016.01.001</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>5</label><mixed-citation>
      
Cheng, Q. and Huang, P.: Camera Calibration Based on Phase Estimation, IEEE
T. Instrum. Meas., 72, 1–9, <a href="https://doi.org/10.1109/tim.2022.3227554" target="_blank">https://doi.org/10.1109/tim.2022.3227554</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>6</label><mixed-citation>
      
Garrett, T. J., Fallgatter, C., Shkurko, K., and Howlett, D.: Fall speed measurement and high-resolution multi-angle photography of hydrometeors in free fall, Atmos. Meas. Tech., 5, 2625–2633, <a href="https://doi.org/10.5194/amt-5-2625-2012" target="_blank">https://doi.org/10.5194/amt-5-2625-2012</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>7</label><mixed-citation>
      
Grazioli, J., Ghiggi, G., Billault-Roux, A.-C., and Berne, A.: MASCDB, a
database of images, descriptors and microphysical properties of individual
snowflakes in free fall, Sci. Data, 9, 186, <a href="https://doi.org/10.1038/s41597-022-01269-7" target="_blank">https://doi.org/10.1038/s41597-022-01269-7</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>8</label><mixed-citation>
      
Hauswiesner, S., Straka, M., and Reitmayr, G.: Temporal coherence in
image-based visual hull rendering, IEEE T. Vis. Comput. Gr., 19, 1758–1767, <a href="https://doi.org/10.1109/tvcg.2013.85" target="_blank">https://doi.org/10.1109/tvcg.2013.85</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>9</label><mixed-citation>
      
Helms, C. N., Munchak, S. J., Tokay, A., and Pettersen, C.: A comparative evaluation of snowflake particle shape estimation techniques used by the Precipitation Imaging Package (PIP), Multi-Angle Snowflake Camera (MASC), and Two-Dimensional Video Disdrometer (2DVD), Atmos. Meas. Tech., 15, 6545–6561, <a href="https://doi.org/10.5194/amt-15-6545-2022" target="_blank">https://doi.org/10.5194/amt-15-6545-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>10</label><mixed-citation>
      
Kim, M.-J., Kulie, M. S., O'Dell, C., and Bennartz, R.: Scattering of Ice
Particles at Microwave Frequencies: A Physically Based Parameterization, J.
Appl. Meteorol. Clim., 46, 615–633, <a href="https://doi.org/10.1175/jam2483.1" target="_blank">https://doi.org/10.1175/jam2483.1</a>, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>11</label><mixed-citation>
      
Kim, M. J.: Single scattering parameters of randomly oriented snow particles
at microwave frequencies, J. Geophys. Res.-Atmos., 111, D14201, <a href="https://doi.org/10.1029/2005jd006892" target="_blank">https://doi.org/10.1029/2005jd006892</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>12</label><mixed-citation>
      
Kleinkort, C., Huang, G. J., Bringi, V. N., and Notaroš, B. M.: Visual
Hull Method for Realistic 3D Particle Shape Reconstruction Based on
High-Resolution Photographs of Snowflakes in Free Fall from Multiple Views,
J. Atmos. Ocean. Tech., 34, 679–702, <a href="https://doi.org/10.1175/JTECH-D-16-0099.1" target="_blank">https://doi.org/10.1175/JTECH-D-16-0099.1</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>13</label><mixed-citation>
      
Kneifel, S., Löhnert, U., Battaglia, A., Crewell, S., and Siebler, D.:
Snow scattering signals in ground-based passive microwave radiometer measurements, J. Geophys. Res.-Atmos., 115, D16214, <a href="https://doi.org/10.1029/2010jd013856" target="_blank">https://doi.org/10.1029/2010jd013856</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>14</label><mixed-citation>
      
Leinonen, J., Grazioli, J., and Berne, A.: Reconstruction of the mass and geometry of snowfall particles from multi-angle snowflake camera (MASC) images, Atmos. Meas. Tech., 14, 6851–6866, <a href="https://doi.org/10.5194/amt-14-6851-2021" target="_blank">https://doi.org/10.5194/amt-14-6851-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>15</label><mixed-citation>
      
Liu, X., He, B., Zhao, S., Hu, S., and Liu, L.: Comparative measurement of
rainfall with a precipitation micro-physical characteristics sensor, a 2D
video disdrometer, an OTT PARSIVEL disdrometer, and a rain gauge, Atmos.
Res., 229, 100–114, <a href="https://doi.org/10.1016/j.atmosres.2019.06.020" target="_blank">https://doi.org/10.1016/j.atmosres.2019.06.020</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>16</label><mixed-citation>
      
Liu, X. C., Gao, T. C., and Liu, L.: A video precipitation sensor for imaging and velocimetry of hydrometeors, Atmos. Meas. Tech., 7, 2037–2046, <a href="https://doi.org/10.5194/amt-7-2037-2014" target="_blank">https://doi.org/10.5194/amt-7-2037-2014</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>17</label><mixed-citation>
      
Locatelli, J. D. and Hobbs, P. V.: Fall speeds and masses of solid precipitation particles, J. Geophys. Res., 79, 2185–2197,  <a href="https://doi.org/10.1029/JC079i015p02185" target="_blank">https://doi.org/10.1029/JC079i015p02185</a>, 1974.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>18</label><mixed-citation>
      
Loffler-Mang, M. and Joss, J.: An Optical Disdrometer for Measuring Size and
Velocity of Hydrometeors, J. Atmos. Ocean. Tech., 17, 130–139, <a href="https://doi.org/10.1175/1520-0426(2000)017&lt;0130:Aodfms&gt;2.0.Co;2" target="_blank">https://doi.org/10.1175/1520-0426(2000)017&lt;0130:Aodfms&gt;2.0.Co;2</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>19</label><mixed-citation>
      
Maahn, M., Moisseev, D., Steinke, I., Maherndl, N., and Shupe, M. D.: Introducing the Video In Situ Snowfall Sensor (VISSS), Atmos. Meas. Tech., 17, 899–919, <a href="https://doi.org/10.5194/amt-17-899-2024" target="_blank">https://doi.org/10.5194/amt-17-899-2024</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>20</label><mixed-citation>
      
Mason, S. L., Hogan, R. J., Westbrook, C. D., Kneifel, S., Moisseev, D., and von Terzi, L.: The importance of particle size distribution and internal structure for triple-frequency radar retrievals of the morphology of snow, Atmos. Meas. Tech., 12, 4993–5018, <a href="https://doi.org/10.5194/amt-12-4993-2019" target="_blank">https://doi.org/10.5194/amt-12-4993-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>21</label><mixed-citation>
      
Minda, H., Tsuda, N., and Fujiyoshi, Y.: Three-Dimensional Shape and Fall
Velocity Measurements of Snowflakes Using a Multiangle Snowflake Imager, J.
Atmos. Ocean. Tech., 34, 1763–1781, <a href="https://doi.org/10.1175/jtech-d-16-0221.1" target="_blank">https://doi.org/10.1175/jtech-d-16-0221.1</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>22</label><mixed-citation>
      
Morrison, H., van Lier-Walqui, M., Fridlind, A. M., Grabowski, W. W., Harrington, J. Y., Hoose, C., Korolev, A., Kumjian, M. R., Milbrandt, J. A., Pawlowska, H., Posselt, D. J., Prat, O. P., Reimel, K. J., Shima, S. I., van Diedenhoven, B., and Xue, L.: Confronting the Challenge of Modeling Cloud and Precipitation Microphysics, J. Adv. Model. Earth Sy., 12, e2019MS001689, <a href="https://doi.org/10.1029/2019ms001689" target="_blank">https://doi.org/10.1029/2019ms001689</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>23</label><mixed-citation>
      
Newman, A. J., Kucera, P. A., and Bliven, L. F.: Presenting the Snowflake
Video Imager (SVI), J. Atmos. Ocean. Tech., 26, 167–179, <a href="https://doi.org/10.1175/2008JTECHA1148.1" target="_blank">https://doi.org/10.1175/2008JTECHA1148.1</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>24</label><mixed-citation>
      
Notaroš, B. M., Bringi, V. N., Kleinkort, C., Kennedy, P., Huang, G.-J., Thurai, M., Newman, A. J., Bang, W., and Lee, G.: Accurate Characterization of Winter Precipitation Using Multi-Angle Snowflake Camera, Visual Hull,
Advanced Scattering Methods and Polarimetric Radar, Atmosphere, 7, 81,
<a href="https://doi.org/10.3390/atmos7060081" target="_blank">https://doi.org/10.3390/atmos7060081</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>25</label><mixed-citation>
      
Olson, W. S., Tian, L., Grecu, M., Kuo, K.-S., Johnson, B. T., Heymsfield,
A. J., Bansemer, A., Heymsfield, G. M., Wang, J. R., and Meneghini, R.: The
Microwave Radiative Properties of Falling Snow Derived from Nonspherical Ice
Particle Models. Part II: Initial Testing Using Radar, Radiometer, and In
Situ Observations, J. Appl. Meteorol. Clim., 55, 709–722, <a href="https://doi.org/10.1175/jamc-d-15-0131.1" target="_blank">https://doi.org/10.1175/jamc-d-15-0131.1</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>26</label><mixed-citation>
      
Pettersen, C., Bliven, L. F., von Lerber, A., Wood, N. B., Kulie, M. S.,
Mateling, M. E., Moisseev, D. N., Munchak, S. J., Petersen, W. A., and
Wolff, D. B.: The Precipitation Imaging Package: Assessment of Microphysical
and Bulk Characteristics of Snow, Atmosphere, 11, 785, <a href="https://doi.org/10.3390/atmos11080785" target="_blank">https://doi.org/10.3390/atmos11080785</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>27</label><mixed-citation>
      
Taylor, P. A.: H. R. Pruppacher and J. D. Klett, Microphysics of Clouds and
Precipitation, Bound.-Lay. Meteorol., 86, 187–188, <a href="https://doi.org/10.1023/a:1000652616430" target="_blank">https://doi.org/10.1023/a:1000652616430</a>, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>28</label><mixed-citation>
      
Tyynelä, J., Leinonen, J., Moisseev, D., and Nousiainen, T.: Radar
Backscattering from Snowflakes: Comparison of Fractal, Aggregate, and Soft
Spheroid Models, J. Atmos. Ocean. Tech., 28, 1365–1372, <a href="https://doi.org/10.1175/jtech-d-11-00004.1" target="_blank">https://doi.org/10.1175/jtech-d-11-00004.1</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>29</label><mixed-citation>
      
Zhang, Y., Zhang, L., Lei, H., Xie, Y., Wen, L., Yang, J., and Wu, Z.:
Characteristics of Summer Season Raindrop Size Distribution in Three Typical
Regions of Western Pacific, J. Geophys. Res.-Atmos., 124, 4054–4073,
<a href="https://doi.org/10.1029/2018jd029194" target="_blank">https://doi.org/10.1029/2018jd029194</a>, 2019.

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