2.対数スケールでマッピング(海面クロロフィル-a濃度)のマッピング

 ※M_MAPパッケージをダウンロードしてパスを通しておくこと。\MATLABのパス\toolbox\local\setup.mでaddpathしておく。
 
以下はスクリプトの抜粋

(注釈)
・変数dat2にSeaWiFS クロロフィル-aデータが格納されている。欠損値はここでは999にしていた。
・MATLABのカラーバーは、対数スケールに対応していないので、log10を使ってdat2を変換する。

cmax=log10(3); cmin=log10(0.01); % <------------------------------------- 最大・最小値の設定
dat3=double(dat2);dat3(dat3==999)=NaN;dat3=log10(dat3); <-------- 欠損値をNaNに変更
、データをlog10で変換
%a=cptcmap('GMT_wysiwyg', 'ncol',120); % 'mapping', 'direct'); %<--- GMTカラーパレットを使うならこれ
a=colormap(jet(100));
a(end,:)=[1 1 1];
%<------------------------------------------------------------NaNは白抜きにする


m_proj('mercator','lat',[-30 30],'lon',[110 290]); hold on;
m_pcolor(lon2,lat2,dat3); shading flat;
caxis([cmin cmax]);
colormap(a) ; h=colorbar('location','southoutside');
set(h,'xtick',log10([0.01 0.1 1 3]),'xticklabel',[0.01 0.1 1 3],'tickdir','out'); %
<---- ラベルとその位置を指定
set(get(h,'xlabel'),'String','Chl-a (mg/m^3)','fontsize',12);

m_coast('patch',[0.4 0.4 0.4]);
m_grid('xaxis','middle');
title([name(1:6) ' SeaWiFS Chl-a'],'fontsize',12,'fontweight','bold');