我想在Matlab中使用ncread
子集.nc文件。我正在尋找劃分經度-74.6875至-10.3125(W)和緯度58.2500至84.7500(N)的數據來創建格陵蘭周圍的邊界框。我想要數據的每一天的子集。我嘗試下面的代碼,它適用於經度和緯度的,我需要的指數,但產生翻轉(倒置)格陵蘭的版本(見附表1):如何在Matlab中糾正ncread經緯度子集?
data = ncread('dust_ddep.nc','dust_ddep',[457 297 1], [104 54 Inf], [1 1 1]); %576x360x366 lon, lat, time
當我嘗試繪製數據,我需要翻轉它,以確保冰島灰塵位於地理位置正確的地方(見附件)。緯度是相反的(需要從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');
我在做什麼錯?這是我的開始和計數的順序嗎?或者,它是在我繪製圖像c的方式嗎?我也嘗試使用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]
我發現用imagesc的問題是我需要使用下面的代碼翻轉y軸:'set(gca,'ydir','normal');'而且,pcolor函數現在可以工作!看似簡單的東西花了很長時間才弄清楚。非常感謝! – user3052817