How to colorize surface by slope?

Thank you @Paulo_Carvalho - sorry , I really am a novice and I really appreciate your advice. How do I know what data is available from the gradientFilter, i.e. how many scalar fields, and how do I know to choose gradientFilter’s GetPointData() versus GetCellData()? When I’ve made that choice then from other examples it seems the pattern is this:

vtkSmartPointer<vtkGradientFilter> gradientFilter =
     vtkSmartPointer<vtkGradientFilter>::New();
 
gradientFilter->SetInputConnection(elevationFilter->GetOutputPort());
 
// Make sure mapper uses correct data
gradientFilter->GetOutput()->GetPointData()->SetActiveScalars("gradientScalarField");
  
[ . . .]
 
vtkSmartPointer<vtkPolyDataMapper> mapper =
      vtkSmartPointer<vtkPolyDataMapper>::New();
 
mapper->SetInputConnection(gradientFilter->GetOutputPort());