Bonjour à tous !
J'ai un petit soucis avec deux codes quasi identique qui ne donnent pas la même chose...
Je souhaite utiliser surfm pour représenter mes données en projection Mercator dans mes matrices j'ai beaucoup de NaN car seules quelques données m'intéressent. J'aimerais que les NaN soient transparents, ça me le fait pour un des programmes mais pas pour l'autre...
Cas n°1 : NaN->transparent :
résultat à gauche sur l'imagette
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 ... B=Temp; B(:)=NaN; ind=find(Temp>0); z=size(ind); for i=1:z(1) k=1; while Temp(ind(i))<temp(k) Tmax(i)=temp(k); Amin(i)=alt(k); k=k+1; end Tmin(i)=temp(k); Amax(i)=alt(k); a(i)=(Amin(i)-Amax(i))/(Tmin(i)-Tmax(i)); b(i)=Amin(i)-(a(i)*Tmin(i)); Alt(i)=a(i)*Temp(ind(i))+b(i); B(ind(i))=Alt(i); end load coastline_Etna.mat load lat_lon_Etna.mat scrsz=get(0,'ScreenSize'); fig=figure('Position',[100 (scrsz(4)/2) (scrsz(3)/2) (scrsz(4)/2)]); axesm('MapProjection','mercator','Grid','on',... 'MapLatLimit',[36 39], 'MapLonLimit', [13 17],... 'PLineLocation',(36:1:39),'MLineLocation',(13:1:17),... 'MeridianLabel', 'on','ParallelLabel', 'on',... 'FontSize',12,'FontWeight','Bold'); set(gca,'Visible','off') surfm(LAT,LON,B) colorbar('FontSize',12,'FontWeight','Bold'); hold on plotm(lat,lon,'Color','Black','LineWidth',1) saveas(fig,'D:\Etna\hauteur.png','png')
Cas n°2 : NaN->bleu marine :
resultat à droite sur l'imagette...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 ... B=Temp; B(:)=NaN; ind=find(Temp>0); z=size(ind); for i=1:z(1) k=1; while Temp(ind(i))<temp(k) Tmax(i)=temp(k); Amin(i)=alt(k); k=k+1; end Tmin(i)=temp(k); Amax(i)=alt(k); a(i)=(Amin(i)-Amax(i))/(Tmin(i)-Tmax(i)); b(i)=Amin(i)-(a(i)*Tmin(i)); Alt(i)=a(i)*Temp(ind(i))+b(i); B(ind(i))=Alt(i); end load pix2latlon.mat LAT=latitude(3248:3598,1500:2400); LON=longitude(3248:3598,1500:2400); load coastline.mat scrsz=get(0,'ScreenSize'); fig=figure('Position',[100 (scrsz(4)/2) (scrsz(3)/2) (scrsz(4)/2)]); axesm('MapProjection','mercator','Grid','on',... 'MapLatLimit',[50 70], 'MapLonLimit', [-30 0],... 'PLineLocation',(50:5:70),'MLineLocation',(-30:5:0),... 'MeridianLabel', 'on','ParallelLabel', 'on',... 'FontSize',12,'FontWeight','Bold'); set(gca,'Visible','off') surfm(LAT,LON,B) colorbar('FontSize',12,'FontWeight','Bold'); hold on plotm(lat,lon,'Color','Black','LineWidth',1) saveas(fig,'D:\Eyjaf\hauteur_Eyjaf.png','png')
Comment faire pour avoir la même transparence des NaN dans les deux cas ?
J'ai essayé :
Mais ça efface toute la figure :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part surfm(LAT,LON,B,'alphadata',~isnan(B))
Partager