J'essaie de sous-créer un fichier .nc dans Matlab en utilisant ncread
. Je cherche à sous-ensemble les données pour les longitudes -74.6875 à -10.3125 (W) et les latitudes 58.2500 à 84.7500 (N) pour créer une boîte englobante autour du Groenland. Je veux le sous-ensemble pour chaque jour de données. J'ai essayé le code suivant, qui travaille pour les indices de longitude et de latitude que j'ai besoin, mais produit une Flipped la version (à l'envers) du Groenland (voir ci-joint 1):Comment corriger le sous-ensemble ncread de la latitude et de la longitude dans Matlab?
data = ncread('dust_ddep.nc','dust_ddep',[457 297 1], [104 54 Inf], [1 1 1]); %576x360x366 lon, lat, time
Lorsque je tente de tracer les données , J'ai besoin de le retourner pour m'assurer que la poussière d'Islande est située au bon endroit géographiquement (voir ci-joint). La latitude est tracée inversement (doit être de 55 à 85 N, pas l'inverse).
Ensuite, je conspire en utilisant la fonction m_coast
pour produire la côte du Groenland (voir ci-joint, 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');
Qu'est-ce que je fais mal? Est-ce l'ordre de mon départ et compte? Ou, est-ce que c'est dans la façon dont je trace les imagesc? J'ai essayé aussi en utilisant pcolor
(pas m_pcolor), mais je reçois une erreur en disant que les dimensions sont fausses (mais elles ne le sont pas ...). J'ai utilisé ce code avec pcolor
: pcolor(long1_sub,lat,data1)
Et reçois l'erreur:
Error using pcolor (line 59)
Matrix dimensions must agree.
Les dimensions de ces variables sont:
Long1_sub is [104x1]
lat is [54x1]
data1 is [104x54]
J'ai trouvé que le problème avec imagesc était que j'avais besoin de retourner l'axe des ordonnées en utilisant le code suivant: 'set (gca,' ydir ',' normal ');' Et, la fonction pcolor fonctionne maintenant! Quelque chose d'apparemment simple a pris du temps à comprendre. Merci beaucoup! – user3052817