diff --git a/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp b/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp index f98dafcd..ebadf4f5 100644 --- a/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp +++ b/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp @@ -532,7 +532,8 @@ bool DigitalRadarData::Parse(std::istream& is) messageValid = false; } - if (messageValid && p->surveillancePointer_ != 0) + if (messageValid && p->surveillancePointer_ != 0 && + p->numberOfSurveillanceBins_ != 0) { p->reflectivityDataBlock_ = std::make_shared( this, DataBlockType::MomentRef); @@ -546,7 +547,7 @@ bool DigitalRadarData::Parse(std::istream& is) p->numberOfSurveillanceBins_); } - if (messageValid && p->velocityPointer_ != 0) + if (messageValid && p->velocityPointer_ != 0 && p->numberOfDopplerBins_ != 0) { p->dopplerVelocityDataBlock_ = std::make_shared( this, DataBlockType::MomentVel); @@ -561,7 +562,8 @@ bool DigitalRadarData::Parse(std::istream& is) p->numberOfDopplerBins_); } - if (messageValid && p->spectralWidthPointer_ != 0) + if (messageValid && p->spectralWidthPointer_ != 0 && + p->numberOfDopplerBins_ != 0) { p->dopplerSpectrumWidthDataBlock_ = std::make_shared(this,