Render Cell Scalars from vtkXMLPolyData?

Still no color … edited script below.

#!/usr/bin/env python3
import vtkmodules.vtkRenderingOpenGL2

from glob import glob
from vtkmodules.vtkCommonCore import vtkLookupTable
from vtkmodules.vtkIOImage import vtkPNGWriter
from vtkmodules.vtkRenderingCore import (
    vtkActor,
    vtkColorTransferFunction,
    vtkPolyDataMapper,
    vtkRenderWindow,
    vtkRenderWindowInteractor,
    vtkRenderer)
from vtkmodules.vtkIOXML import vtkXMLPolyDataReader

MAX_TEMP = 400
TABLE_SIZE = 256

def debug_view(fname):
    import sys
    from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera

    r = vtkXMLPolyDataReader()
    r.SetFileName(fname)
    r.Update()

    ctf = vtkColorTransferFunction()
    ctf.SetColorSpaceToRGB()
    ctf.AddRGBPoint(0, 1.0, 0.0, 0.0)
    ctf.AddRGBPoint(MAX_TEMP, 0.0, 1.0, 1.0)

    lut = vtkLookupTable()
    lut.SetNumberOfTableValues(TABLE_SIZE)
    lut.SetTableRange(0, MAX_TEMP)
    for i in range(TABLE_SIZE):
        rgb = ctf.GetColor(i/TABLE_SIZE)
        lut.SetTableValue(i, *rgb)
    lut.SetRampToLinear()
    lut.Build()

    m = vtkPolyDataMapper()
    m.SetInputConnection(r.GetOutputPort())
    m.SetLookupTable(lut)
    m.SetScalarModeToUseCellData()
    m.SetColorModeToMapScalars()
    m.SelectColorArray("Temperature")
    m.SetScalarRange(0, MAX_TEMP)

    a = vtkActor()
    a.SetMapper(m)
    a.RotateX(-20)
    a.RotateY(50)

    ren = vtkRenderer()
    ren.AddActor(a)
    renWin = vtkRenderWindow()
    renWin.AddRenderer(ren)

    iren = vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)
    style = vtkInteractorStyleTrackballCamera()
    iren.SetInteractorStyle(style)

    renWin.SetSize(300, 300)
    renWin.SetWindowName("Tetra")
    iren.Initialize()
    ren.ResetCamera()
    renWin.Render()
    iren.Start()

if __name__ == "__main__":
    debug_view("hot_tetra.vtp")