Parsivel2#

The OTT Parsivel2 is a laser-based disdrometer for comprehensive measurement of all types of precipitation. There are currently 3 such disdrometers in operation at the BCO. The longest running disdrometer (451995) was in operation since 2023-05-14, was decommissioned 2025-10-14 due to hardware issues, and was reinstalled 2026-01-22. The other two, 451996 and 451997, were added 2025-09-22. Below we provide the locations of the three parsivels accompanied by their serial numbers.

Locations of 3 parsivels

Parsivel2 @ BCO

The device works on the extinction principle and measures precipitation particles using the shadowing effects they cause when they pass through a laser band.

Parsivels 451995 and 451997 (1 and 3) are oriented facing east, while 451996 (2) is facing north.

The Parsivel2 captures both the size and the rate of fall in detail of the individual hydrometeors and classifies them into a range of 32 classes each. The temporal resolution covers between 10 seconds and one hour. The raw data is used to calculate for example precipitation type, amount and intensity.

The measurement principle#

OTT Parsivel2 uses a laser-optical sensor to measure precipitation. The transmitter unit of the sensor generates a flat, horizontal beam of light that the receiver unit converts to an electrical signal. This signal changes whenever a hydrometeor falls through the beam anywhere within the measuring area (54 cm2). The degree of dimming is a measure of the size of the hydrometeor and the fall velocity is derived from the extinction signal duration.

Uh oh!

Comparison with other precipitation measurements corroborates findings from the literature that the parsivel does not accurately capture rain events surpassing 20 mm h-1 in intensity.

Data Availability#

The data from the first parsivel is available as BCO.disdrometer_PARSIVEL451995_c1 in the catalog.

The next two are published under the keys BCO.disdrometer_PARSIVEL451996_c1_v2 and BCO.disdrometer_PARSIVEL451997_c1_v2.

Versions#

The dataset from the first parsivel is available in multiple versions.

  • Version 1: first version of the dataset

  • Version 2: firmware revision is time-dependent, firmware was upgraded during the measurement period on 2025-08-31 (before installation of second and third parsivels.)

Sample Plot#

The plot shows rain rate and particle size distribution during September 2024 (the period where the ORCESTRA Campaign visited the BCO).

import intake
import matplotlib.pylab as plt
cat = intake.open_catalog("https://tcodata.mpimet.mpg.de/catalog.yaml")
ds = cat.BCO.disdrometer_PARSIVEL451995_c1.to_dask()
subset = ds.sel(time="2024-09")
fix, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
subset["rain_rate"].plot(ax=ax1)
subset["raw"].mean("time").plot(cmap="Blues", ax=ax2);
/builds/tco/bco/docs/.venv/lib/python3.12/site-packages/intake_xarray/base.py:21: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
  'dims': dict(self._ds.dims),
../../_images/c2c8f3b7b869e38edd3252e645ac90250153c3e00935ccc54a3f2b2c1b5902cc.png

The full dataset:

ds
<xarray.Dataset> Size: 3GB
Dimensions:              (d: 32, bnd: 2, time: 1288323, v: 32)
Coordinates:
    alt                  float64 8B ...
  * d                    (d) float32 128B 0.0625 0.1875 0.3125 ... 21.5 24.5
    lat                  float64 8B ...
    lon                  float64 8B ...
  * time                 (time) datetime64[ns] 10MB 2023-05-14T00:46:28 ... 2...
  * v                    (v) float32 128B 0.05 0.15 0.25 0.35 ... 15.2 17.6 20.8
Dimensions without coordinates: bnd
Data variables:
    d_bounds             (d, bnd) float32 256B dask.array<chunksize=(32, 2), meta=np.ndarray>
    error_code           (time) int16 3MB dask.array<chunksize=(262144,), meta=np.ndarray>
    field_n_ved          (time, d) float32 165MB dask.array<chunksize=(8192, 32), meta=np.ndarray>
    field_v              (time, v) float32 165MB dask.array<chunksize=(8192, 32), meta=np.ndarray>
    firmware_iop         (time) uint16 3MB dask.array<chunksize=(262144,), meta=np.ndarray>
    number_of_particles  (time) int32 5MB dask.array<chunksize=(262144,), meta=np.ndarray>
    rain_rate            (time) float32 5MB dask.array<chunksize=(262144,), meta=np.ndarray>
    raw                  (time, v, d) int16 3GB dask.array<chunksize=(256, 32, 32), meta=np.ndarray>
    sample_interval      (time) int16 3MB dask.array<chunksize=(262144,), meta=np.ndarray>
    sensor_status        (time) int16 3MB dask.array<chunksize=(262144,), meta=np.ndarray>
    v_bounds             (v, bnd) float32 256B dask.array<chunksize=(32, 2), meta=np.ndarray>
Attributes: (12/15)
    Conventions:           CF-1.12
    _logical_cutoff_date:  2026-03-07T00:00:00Z
    bcoproc_version:       0.0.0.post1185.dev0+c830e01
    featureType:           timeSeries
    history:               processed with bcoproc l1
    institution:           Max Planck Institute for Meteorology, Hamburg
    ...                    ...
    sensor_serial_number:  451995
    source:                OTT Parsivel2 451995
    station_name:          BCODIS
    summary:               The OTT Parsivel² is a modern laser disdrometer fo...
    title:                 Parsivel 2 Disdrometer data from BCO (Level 1)
    tool_versions:         {"Python": "3.11.2 (main, Apr 28 2025, 14:11:48) [...