diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp
index 37b8b268..e21484c4 100644
--- a/scwx-qt/source/scwx/qt/main/main_window.cpp
+++ b/scwx-qt/source/scwx/qt/main/main_window.cpp
@@ -322,6 +322,8 @@ MainWindow::MainWindow(QWidget* parent) :
    p->mapSettingsGroup_ = new ui::CollapsibleGroup(tr("Map Settings"), this);
    p->mapSettingsGroup_->GetContentsLayout()->addWidget(ui->mapStyleLabel);
    p->mapSettingsGroup_->GetContentsLayout()->addWidget(ui->mapStyleComboBox);
+   p->mapSettingsGroup_->GetContentsLayout()->addWidget(
+      ui->smoothRadarDataCheckBox);
    p->mapSettingsGroup_->GetContentsLayout()->addWidget(
       ui->trackLocationCheckBox);
    ui->radarToolboxScrollAreaContents->layout()->replaceWidget(
@@ -1085,6 +1087,16 @@ void MainWindowImpl::ConnectOtherSignals()
                  }
               }
            });
+   connect(mainWindow_->ui->smoothRadarDataCheckBox,
+           &QCheckBox::checkStateChanged,
+           mainWindow_,
+           [this](Qt::CheckState state)
+           {
+              bool smoothingEnabled = (state == Qt::CheckState::Checked);
+
+              // Turn on smoothing
+              activeMap_->SetSmoothingEnabled(smoothingEnabled);
+           });
    connect(mainWindow_->ui->trackLocationCheckBox,
            &QCheckBox::checkStateChanged,
            mainWindow_,
@@ -1471,6 +1483,10 @@ void MainWindowImpl::UpdateRadarProductSettings()
    {
       level2SettingsGroup_->setVisible(false);
    }
+
+   mainWindow_->ui->smoothRadarDataCheckBox->setCheckState(
+      activeMap_->GetSmoothingEnabled() ? Qt::CheckState::Checked :
+                                          Qt::CheckState::Unchecked);
 }
 
 void MainWindowImpl::UpdateRadarSite()
diff --git a/scwx-qt/source/scwx/qt/main/main_window.ui b/scwx-qt/source/scwx/qt/main/main_window.ui
index c5e877c9..42525199 100644
--- a/scwx-qt/source/scwx/qt/main/main_window.ui
+++ b/scwx-qt/source/scwx/qt/main/main_window.ui
@@ -153,8 +153,8 @@
          
           0
           0
-          205
-          701
+          190
+          680
          
         
         
@@ -329,6 +329,13 @@
             - 
              
             +
- 
+             
+              
+               Smooth Radar Data
+              
+             
+            
- 
              
               
diff --git a/scwx-qt/source/scwx/qt/map/map_widget.cpp b/scwx-qt/source/scwx/qt/map/map_widget.cpp
index d3c7fefc..37300a96 100644
--- a/scwx-qt/source/scwx/qt/map/map_widget.cpp
+++ b/scwx-qt/source/scwx/qt/map/map_widget.cpp
@@ -225,7 +225,7 @@ public:
    std::shared_ptr        overlayLayer_;
    std::shared_ptr overlayProductLayer_ {nullptr};
    std::shared_ptr      placefileLayer_;
-   std::shared_ptr            markerLayer_;
+   std::shared_ptr         markerLayer_;
    std::shared_ptr     colorTableLayer_;
    std::shared_ptr      radarSiteLayer_ {nullptr};
 
@@ -233,6 +233,7 @@ public:
 
    bool autoRefreshEnabled_;
    bool autoUpdateEnabled_;
+   bool smoothingEnabled_ {false};
 
    common::Level2Product selectedLevel2Product_;
 
@@ -727,6 +728,23 @@ std::uint16_t MapWidget::GetVcp() const
    }
 }
 
