This topic will cover programming method to read raw data of precipitation spectrum from a disdrometer: https://www.ott.com/en-us/products/meteorological-sensors-26/ott-parsivel2-laser-weather-sensor-2392/.
Precipitation spectrum is useful to classify the type of precipitation based on the size of the droplet (diameter equivalent) and its velocity. Each properties of droplet (size and velocity) contain 32 classes which mean the entire spectrum comprises 1024 data values.
Also within this instruction, I perform parsing loop to simplify parsing sequence due to the limit of 1000 dataTaker channel table. However this method of simplification will be saved as alarm (text), since we can't grab it as data (number) due to inability of creating dynamic label for each value.
This program will need some adjustment on Parsivel output comprising measurement number (refer to page 31 of Parsivel's user manual):
- 01 (rain intensity)
- 02 (rain amount)
- 03 (weather code according to SYNOP)
- 07 (Radar reflectivity)
- 08 (MOR visibility)
- 11 (number of detected particles)
- 93 (raw value of precipitation spectrum)
dataTaker program would be:
BEGIN"Spectrum"
PROFILE SERSEN_PORT BPS=19200
PROFILE SERSEN_PORT MODE=RS485
1SERIAL("\e")
RA(DATA:5MB)5M LOGONA
1SERIAL("\e{CS/R^M^J}\\w[500]%f[11CV];%f[12CV];%d[13CV];%f[14CV];%d[15CV];%d[16CV];",W)
11CV("Rain Intensity~mm/h")
12CV("Rain Amount~mm")
13CV("SYNOP")
14CV("Reflectivity~dBz")
15CV("MOR~m")
16CV("Particles")
2ST(=21CV,W)
22CV(W)=21CV%15
IF(22CV!=0){1SERIAL("\\w[5000]\\e")}
IF(22CV==0){1CV=1 2CV=0 H GB}
RB(ALARMS:30MB) HB LOGONB
1SERIAL("%d[16CV];",W)
2CV(W)=2CV+1
IF(2CV==32)AND IF(1CV==32){G HB}
1..2CV(NL)
IF1(16CV>1)"DC?1F0-SC?2F0=?16F0"
IF(16CV>1){XC}
IF(2CV==32){2CV=0 1CV=1CV+1}
END
Best regards,
Rudy Gunawan
This topic will cover programming method to read raw data of precipitation spectrum from a disdrometer: https://www.ott.com/en-us/products/meteorological-sensors-26/ott-parsivel2-laser-weather-sensor-2392/.
Precipitation spectrum is useful to classify the type of precipitation based on the size of the droplet (diameter equivalent) and its velocity. Each properties of droplet (size and velocity) contain 32 classes which mean the entire spectrum comprises 1024 data values.
Also within this instruction, I perform parsing loop to simplify parsing sequence due to the limit of 1000 dataTaker channel table. However this method of simplification will be saved as alarm (text), since we can't grab it as data (number) due to inability of creating dynamic label for each value.
This program will need some adjustment on Parsivel output comprising measurement number (refer to page 31 of Parsivel's user manual):
- 01 (rain intensity)
- 02 (rain amount)
- 03 (weather code according to SYNOP)
- 07 (Radar reflectivity)
- 08 (MOR visibility)
- 11 (number of detected particles)
- 93 (raw value of precipitation spectrum)
dataTaker program would be:
````
BEGIN"Spectrum"
PROFILE SERSEN_PORT BPS=19200
PROFILE SERSEN_PORT MODE=RS485
1SERIAL("\e")
RA(DATA:5MB)5M LOGONA
1SERIAL("\e{CS/R^M^J}\\w[500]%f[11CV];%f[12CV];%d[13CV];%f[14CV];%d[15CV];%d[16CV];",W)
11CV("Rain Intensity~mm/h")
12CV("Rain Amount~mm")
13CV("SYNOP")
14CV("Reflectivity~dBz")
15CV("MOR~m")
16CV("Particles")
2ST(=21CV,W)
22CV(W)=21CV%15
IF(22CV!=0){1SERIAL("\\w[5000]\\e")}
IF(22CV==0){1CV=1 2CV=0 H GB}
RB(ALARMS:30MB) HB LOGONB
1SERIAL("%d[16CV];",W)
2CV(W)=2CV+1
IF(2CV==32)AND IF(1CV==32){G HB}
1..2CV(NL)
IF1(16CV>1)"DC?1F0-SC?2F0=?16F0"
IF(16CV>1){XC}
IF(2CV==32){2CV=0 1CV=1CV+1}
END
````
Best regards,
Rudy Gunawan