Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ release. ### Fixed - Fixed bugs in downloadIsisData script [#5024](https://github.com/USGS-Astrogeology/ISIS3/issues/5024) - Fixed shadow shifting image by 2 pixels to the upper left corner. [#5035](https://github.com/USGS-Astrogeology/ISIS3/issues/5035) ## [7.1.0] - 2022-07-27 Loading isis/src/base/apps/shadow/ShadowFunctor.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -392,15 +392,15 @@ namespace Isis { Hillshade hillshade(azimuth, elevation, elevationModelProjection->Resolution()); Portal portal(3, 3, m_inputDem->pixelType(), -1.5, -1.5); portal.SetPosition(sample + 1, line + 1, input.Band()); Portal portal(3, 3, m_inputDem->pixelType(), -0.5, -0.5); portal.SetPosition(sample, line, input.Band()); if (!portal.CopyOverlapFrom(input)) { m_inputDem->read(portal); } double shadedValue = hillshade.shadedValue(portal); if (shadedValue > 0) { bool shadowed = m_enableShadowCalculations && couldBeShadowed && isShadowed(rayStartPointInBodyFixed, sample + 1, line + 1, Loading isis/src/base/objs/Hillshade/Hillshade.cpp +0 −1 Original line number Diff line number Diff line Loading @@ -280,7 +280,6 @@ namespace Isis { double numerator = 1.0 + p0 * p + q0 * q; double denominator = sqrt(1 + p * p + q * q) * sqrt(1 + p0 * p0 + q0 * q0); result = numerator / denominator; } Loading isis/tests/FunctionalTestsShadow.cpp +34 −34 Original line number Diff line number Diff line Loading @@ -37,10 +37,10 @@ TEST_F(DemCube, FunctionalTestShadowMatch) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 90.0); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 90.0); EXPECT_EQ(int(shadowStats["NumRays"]), 5388); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5388); EXPECT_EQ(int(shadowStats["NumRays"]), 5551); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5551); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -49,10 +49,10 @@ TEST_F(DemCube, FunctionalTestShadowMatch) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowTime) { Loading @@ -76,10 +76,10 @@ TEST_F(DemCube, FunctionalTestShadowTime) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 54.185416336220001); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 55.260883777776002); EXPECT_EQ(int(shadowStats["NumRays"]), 9409); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 9926); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0549473907960001); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 9305); EXPECT_EQ(int(shadowStats["NumRays"]), 9604); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 10177); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0596626405664); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 9500); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 104); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 104); Loading @@ -88,10 +88,10 @@ TEST_F(DemCube, FunctionalTestShadowTime) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.57758065374995482, 1e-11); EXPECT_NEAR(hist->Sum(), 5374.3879831433296, 1e-11); ASSERT_EQ(hist->ValidPixels(), 9305); EXPECT_NEAR(hist->StandardDeviation(), 0.0026649128709642098, 1e-11); EXPECT_NEAR(hist->Average(), 0.57755590112585775, 1e-11); EXPECT_NEAR(hist->Sum(), 5486.7810606956482, 1e-11); ASSERT_EQ(hist->ValidPixels(), 9500); EXPECT_NEAR(hist->StandardDeviation(), 0.0027122379225963896, 1e-11); } TEST_F(DemCube, FunctionalTestShadowNoShadow) { Loading @@ -116,7 +116,7 @@ TEST_F(DemCube, FunctionalTestShadowNoShadow) { EXPECT_EQ(int(shadowStats["NumRays"]), 0); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -125,10 +125,10 @@ TEST_F(DemCube, FunctionalTestShadowNoShadow) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); EXPECT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); EXPECT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowAccurate) { Loading @@ -149,10 +149,10 @@ TEST_F(DemCube, FunctionalTestShadowAccurate) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 90.0); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 90.0); EXPECT_EQ(int(shadowStats["NumRays"]), 5388); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5388); EXPECT_EQ(int(shadowStats["NumRays"]), 5551); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5551); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -161,10 +161,10 @@ TEST_F(DemCube, FunctionalTestShadowAccurate) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowCustom) { Loading @@ -185,10 +185,10 @@ TEST_F(DemCube, FunctionalTestShadowCustom) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 90.0); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 90.0); EXPECT_EQ(int(shadowStats["NumRays"]), 5388); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5388); EXPECT_EQ(int(shadowStats["NumRays"]), 5551); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5551); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -197,10 +197,10 @@ TEST_F(DemCube, FunctionalTestShadowCustom) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowErrors) { Loading Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ release. ### Fixed - Fixed bugs in downloadIsisData script [#5024](https://github.com/USGS-Astrogeology/ISIS3/issues/5024) - Fixed shadow shifting image by 2 pixels to the upper left corner. [#5035](https://github.com/USGS-Astrogeology/ISIS3/issues/5035) ## [7.1.0] - 2022-07-27 Loading
isis/src/base/apps/shadow/ShadowFunctor.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -392,15 +392,15 @@ namespace Isis { Hillshade hillshade(azimuth, elevation, elevationModelProjection->Resolution()); Portal portal(3, 3, m_inputDem->pixelType(), -1.5, -1.5); portal.SetPosition(sample + 1, line + 1, input.Band()); Portal portal(3, 3, m_inputDem->pixelType(), -0.5, -0.5); portal.SetPosition(sample, line, input.Band()); if (!portal.CopyOverlapFrom(input)) { m_inputDem->read(portal); } double shadedValue = hillshade.shadedValue(portal); if (shadedValue > 0) { bool shadowed = m_enableShadowCalculations && couldBeShadowed && isShadowed(rayStartPointInBodyFixed, sample + 1, line + 1, Loading
isis/src/base/objs/Hillshade/Hillshade.cpp +0 −1 Original line number Diff line number Diff line Loading @@ -280,7 +280,6 @@ namespace Isis { double numerator = 1.0 + p0 * p + q0 * q; double denominator = sqrt(1 + p * p + q * q) * sqrt(1 + p0 * p0 + q0 * q0); result = numerator / denominator; } Loading
isis/tests/FunctionalTestsShadow.cpp +34 −34 Original line number Diff line number Diff line Loading @@ -37,10 +37,10 @@ TEST_F(DemCube, FunctionalTestShadowMatch) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 90.0); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 90.0); EXPECT_EQ(int(shadowStats["NumRays"]), 5388); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5388); EXPECT_EQ(int(shadowStats["NumRays"]), 5551); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5551); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -49,10 +49,10 @@ TEST_F(DemCube, FunctionalTestShadowMatch) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowTime) { Loading @@ -76,10 +76,10 @@ TEST_F(DemCube, FunctionalTestShadowTime) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 54.185416336220001); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 55.260883777776002); EXPECT_EQ(int(shadowStats["NumRays"]), 9409); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 9926); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0549473907960001); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 9305); EXPECT_EQ(int(shadowStats["NumRays"]), 9604); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 10177); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0596626405664); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 9500); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 104); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 104); Loading @@ -88,10 +88,10 @@ TEST_F(DemCube, FunctionalTestShadowTime) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.57758065374995482, 1e-11); EXPECT_NEAR(hist->Sum(), 5374.3879831433296, 1e-11); ASSERT_EQ(hist->ValidPixels(), 9305); EXPECT_NEAR(hist->StandardDeviation(), 0.0026649128709642098, 1e-11); EXPECT_NEAR(hist->Average(), 0.57755590112585775, 1e-11); EXPECT_NEAR(hist->Sum(), 5486.7810606956482, 1e-11); ASSERT_EQ(hist->ValidPixels(), 9500); EXPECT_NEAR(hist->StandardDeviation(), 0.0027122379225963896, 1e-11); } TEST_F(DemCube, FunctionalTestShadowNoShadow) { Loading @@ -116,7 +116,7 @@ TEST_F(DemCube, FunctionalTestShadowNoShadow) { EXPECT_EQ(int(shadowStats["NumRays"]), 0); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -125,10 +125,10 @@ TEST_F(DemCube, FunctionalTestShadowNoShadow) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); EXPECT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); EXPECT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowAccurate) { Loading @@ -149,10 +149,10 @@ TEST_F(DemCube, FunctionalTestShadowAccurate) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 90.0); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 90.0); EXPECT_EQ(int(shadowStats["NumRays"]), 5388); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5388); EXPECT_EQ(int(shadowStats["NumRays"]), 5551); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5551); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -161,10 +161,10 @@ TEST_F(DemCube, FunctionalTestShadowAccurate) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowCustom) { Loading @@ -185,10 +185,10 @@ TEST_F(DemCube, FunctionalTestShadowCustom) { EXPECT_DOUBLE_EQ(double(shadowStats["MinimumElevation"]), 90.0); EXPECT_DOUBLE_EQ(double(shadowStats["MaximumElevation"]), 90.0); EXPECT_EQ(int(shadowStats["NumRays"]), 5388); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5388); EXPECT_EQ(int(shadowStats["NumRays"]), 5551); EXPECT_EQ(int(shadowStats["NumRayDemIntersections"]), 5551); EXPECT_DOUBLE_EQ(double(shadowStats["AverageRayDemIntersectionsPerRay"]), 1.0); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5388); EXPECT_EQ(int(shadowStats["NumLightedPixels"]), 5551); EXPECT_EQ(int(shadowStats["NumShadowedPixels"]), 0); EXPECT_EQ(int(shadowStats["NumSpecialPixels"]), 2800); EXPECT_EQ(int(shadowStats["NumPixelsShadowedByRays"]), 0); Loading @@ -197,10 +197,10 @@ TEST_F(DemCube, FunctionalTestShadowCustom) { std::unique_ptr<Histogram> hist (shadowCube.histogram()); EXPECT_NEAR(hist->Average(), 0.000870468438, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6900839445906222, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5388); EXPECT_NEAR(hist->StandardDeviation(), 0.0010127599253911463, 1e-11); EXPECT_NEAR(hist->Average(), 0.00084506527240706553, 1e-11); EXPECT_NEAR(hist->Sum(), 4.6909573271316205, 1e-11); ASSERT_EQ(hist->ValidPixels(), 5551); EXPECT_NEAR(hist->StandardDeviation(), 0.0010084740620921499, 1e-11); } TEST_F(DemCube, FunctionalTestShadowErrors) { Loading