mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 17:50:04 +00:00
Begin logic for smoothed data moment values
This commit is contained in:
parent
1c8d7f5be9
commit
1ac85e253f
1 changed files with 72 additions and 17 deletions
|
|
@ -703,33 +703,88 @@ void Level2ProductView::ComputeSweep()
|
||||||
// Store data moment value
|
// Store data moment value
|
||||||
if (dataMomentsArray8 != nullptr)
|
if (dataMomentsArray8 != nullptr)
|
||||||
{
|
{
|
||||||
std::uint8_t dataValue = dataMomentsArray8[i];
|
if (!smoothingEnabled)
|
||||||
if (dataValue < snrThreshold && dataValue != RANGE_FOLDED)
|
|
||||||
{
|
{
|
||||||
continue;
|
std::uint8_t dataValue = dataMomentsArray8[i];
|
||||||
}
|
if (dataValue < snrThreshold && dataValue != RANGE_FOLDED)
|
||||||
|
|
||||||
for (std::size_t m = 0; m < vertexCount; m++)
|
|
||||||
{
|
|
||||||
dataMoments8[mIndex++] = dataMomentsArray8[i];
|
|
||||||
|
|
||||||
if (cfpMomentsArray != nullptr)
|
|
||||||
{
|
{
|
||||||
cfpMoments[mIndex - 1] = cfpMomentsArray[i];
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (std::size_t m = 0; m < vertexCount; m++)
|
||||||
|
{
|
||||||
|
dataMoments8[mIndex++] = dataMomentsArray8[i];
|
||||||
|
|
||||||
|
if (cfpMomentsArray != nullptr)
|
||||||
|
{
|
||||||
|
cfpMoments[mIndex - 1] = cfpMomentsArray[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (gate > 0)
|
||||||
|
{
|
||||||
|
// TODO: What is the correct value for dm3?
|
||||||
|
const std::size_t dm1 = i;
|
||||||
|
const std::size_t dm2 = dm1 + 1;
|
||||||
|
const std::size_t dm3 = i;
|
||||||
|
const std::size_t dm4 = dm3 + 1;
|
||||||
|
|
||||||
|
// TODO: Validate indices are all in range
|
||||||
|
|
||||||
|
if (dataMomentsArray8[dm1] < snrThreshold &&
|
||||||
|
dataMomentsArray8[dm1] != RANGE_FOLDED &&
|
||||||
|
dataMomentsArray8[dm2] < snrThreshold &&
|
||||||
|
dataMomentsArray8[dm2] != RANGE_FOLDED &&
|
||||||
|
dataMomentsArray8[dm3] < snrThreshold &&
|
||||||
|
dataMomentsArray8[dm3] != RANGE_FOLDED &&
|
||||||
|
dataMomentsArray8[dm4] < snrThreshold &&
|
||||||
|
dataMomentsArray8[dm4] != RANGE_FOLDED)
|
||||||
|
{
|
||||||
|
// Skip only if all data moments are hidden
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The order must match the store vertices section below
|
||||||
|
dataMoments8[mIndex++] = dataMomentsArray8[dm1];
|
||||||
|
dataMoments8[mIndex++] = dataMomentsArray8[dm2];
|
||||||
|
dataMoments8[mIndex++] = dataMomentsArray8[dm4];
|
||||||
|
dataMoments8[mIndex++] = dataMomentsArray8[dm1];
|
||||||
|
dataMoments8[mIndex++] = dataMomentsArray8[dm3];
|
||||||
|
dataMoments8[mIndex++] = dataMomentsArray8[dm4];
|
||||||
|
|
||||||
|
// cfpMoments is unused, so not populated here
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If smoothing is enabled, gate should never start at zero
|
||||||
|
// (radar site origin)
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::uint16_t dataValue = dataMomentsArray16[i];
|
if (!smoothingEnabled)
|
||||||
if (dataValue < snrThreshold && dataValue != RANGE_FOLDED)
|
|
||||||
{
|
{
|
||||||
continue;
|
std::uint16_t dataValue = dataMomentsArray16[i];
|
||||||
}
|
if (dataValue < snrThreshold && dataValue != RANGE_FOLDED)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (std::size_t m = 0; m < vertexCount; m++)
|
for (std::size_t m = 0; m < vertexCount; m++)
|
||||||
|
{
|
||||||
|
dataMoments16[mIndex++] = dataMomentsArray16[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (gate > 0)
|
||||||
{
|
{
|
||||||
dataMoments16[mIndex++] = dataMomentsArray16[i];
|
// TODO: Copy from dm8
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If smoothing is enabled, gate should never start at zero
|
||||||
|
// (radar site origin)
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue