Interpolación rápida de datos 3D muestreados regularmente con diferentes intervalos en x, y y z
Tengo algunos datos de imágenes volumétricas que consisten en valores muestreados en una cuadrícula regular en x, y, z, pero con una forma de voxel no cúbico (el espacio entre los puntos adyacentes en z es mayor que en x, y). Finalmente, me gustaría poder interpolar los valores en un plano 2D arbitrario que pasa a través del volumen, como esto:
Soy consciente descipy.ndimage.map_coordinates
, pero en mi caso, usarlo es menos sencillo porque asume implícitamente que el espaciado de los elementos en la matriz de entrada es igual en todas las dimensiones. Primero podría volver a muestrear mi matriz de entrada de acuerdo con la dimensión de voxel más pequeña (para que todos mis voxels sean entonces cubos), luego usarmap_coordinates
para interpolar sobre mi avión, pero no parece una buena idea interpolar mis datos dos veces.
También soy consciente de quescipy
tiene varios interpoladores para datos de ND espaciados irregularmente (LinearNDInterpolator
, NearestNDInterpolator
etc.), pero estos son muy lentos y requieren mucha memoria para mis propósitos. ¿Cuál es la mejor manera de interpolar mis datos, dado que sé que los valoresson regularmente espaciado dentro de cada dimensión?