2017-09-25 6 views
0

ncreadを使用してMatlabで.ncファイルをサブセット化しようとしています。私は、グリーンランドの周囲にバウンディングボックスを作成するために、経度-74.6875〜-10.3125(W)と緯度58.2500〜84.7500(N)のデータをサブセット化しようとしています。データの毎日のサブセットが必要です。私はデータをプロットするときMatlabでncreadの緯度と経度のサブセットを修正するにはどうすればよいですか?

data = ncread('dust_ddep.nc','dust_ddep',[457 297 1], [104 54 Inf], [1 1 1]); %576x360x366 lon, lat, time 

:私は必要経度と緯度の指標のために働く、次のコードを試みたが、グリーンランドの反転(逆さ)バージョンを(添付1参照)を生成しますアイスランドのほこりが地理的に正しい場所にあることを確認するために、それを裏返す必要があります(添付資料参照)。緯度は逆にプロットされます(55〜85 Nである必要があります。

その後、私はグリーンランドの海岸線を生成するためにm_coast機能を使用してプロット(添付資料参照、2):私が間違っているのは何

figure; 
data1 = data(:,:,160); %Grab one day of data 
imagesc(long1_sub,lat,data1) 
% m_pcolor(lon,lat,data(:,:,1)); %This comes up blank when I try to run m_pcolor 
shading flat; hold on; 
gland = m_coast('patch',[1 1 1],'edgecolor','k') 
% flipud(gland) %doesn't fix the upside down Greenland 
m_grid('box','fancy'); 

?それは私のスタートとカウントの順序ですか?それとも、私は画像をプロットするのですか?私もpcolor(m_pcolorではない)を使ってみましたが、寸法が間違っていると言うエラーが表示されますが、そうではありません。私はpcolorと、このコードを使用:pcolor(long1_sub,lat,data1)をとエラーが表示されます。

Error using pcolor (line 59) 
Matrix dimensions must agree. 

これらの変数の寸法は、次のとおりです。

Long1_sub is [104x1] 
lat is [54x1] 
data1 is [104x54] 

答えて

0

関数imagescの原点ではなく左下の左上隅で、どのあなたのy軸を「反転」します。だから、あなたが通常期待するようにy軸を反転させる必要があります。

imagescは非常に直観的ではありませんので、私はpcolorを使用することをおすすめします。同じ変数を使用するときのpcolorエラーの理由は、pcolorのマニュアルには、「XとYがベクトルの場合、XはCの列に対応し、Yは行に対応します。 DATA1は104x54ですので、それは経度/緯度と一致するように、私はこれが役に立てば幸い、54x104にそれを移調する

pcolor(long1_sub,lat,data1') % Notice the ' next to data1 

を望みます!

+0

imagescの問題は、次のコードを使用してy軸を反転する必要があることがわかりました。 'set(gca、' ydir '、' normal ');'そして、pcolor関数は今動作します!一見単純なことが分かるには長い時間がかかりました。どうもありがとうございます! – user3052817

関連する問題