<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />有沒有人知道確定具有xy坐標位置的信號(我有60個感興趣的信號)在10次測量中重複多少次的最佳方法(在10次測量中出現多少次)。 我有一個> 20,000個已識別信號的列表(所有信號都有不同的xy位置),但我只想看看它們中有多少次~60個被重複(每個信號不能有相同的xy坐標,所以它們不重疊) 。 對於相同的信號,xy位置也可以變化很小,因此它們需要在xy位置具有一定的容差。 我在沒有找到任何相關內容的情況下搜索了討論區,但如果您知道其中一個,請指導我進行適當的討論。 謝謝!
etucker0 ,
讓我看看我是否得到了它。如果我理解正確有一個測量和一個位置,你想知道在一個位置(有一定距離)有多少重複測量(有一些公差)。例如,具有位置和風速測量的颶風樣本數據。如果你想知道每一行在一定距離(以KM為單位)內有多少次相似的風測量(以節點為單位),你可以使用下面的腳本。
最後,您將對錶中的每一行進行多次“匹配”測量。
或者,如果您有要與之比較的預選列表,則可以比較兩個表中的數據。
如果這是您正在尋找的,請告訴我。
清除全球 () ;
名稱默認為此處 ( 1 ) ;
//打開數據文件(點) - 這包括我們想要更新的觀察
sdots = 打開 ( “C:\ Program Files(x86)\ SAS \ JMPSW \ 11 \ Samples \ Data \ Hurricanes.jmp” ) ;
點 = 數據表 ( sdots ) << 子集 ( 樣本量 ( 2000 ) ) ; //為速度製作一張小桌子
關 ( sdots ,沒有保存 ) ;
//為風測量添加一些噪音
點 << 新欄目 ( “風” ,式 ( : 名稱 ( “風(結)” ) + 隨機正常 () ) ) ;
//引入一個計數列
點 << 新欄目 ( “重複” ) ;
//從表中提取經度和緯度值 - 以弧度為單位
X = ( 柱 ( 點 , “經度” ) << 的GetValues ) * 皮 () / 180 ;
ÿ = ( 柱 ( 點 , “緯度” ) << 的GetValues ) * 皮 () / 180 ;
//在KM中聲明計算功能
半正矢 = 功能 ( { long1 , LAT1 , long2 , LAT2 , [R = 6371 } ,
{ 默認本地 } ,
一個 = 罪 ( ( LAT1 - LAT2 ) / 2 ) ^ 2 + COS ( LAT1 ) * COS ( LAT2 ) * 罪 ( ( long1 - long2 ) / 2 ) ^ 2 ;
C = 2 * 曬黑 ( 一個 ^ 0.5 , ( 1 - 一個 ) ^ 0.5 ) ;
d = [R * C ;
) ;
//定義距離和風速的公差
距離 = 100 ; //在Km
區別 = 10 ; //在結中
等待 ( 0.01 ) ;
//沿著表的行運行函數
對於 ( 一世 = 1 ,一世 <= N行 ( 點 ) - 1 ,一世 ++,
ž = 0 ;
對於 ( 它 = 1 ,它 <= N行 ( 點 ) - 1 ,它 ++,
如果 (
半正矢 ( X [ 一世 ] , ÿ [ 一世 ] , X [ 它 ] , ÿ [ 它 ] ) < 距離 //條件的距離
& 阿布斯 ( : 風 [ 一世 ] - : 風 [ 它 ] ) < 區別
, //風測量差異的條件
ž ++; //計算比賽數
)
) ;
ž - ; //刪除一個與自身匹配的。
: 重複 [ 一世 ] = ž ; //更新表格
) ;
//映射結果
圖形生成器 (
顯示控制面板 ( 0 ) ,
變量 ( X ( : 經度 ) , ÿ ( : 緯度 ) ,尺寸 ( : 重複 ) ) ,
分子 ( 點 ( X , ÿ ,傳說 ( 1 ) ,抖動 ( 1 ) ) ) ,
SendToReport (
調度 ( {} , “圖形生成器” , FrameBox , { 背景地圖 ( 圖片 ( “簡單的地球” ) ) ,網格線順序 ( 2 ) ,參考線訂單 ( 3 )} )
)
)
嗨羅恩,
對不起,我應該更清楚了。 該模擬數據僅用於來自第一次測量的兩個信號。 因此,還有9個其他重複測量,對於這兩個信號,將略微偏移x和y值(並且肯定是不同的ID號)。 此外,Amplitude SD1和SD2也會有所不同。 希望有所幫助。
重複可能看起來像這樣:
ID | X | ÿ | 幅度SD1 | 幅度SD2 | | | | | | |
|---|
21775 | -22285.12 | -6664.55 | 2950 | 0 |
21799 | -17723.33 | 7946.01 | 0 | 5050 |
-Eric
etucker0
不太清楚。你能給出一個重複和非重複的例子嗎?是跨行還是列?
羅恩
嗨羅恩,
這是一些示例數據,兩行中的每一行都是兩個“信號”。 需要記住的一點是,ID實際上會針對每個重複測量結果進行更改(儀器會為每次測量重新編號所有信號,因此我無法使用ID在每次重複測量中選擇相同的信號)。 SD1和SD2是不同的測量通道,為每個信號提供數據。 相同信號的位置x和y可能會有所不同,如我原帖中所述。
ID | X | ÿ | 幅度SD1 | 幅度SD2 | | | | | | |
|---|
21770 | -22281.78 | -6669.19 | 3000 | 0 |
21792 | -17728.65 | 7949.11 | 0 | 5000 |
X,Y對是否四捨五入(比如說2位小數位),確定信號的“名稱”?如果是這樣,使用舍入值作為關聯數組的鍵可能是計算類似對的出現的方法。
counts = associative array();
計數<< SetDefaultValue(0);
count [char(round(pi(),2))||“,”|| char(round(e(),2))] + = 1;
顯示(計數);
counts = [“3.14,2.72”=> 1,=> 0];
嗨 etucker0 ,
如果你提供一些數據樣本(可以是假的),我想我可以幫助你。我自己正在處理類似的數據。但是,解決方案取決於表的構建方式。