+bool MapWidget::GetSmoothingEnabled() const
+{
+   return p->smoothingEnabled_;
+}
+
+void MapWidget::SetSmoothingEnabled(bool smoothingEnabled)
+{
+   p->smoothingEnabled_ = smoothingEnabled;
+
+   auto radarProductView = p->context_->radar_product_view();
+   if (radarProductView != nullptr)
+   {
+      radarProductView->set_smoothing_enabled(smoothingEnabled);
+      radarProductView->Update();
+   }
+}
+
 void MapWidget::SelectElevation(float elevation)
 {
    auto radarProductView = p->context_->radar_product_view();
@@ -775,6 +793,7 @@ void MapWidget::SelectRadarProduct(common::RadarProductGroup group,
 
       radarProductView = view::RadarProductViewFactory::Create(
          group, productName, productCode, p->radarProductManager_);
+      radarProductView->set_smoothing_enabled(p->smoothingEnabled_);
       p->context_->set_radar_product_view(radarProductView);
 
       p->RadarProductViewConnect();
diff --git a/scwx-qt/source/scwx/qt/map/map_widget.hpp b/scwx-qt/source/scwx/qt/map/map_widget.hpp
index 40f7df77..4254453e 100644
--- a/scwx-qt/source/scwx/qt/map/map_widget.hpp
+++ b/scwx-qt/source/scwx/qt/map/map_widget.hpp
@@ -48,6 +48,7 @@ public:
    std::string                           GetRadarProductName() const;
    std::shared_ptr    GetRadarSite() const;
    std::chrono::system_clock::time_point GetSelectedTime() const;
+   bool                                  GetSmoothingEnabled() const;
    std::uint16_t                         GetVcp() const;
 
    void SelectElevation(float elevation);
@@ -117,6 +118,7 @@ public:
                          double pitch);
    void SetInitialMapStyle(const std::string& styleName);
    void SetMapStyle(const std::string& styleName);
+   void SetSmoothingEnabled(bool enabled);
 
    /**
     * Updates the coordinates associated with mouse movement from another map.
diff --git a/scwx-qt/source/scwx/qt/view/level2_product_view.cpp b/scwx-qt/source/scwx/qt/view/level2_product_view.cpp
index c483ab28..bcee898d 100644
--- a/scwx-qt/source/scwx/qt/view/level2_product_view.cpp
+++ b/scwx-qt/source/scwx/qt/view/level2_product_view.cpp
@@ -131,6 +131,8 @@ public:
    std::shared_ptr
       momentDataBlock0_;
 
+   bool prevSmoothingEnabled_ {false};
+
    std::vector    coordinates_ {};
    std::vector    vertices_ {};
    std::vector  dataMoments8_ {};
@@ -512,6 +514,7 @@ void Level2ProductView::ComputeSweep()
 
    std::shared_ptr radarProductManager =
       radar_product_manager();
+   const bool smoothingEnabled = smoothing_enabled();
 
    std::shared_ptr radarData;
    std::chrono::system_clock::time_point       requestedTime {selected_time()};
@@ -524,14 +527,14 @@ void Level2ProductView::ComputeSweep()
       Q_EMIT SweepNotComputed(types::NoUpdateReason::NotLoaded);
       return;
    }
-   if (radarData == p->elevationScan_)
+   if (radarData == p->elevationScan_ &&
+       smoothingEnabled == p->prevSmoothingEnabled_)
    {
       Q_EMIT SweepNotComputed(types::NoUpdateReason::NoChange);
       return;
    }
 
-   // TODO: Where does this come from?
-   bool smoothingEnabled = false;
+   p->prevSmoothingEnabled_ = smoothingEnabled;
 
    logger_->debug("Computing Sweep");
 
diff --git a/scwx-qt/source/scwx/qt/view/radar_product_view.cpp b/scwx-qt/source/scwx/qt/view/radar_product_view.cpp
index e2ca6c21..04534593 100644
--- a/scwx-qt/source/scwx/qt/view/radar_product_view.cpp
+++ b/scwx-qt/source/scwx/qt/view/radar_product_view.cpp
@@ -41,6 +41,7 @@ public:
    std::mutex sweepMutex_;
 
    std::chrono::system_clock::time_point selectedTime_;
+   bool                                  smoothingEnabled_ {false};
 
    std::shared_ptr radarProductManager_;
 };
@@ -87,6 +88,11 @@ std::chrono::system_clock::time_point RadarProductView::selected_time() const
    return p->selectedTime_;
 }
 
+bool RadarProductView::smoothing_enabled() const
+{
+   return p->smoothingEnabled_;
+}
+
 std::chrono::system_clock::time_point RadarProductView::sweep_time() const
 {
    return {};
@@ -105,6 +111,11 @@ void RadarProductView::set_radar_product_manager(
    ConnectRadarProductManager();
 }
 
+void RadarProductView::set_smoothing_enabled(bool smoothingEnabled)
+{
+   p->smoothingEnabled_ = smoothingEnabled;
+}
+
 void RadarProductView::Initialize()
 {
    ComputeSweep();
diff --git a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp
index c695a9e5..9bda8795 100644
--- a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp
+++ b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp
@@ -49,10 +49,12 @@ public:
 
    std::shared_ptr radar_product_manager() const;
    std::chrono::system_clock::time_point         selected_time() const;
+   bool                                          smoothing_enabled() const;
    std::mutex&                                   sweep_mutex();
 
    void set_radar_product_manager(
       std::shared_ptr radarProductManager);
+   void set_smoothing_enabled(bool smoothingEnabled);
 
    void Initialize();
    virtual void