programmable filter rectilinear to unstructured

I am trying to apply a filter to change altitude from a netcdf input file according to a 3d variable present in the file.
I am followed this example
applying this code

import numpy as np 

# Obtenez l'entrée (le jeu de données sur lequel le filtre est appliqué)
input = self.GetInput()


numPoints = input.GetNumberOfPoints()
 
# Créer un nouvel objet pour stocker les nouvelles coordonnées
newPoints = vtk.vtkPoints()

# Supposons que 'variable' est le nom de la variable à utiliser pour ajuster l'altitude
altitudeVariable = input.GetPointData().GetArray('altitude')

print(numPoints)

for i in range(numPoints):
    x, y, z = input.GetPoint(i)
    # Ajustez l'altitude basée sur la valeur de la variable
    newZ = altitudeVariable.GetValue(i)
    newPoints.InsertPoint(i, x, y, z)
    
print(newPoints)

# Mettez à jour les points dans l'objet de sortie
output = self.GetOutput()
output.ShallowCopy(input)
output.SetPoints(newPoints)

to get the code not crashing I set output as StructruredGrid (or Unstructured), but it looks like this is giving me an empty domain. I cannot plot points or extract contour from it.