Alternativas a scipy.interpolate.griddata que no cuelgan en puntos alineados

Tengo un conjunto de datos de puntos que estoy tratando de interpolar en una cuadrícula. Estos puntos están alineados en forma de cuadrícula con algunos puntos faltantes, ver a continuación: introduzca la descripción de la imagen aquí

Para complicarlo, es posible que otros conjuntos de puntos de entrada no se alineen en una cuadrícula, por lo que estoy tratando de usar scipy.interpolate.griddata para interpolar estos valores en una cuadrícula regular. Sin embargo, a veces mi cuadrícula subyacente se alinea perfectamente con la frecuencia de muestreo del conjunto de datos de puntos de entrada y los datos de griddata . De acuerdo con esta pregunta, scipy.interpolate.griddata funciona mal si la muestra ocurre en 3 puntos que están perfectamente alineados, lo que a veces me sucede.

¿Existe una alternativa de alto rendimiento para la interpolación de datos de puntos en una cuadrícula regular en Python?

Mi solución ha sido alterar estocásticamente las coordenadas x e y de cada punto de entrada por un factor aleatorio entre 1e-6 * grid_cell_size . Elijo 1e-6 como una regla de oro de varios órdenes de magnitud mayor que la diferencia delta mínima en un flotador de 32 bits, pero lo suficientemente pequeño como para que el error introducido aún esté sombreado por el error introducido por el esquema de interpolación.

Todavía estoy abierto a otras ideas, pero de esta manera puedo usar las funciones de interpolación de acciones provistas por scipy introduciendo un error numérico muy pequeño.