[英]How to bin geographical data and output the data points included in each bin in matlab
我正在使用Matlab處理地震數據,其中每個假設都對應於一個特定的地理點(已知緯度,經度)。 目標之一是對地球表面中由特定半徑(例如r = 10度)的bin包圍的點進行分組。 垃圾箱是否重疊並不重要。 我已經使用了histr()
Matlab內在函數,但是這會以結果bin的(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定義每個角度度需要多少個倉位。
這是接近我目標的地方還是我完全錯過了圖片??? 有人遇到過類似的事情嗎? 任何幫助/評論將不勝感激。
這是一個想法-您將需要定義bin邊緣的向量(兩者相同或不同),請參見histc
的幫助:
[nlt, i_lt] = histc(lt1,b_vec1);
[nlg, i_lg] = histc(lg1,b_vec2);
現在,作弊-使用sub2ind
將數據所在的經度和緯度i_lg
索引i_lt
和i_lg
轉換為單個索引。
sz = [length(i_lt),length(i_lg)];
ind = sub2ind(sz,i_lt,i_lg);
具有相同ind
任何點都位於相同的緯度+緯度區間中。 然后可以通過索引ind
來選擇它們,例如lg1(ind==1)
,依此類推。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.