Hello ,
J'essaie en vain de trouver comment aller chercher les points équidistants à un point quelconque sur une sphère (un cercle sur la sphère donc).
J'ai une carte sous forme de matrice, et l'idée est de créer une fonction qui prend comme paramètre un point (en coordonnées shpériques), et qui retourne la valeur du pixel correspondant par rapport à la moyenne des valeurs des pixels situés à une certaine distance (ou angle c'est pareil).
Une solution "bourrin" consisterait à aller piocher parmi tous les points de la matrice ceux qui respectent le critère, mais c'est pas très élégant, et pas très rentable vu la taille de la map... (il faudrait la parcourir mille fois)
Merci d'avance !
Voilà ce que j'ai pour le moment :
Code:def compare(map,theta,phi): # Entrée : map = carte sous forme de matrice / theta, phi = coordonnées d'un point sur la carte # Sortie : dT = différence de température entre ce point et son entourage nb_Iterations=1000 # Conversion coordonnées->pixel NSIDE=hp.get_nside(map) pixel=hp.ang2pix(NSIDE,theta,phi) # Lecture de la température du pixel Tpix=map(pixel) # Lecture de la température et moyenne sur un cercle autour du point vecteur=hp.pix2vec(NSIDE,pixel) X=vecteur(1) Y=vecteur(2) Z=vecteur(3) Tring=0 for i in range(nb_Iterations) : # Comment chercher les points à une distance "a" du pixel? pixRing=hp.ang2pix(NSIDE,thetaRing,phiRing) Tring+=map(pixRing) Tring=Tring/nb_Iterations # Comparaison dT=abs(Tpix-Tring) return dT
-----