Ajustement de la surface polynomiale en Python 3D, en fonction de l'ordre
Je suis actuellement en train de travailler avec les données astronomiques parmi lesquels j'ai des images de la comète. Je voudrais enlever le fond de ciel dégradé dans ces images, le temps de capture (crépuscule). Le premier programme que j'ai développé pour le faire a pris l'utilisateur a sélectionné des points de Matplotlib "ginput" (x,y) tiré les données pour chaque coordonnée (z), puis quadriller les données dans un nouveau tableau avec SciPy "griddata."
Depuis l'arrière-plan est supposé ne varient que très peu, je voudrais un ajustement 3d faible polynôme à cet ensemble de (x,y,z) des points. Cependant, le "griddata" ne permet pas une entrée de commande:
griddata(points,values, (dimension_x,dimension_y), method='nearest/linear/cubic')
Toutes les idées sur une autre fonction qui peut être utilisée ou une méthode pour l'élaboration d'un lea-places ajustement qui va me permettre de contrôler l'ordre?
source d'informationauteur Sebastian De Pascuale
Vous devez vous connecter pour publier un commentaire.
Griddata utilise une définition des splines. Une 3ème commande spline n'est pas la même chose qu'un 3ème ordre polynomial (au lieu de cela, c'est une autre 3ème ordre polynôme à chaque point).
Si vous voulez juste pour s'adapter à une 2D, 3e ordre polynôme à vos données, puis faire quelque chose comme ce qui suit pour estimer le 16 coefficients à l'aide de tous de vos points de données.
La suite de la mise en œuvre de
polyfit2d
utilise le disponible numpy méthodesnumpy.polynomial.polynomial.polyvander2d
etnumpy.polynomial.polynomial.polyval2d