2010-09-09 14 views
0

J'utilise meshm pour tracer les densités. Comment puis-je calculer le point central pour chacun des segments? Je veux associer les données en m avec les centres J'ai regardé le code source de meshm et je crois que la solution sera une version modifiée de meshm qui retourne la latitude et les longitudes du centre de chaque bin.Déterminer le centre des bacs lors de l'utilisation de meshm

meshm appelle la fonction meshgrat qui renvoie les points de latitude et de longitude du maillage qui seront tracés par surfacem. Le problème est que les matrices lat et lon n'ont pas la même taille que m. Je dois faire correspondre les points de latitude et de longitude avec les données de densité en m Je crois que je dois mettre à l'échelle les données basées sur GRATSIZE une variable en meshgrat.

NOTE: meshm fait partie de la boîte à outils de cartographie Matlab

NOTE NOTE: Ceci est une question de suivi Determine distance from coastline in Matlab

Répondre

0

Dans meshm il suffit de modifier les entrées meshgrat:

[lat,lon] = meshgrat(Z, R, gratsize); % original 
[lat, lon] = meshgrat(Z,R); % modification 

Par défaut, gratsize = [] qui meshgrat renverra la taille de graticule par défaut de 50 X 100. En ne passant gratsize, le réticule est réglé sur la La même taille que Z.

1

Vous pouvez obtenir les bords du maillage en utilisant MESHGRAT, qui est la fonction appelée par meshm quand il fait la grille pour binning.

%# create the mesh that is used by meshm 
[latgrat,longrat] = meshgrat(m,termaplegend); 
%# find the latitudes of the center points 
latPts = (latgrat(1:end-1,1:end-1) + latgrat(2:end,1:end-1))/2; 
%# find the longitudes of the center points 
lonPts = (longrat(1:end-1,1:end-1) + longrat(1:end-1,2:end))/2; 

Le centre du bac dans la 2e rangée, 5e col est [latPts(2,5),lonPts(2,5)].

+0

Dans l'exemple ci-dessus, latPts et lonPts sont <49 X 99> matrices doubles. Je veux faire correspondre les points centraux aux données en m – Elpezmuerto