我有一个1分钟数据的数据文件,我正试图使用Split来输出一个小时顶部的值,即输出每个小时的温度。根据Loggernet手册;4[60]〃的情况下;在“;复制“;分割行,但没有得到任何结果。最好的方法是什么。
数据示例:
01,2008,153,0,-0.00690,-3.75441,0.00090,0.00016,0.00651,27.03,2.705,106.4,3.724,24.74,26.85,.......
提前感谢,
里克。
嗨,瑞克,
在Split中这有点棘手——您需要做几件事来保持文件随时间同步。
首先,如果您的文件尚未在“开始”上开始,您将希望指定“开始”条件;“小时之巅”;间隔(例如,如果它在12:13而不是12:00开始)
启动条件:::4[1]:
冒号使所有内容按时间同步,并表示4[1]是小时/分钟(第一个冒号=年份占位符,第二个冒号=儒略日占位符,然后是4[1],最后一个冒号=秒占位符)。
4[1]=当元素#4(小时/分钟)等于1时开始处理。
对于复制条件,您需要指定将从中读取的数组ID,并指示文件的间隔。
复制条件:1[01]和4[1]
1[01]指示拆分它应该从数组“”中读取数据;01〃处;。
4[1]表示原始文件的时间间隔为1分钟。(“和”连接这两个条件)。
最后,“选择”行应该包含您希望包含在报告中的所有元素,每“;X”表示;行(在您的情况下,每60行)。您需要对报告中输出的每个元素执行以下操作:
选择线:Smpl(1..15;60)
1..15=在报告中包括元素1到15
60=每60条记录取样一次
您还可以使用:
Smpl(1;60)、Smpl(2;60)和Smpl(3;60)等。
或者,如果您想从报告中省略一些元素:
Smpl(2;60),Smpl(3;60)、Smpl(5;60)和Smpl(9;60)等。
请注意,当涉及到“拆分”时,拆分是非常字面的;60〃;。它将计算60行,而不是每60分钟。“开始”条件中的冒号和“复制”条件中指定的“间隔”可确保,如果有丢失的记录,则不会偏离原始间隔(例如,如果在凌晨4点和5点之间有丢失记录,则最终输出为100、200、300、400、501、601、701…)。
我知道这一切都很神秘。拆分可能很难让你理解,我总是要测试它,以确保语法正确(我通常不会,所以我需要三四次尝试!)。我相信Split手册仍然有一些文字,上面写着“;分裂有助于实验";虽然我每次读到这篇文章都会感到尴尬,但这是真的:)这是一个非常强大的工具,但有时确实需要一些技巧才能得到你期望的输出。测试文件的一个好方法是一次做一个更改(设置“开始”条件,只输出所有值,如果它如您所期望的那样工作,则继续复制,查看您所做的更改对文件的影响,依此类推…)。
我希望这能有所帮助&祝你好运,
Dana公司