如何在matlab中存储地理数据并输出每个bin中包含的数据点

时间:2014-04-09 12:07:51

标签: matlab bins

我正在使用Matlab处理地震数据,其中每一个都假设对应于特定的地理点(已知纬度,长度)。其中一个目标是将地球表面中的点分组,这些点由特定半径的区域(例如r = 10度)包围。箱子是否重叠并不重要。 我使用了histr() Matlab内在函数,但是它输出了结果箱中(lat,long)的中心坐标和bin中包含的数据点的数量。但是,我还想标记数据点,并能够在后续处理中使用这些标记的数据点。 我用过的:

lt1=load('midlats.dat');
lg1=load('midlons.dat');
len_lt=length(lt1);
len_lg=length(lg1);
nb=1;
[clats,clons,num,wnum] = histr(lt1,lg1,nb);

其中nb定义了每个角度度数所需的箱数。

这是否接近我的目标或我完全错过了图片??? 有人遇到过类似的东西吗? 任何帮助/评论将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是一个想法 - 您需要定义bin边的向量(两者相同或不同),请参阅histc的帮助:

[nlt, i_lt] = histc(lt1,b_vec1);
[nlg, i_lg] = histc(lg1,b_vec2);

现在,作弊 - 使用sub2ind转换i_lti_lg,将您的数据所在的纬度和经度区间的索引转换为单个索引。

sz = [length(i_lt),length(i_lg)];
ind = sub2ind(sz,i_lt,i_lg);

具有相同ind的任何点都在相同的lat + lon箱中。然后,您可以通过使用ind建立索引来选择它们,例如lg1(ind==1)等等。