Bonjour,
Je ne connais pas trop le python mais je reprend un bout de code existant et j'essaye d'interpoler des résultats.
j'ai un calcul 2D de température, où je calcule la température au centre des mailles. J'ai donc des tableaux avec les coordonnées des points (X,Y) et la température T. A partir de ces données, j'aimerai interpoler une représentation 2D de la température.
représentation en 'maillage' de mes tableau x,Y,T, avec en noir le contour de la zone à représenter.
En première étape, j'ai essayé d'utilisé interpolate.bisplev pour densifier mon maillage. Mais les résultats que j'obtiens ne sont absolument pas représentatif. C'est pas mal sur le début des points (-19 °C voir résultats plus bas), mais sur les derniers points l'erreur est de plus de 85 °C.
Voilà mon code (ici je ne densifie même pas le maillage, je regarde juste si j'arrive à retrouver des résultats cohérents pour le même maillage)
résultats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 tck = interpolate.bisplrep(X,Y,T,s=0) for i in range(len(X)): # avec cette boucle je re-parcours mes tableau x,Y, calcul la valeur interpolé de T, et je la compare à l'ancienne valeur for j in range (len(Y)): T_bal=interpolate.bisplev(X[i],Y[j],tck)#.T[0] new_T=hstack([new_T,T_bal]) print "x,y,T,oldT",X[i],tempY2[j],new_T[i],T[i]
Merci de votre aide,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 i,j 0 0 newx,y,T,oldT 44.34375 342.0 -19.9572004003 -19.8283057274 i,j 0 1 newx,y,T,oldT 44.34375 350.0 -19.9572004003 -19.8283057274 i,j 0 2 newx,y,T,oldT 44.34375 360.0 -19.9572004003 -19.8283057274 i,j 0 3 [...] i,j 21 17 newx,y,T,oldT 215.75625 360.0 -2.02310132577 90.0887520512 i,j 21 18 newx,y,T,oldT 215.75625 328.246813825 -2.02310132577 90.0887520512
Romain
Partager