function [Image2d]=plot_image(data,Valid_Pixels,Val_Pix_Nuages,Val_Pix_Terre,CLim)
%[Image2d]=plot_image(data,Valid_Pixels,Val_Pix_Nuages,Val_Pix_Terre,CLim)
%Affiche la donnée data sur l'image de la mer Méditerranée avec le masque
%de Terre et de Nuage.
%Renvoie la donnée dans une matrice à 2 dimensions de taille (512,1024).
%Les données manquantes (nuages/terre) sont mises à la valeur
%nan;
%CLim représente l'échelle de couleur Clim=[val_min val_max]

%+
% module
% ======
%
% ``plot_image``
%
% DESCRIPTION
% ===========
%
% ``plot_image`` affiche la donnée data sur l'image de la mer Méditerranée
% avec le masque de Terre et de Nuage.
%
% ``plot_image`` renvoie la donnée dans une matrice à 2 dimensions de taille (512,1024).
%
% Les données manquantes (nuages/terre) sont mises à la valeur manquante ``NaN``;
% ``CLim`` représente l'échelle de couleur Clim=[val_min val_max]
%
% SEE ALSO
% ========
%
% tp_mlp_aerosols_profile.m_
%
% .. _tp_mlp_aerosols_profile.m : tp_mlp_aerosols_profile.m.html
%
% colorbartype1.m_
%
% .. _colorbartype1.m : colorbartype1.m.html
%
% TODO
% ====
%
% amélioration des colorbar
%
% EVOLUTIONS
% ==========
%
% $Id$
%
% - fplod 2009-09-09T14:49:56Z aedon.locean-ipsl.upmc.fr (Darwin)
%
%   * usage of global variable ``run_octave``
%
% - fplod 2009-09-08T10:56:02Z aedon.locean-ipsl.upmc.fr (Darwin)
%   Les figures sous octave 3.0.2 n'avaient pas la bonne orientation NORD-SUD
%   (la tête en bas) !
%
%   Sans doute à cause de l'implémentation différente de ``image`` entre
%   ``matlab`` et ``octave`` : l'un prend le 1er et dernier élément du tableau
%   pour définir les axes, l'autre prend le min et le max.
%
%   D'autre part ``octave`` ne tient pas compte du sens de progression de ``Y``.
%
%   Avec un appel intermédiaire à ``flipup`` (merci Francesco !) sous octave,
%   on retrouve le Nord là où il devait être.
%
% - fplod 2009-09-04T14:39:24Z aedon.locean-ipsl.upmc.fr (Darwin)
%
%   * add header
%   * appel à ``colorbar`` si ``octave`` car pour l'instant la barre de
%     couleur produite par ``colorbartype1`` est beaucoup trop grande.
%
%-

% 
global run_octave;
%
Image2d=nan*ones(512,1024);
Image2d(Valid_Pixels)=data;
Cdirect=nan*ones(512,1024);

%CLim=[0 0.05];

%cmap=[data;manquantes;land;cloud];
N=64;
cmap=[jet(N);[0.8 0.8 0.8]; [0.8 0.6 0.4] ; [1 1 1]];

data(data>=CLim(2))=CLim(2);
data(data<=CLim(1))=CLim(1);

X=floor((N-1)*(data-CLim(1))/(CLim(2)-CLim(1)))+1;

Cdirect(Valid_Pixels)=X;
Cdirect(Val_Pix_Nuages)=N+3;
Cdirect(Val_Pix_Terre)=N+2;
Cdirect(isnan(Cdirect))=N+1;
clf
if (run_octave == 0)
 cdirect_plot=Cdirect;
else
 cdirect_plot=flipud(Cdirect);
end
image(linspace(-9.5,41.5,1024),linspace(49,29,512),cdirect_plot);
clear cdirect_plot;
colormap(cmap);
axis image;
axis xy;
xlabel('longitude')
ylabel('latitude')
axis image

%Colorbar
if (run_octave == 0)
 pos=[0.2 0.1 0.6 0.04];
 lev=linspace(CLim(1),CLim(2),10);
 lev_pas=2;
 clip_lev=CLim;
 hpal=cmap;
 orien=0;
 [h0]=colorbartype1(pos,lev,lev_pas,clip_lev,hpal,orien);
else
 colorbar('South');
end;
