Fix usage of vertexRadials in ComputeSweep

This commit is contained in:
Dan Paulat 2024-10-03 05:44:40 -05:00
parent fe4a324a04
commit 41c1125388

View file

@ -539,7 +539,7 @@ void Level2ProductView::ComputeSweep()
return;
}
const std::size_t radials = radarData->crbegin()->first + 1;
std::size_t radials = radarData->crbegin()->first + 1;
std::size_t vertexRadials = radials;
// When there is missing data, insert another empty vertex radial at the end
@ -551,6 +551,11 @@ void Level2ProductView::ComputeSweep()
++vertexRadials;
}
// Limit radials
radials = std::min<std::size_t>(radials, common::MAX_0_5_DEGREE_RADIALS);
vertexRadials =
std::min<std::size_t>(vertexRadials, common::MAX_0_5_DEGREE_RADIALS);
p->ComputeCoordinates(radarData);
const std::vector<float>& coordinates = p->coordinates_;
@ -735,12 +740,13 @@ void Level2ProductView::ComputeSweep()
{
const std::uint16_t baseCoord = gate - 1;
std::size_t offset1 = ((startRadial + radial) % radials *
std::size_t offset1 = ((startRadial + radial) % vertexRadials *
common::MAX_DATA_MOMENT_GATES +
baseCoord) *
2;
std::size_t offset2 = offset1 + gateSize * 2;
std::size_t offset3 = (((startRadial + radial + 1) % radials) *
std::size_t offset3 =
(((startRadial + radial + 1) % vertexRadials) *
common::MAX_DATA_MOMENT_GATES +
baseCoord) *
2;
@ -770,11 +776,12 @@ void Level2ProductView::ComputeSweep()
{
const std::uint16_t baseCoord = gate;
std::size_t offset1 = ((startRadial + radial) % radials *
std::size_t offset1 = ((startRadial + radial) % vertexRadials *
common::MAX_DATA_MOMENT_GATES +
baseCoord) *
2;
std::size_t offset2 = (((startRadial + radial + 1) % radials) *
std::size_t offset2 =
(((startRadial + radial + 1) % vertexRadials) *
common::MAX_DATA_MOMENT_GATES +
baseCoord) *
2;