be careful here: transform filter transforms vectors as well so one has to transform first without assiging the vector atrribute an assign after transform.
put this into dataset ? So we can immediately get magnitude? CreateMagnitude, CreateComponent(i) Also, we get color scaling by lut. 
  114     auto transgeometry=vtkSmartPointer<vtkTransformFilter>::New();
   115     transgeometry->SetInputConnection(
data_producer->GetOutputPort());
   119     auto vector = vtkSmartPointer<vtkAssignAttribute>::New();
   120     vector->Assign(
dataname.c_str(),vtkDataSetAttributes::VECTORS,vtkAssignAttribute::POINT_DATA);
   121     vector->SetInputConnection(transgeometry->GetOutputPort());
   125     if (
state.show_quiver)
   130         throw std::runtime_error(
"Please dont't forget to set quiver points/grid");
   132       auto transprobe=vtkSmartPointer<vtkTransformPolyDataFilter>::New();
   138       auto probeFilter = vtkSmartPointer<vtkProbeFilter>::New();
   139       probeFilter->SetComputeTolerance(
true);
   140       probeFilter->SetSourceConnection(vector->GetOutputPort());
   141       probeFilter->SetInputConnection(transprobe->GetOutputPort());
   142       probeFilter->PassPointArraysOn();
   145       auto glyph = vtkSmartPointer<vtkGlyph3D>::New();
   146       glyph->SetInputConnection(probeFilter->GetOutputPort());
   147       glyph->SetColorModeToColorByVector();
   148       glyph->SetScaleModeToScaleByVector();
   151       if (
state.spacedim==2)
   158         glyph->SetSourceConnection(
arrow3d->GetOutputPort());
   166         glyph->SetSourceConnection(
arrow3d->GetOutputPort());
   169       auto  mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
   170       mapper->SetInputConnection(glyph->GetOutputPort());
   172       mapper->UseLookupTableScalarRangeOn();
   176       vtkSmartPointer<vtkActor> quiver_actor = vtkSmartPointer<vtkActor>::New();
   177       quiver_actor->SetMapper(mapper);
   180       if (
state.show_quiver_colorbar)
   187     if (
state.show_stream)
   192       auto calc= vtkSmartPointer<vtkArrayCalculator>::New();
   193       calc->SetInputConnection(vector->GetOutputPort());
   194       calc->AddVectorArrayName(
dataname.c_str());
   207       calc->SetFunction(func.c_str());
   208       calc->SetResultArrayName((
dataname+
"magnitude").c_str());
   211       auto vecmag = vtkSmartPointer<vtkAssignAttribute>::New();
   212       vecmag->Assign((
dataname+
"magnitude").c_str(),vtkDataSetAttributes::SCALARS,vtkAssignAttribute::POINT_DATA);
   213       vecmag->SetInputConnection(calc->GetOutputPort());
   216       auto transseed=vtkSmartPointer<vtkTransformPolyDataFilter>::New();
   222       auto stream=vtkSmartPointer<vtkStreamTracer>::New();
   223       stream->SetInputConnection(vecmag->GetOutputPort());
   224       stream->SetSourceConnection(transseed->GetOutputPort());
   225       stream->SetIntegrationStepUnit(vtkStreamTracer::LENGTH_UNIT);
   226       stream->SetInterpolatorType(vtkStreamTracer::INTERPOLATOR_WITH_CELL_LOCATOR);
   227       stream->SetMaximumPropagation(
state.stream_maximum_propagation);
   228       stream->SetInitialIntegrationStep(
state.stream_initial_integration_step);
   229       stream->SetMaximumIntegrationStep(
state.stream_maximum_integration_step);
   230       stream->SetIntegrationDirectionToForward();
   231       stream->SetIntegratorTypeToRungeKutta4();
   232       stream->SetMaximumNumberOfSteps(
state.stream_maximum_number_of_steps);
   255       if (
state.spacedim==2)
   259         stream->SetComputeVorticity(
false);
   263         stream->SetComputeVorticity(
true);
   269       auto ribbon=vtkSmartPointer<vtkRibbonFilter>::New();
   270       ribbon->SetInputConnection(stream->GetOutputPort());
   271       ribbon->SetWidth(
state.stream_ribbonwidth);
   274       auto  mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
   275       mapper->SetInputConnection(ribbon->GetOutputPort());
   276       mapper->ScalarVisibilityOn();
   278       mapper->UseLookupTableScalarRangeOn();
   281       vtkSmartPointer<vtkActor> stream_actor = vtkSmartPointer<vtkActor>::New();
   282       stream_actor->SetMapper(mapper);
   288       if (
state.show_stream_colorbar)
 
vtkSmartPointer< vtkPolyData > probePolyData
 
vtkSmartPointer< vtkPolyData > seedPolyData
 
vtkSmartPointer< vtkScalarBarActor > BuildColorBar(vtkSmartPointer< vtkPolyDataMapper > mapper, int irank=0)