<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 ,
如果你提供一些数据样本(可以是假的),我想我可以帮助你。我自己正在处理类似的数据。但是,解决方案取决于表的构建方式。