CN102446209A - 一种海量时域数据读取与图形显示的方法 - Google Patents
一种海量时域数据读取与图形显示的方法 Download PDFInfo
- Publication number
- CN102446209A CN102446209A CN2011102588052A CN201110258805A CN102446209A CN 102446209 A CN102446209 A CN 102446209A CN 2011102588052 A CN2011102588052 A CN 2011102588052A CN 201110258805 A CN201110258805 A CN 201110258805A CN 102446209 A CN102446209 A CN 102446209A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- segment
- reading
- unique point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开一种海量时域数据读取与图形显示的方法,属于数据处理领域,通过以下步骤来实现:1)根据多核中央处理器的二级缓存大小作为分段标准对待读取的数据进行分段;2)多核中央处理器中的每个核并行读取各段数据;3)对读取后的数据进行特征点显示分段,并选取各特征点显示段内的特征点;4)判断2)中数据是否被全部读取,当全部读取后选取后的特征点连接并在显示器中显示;本发明的优点在于:大大提高读取海量数据的效率,在保证图形显示精度的情况下,大大降低内存消耗,保证了即使在个人计算机上,也能非常方便的随时查看海量时域数据,大大方便了工作研究者。
Description
技术领域
本发明属于数据处理领域,具体涉及一种海量时域数据读取与图形显示的方法。
背景技术
随着中国启动大飞机项目研制的发展,大飞机的飞行测试是必不可少的,例如大飞机在飞行测试过程中,某部位的加速度或应变时域值等,并且经常需要长时间的数据采集。测试完毕后,数据已经以文本形式记录下来,但如何查看记录下来的海量时域数据成为了一个难题。因为数据量非常巨大,即使是工作站电脑在读取海量时域文本数据和显示时域数据时,经常会报错,提示内存不足。一方面,读取海量文本数据需要很多内存和很长时间;另一方面,常规的显示数据的方法也需要较多的内存。这就大大限制的研究工作者的研究,要求其必须在配置非常高的工作站上才能进行。
常规的数据读取与显示,首先将记录下的文本数据以字符串格式读入内存,然后对读入内存中字符串进行字符串格式化,格式化为数值类型,最后以曲线的形式显示出来。
为了对比常规与本发明技术的数据读取与显示时消耗的内存,测试采用可视化编程语言LabVIEW作为验证平台。之所以采用LabVIEW作为测试平台,主要是本发明方法为了提高读取与显示效率,采用的是并行技术。LabVIEW作为自身天然就是多线程并行语言,较易实现并行技术。测试读取50000个数据点,按照采样率5000来计算,读取的时域数据的长度为10秒,文本大小为6M的数据。包括最终文本数据读取、数据转换和图形显示,这种常规的数据读取与显示方法消耗内存约为20M左右。按照32位系统能支持的最大内存4G来计算,理论上至多只能读取显示2000秒,即约为30分钟数据。考虑到系统本身和其它应用程序,实际能读取显示的数据长度还会更短。而实际飞行测试基本都在2个小时以上。如何克服海量时域数据的读取与显示,成为了一个亟待解决的问题。
发明内容
本发明的为了解决上述问题,本发明提出一种海量时域数据读取与图形显示的方法,采用了并行读取与挑选特征点显示的技术,使得读取与显示海量时域数据时占用的内存非常小,同时使得读取与显示数据的效率很高,使得即使在非工作站计算机上,研究工作者就能进行海量时域数据的读取与显示,大大方便研究工作者在任何地点,只需要普通计算机即可快速查看海量时域数据,提高工作效率。
本发明利用多核中央处理器,实现一种海量时域数据读取与图形显示的方法,由以下步骤来实现:
步骤1:对待读取的数据(时域数据)进行分段;
以多核中央处理器的二级缓存大小aMb作为分段标准,则每段带读取的数据大小为aMb;分段后,若带读取的数据最后一段不满aMb,则将最后一段带读取数据单独作为一段。
步骤2:并行读取数据;
根据多核中央处理器的核数i,使多核中央处理器中每一个核分别顺序读取步骤1中分段后的数据中第i段数据,并转换为数值类型数据,随后进入步骤3;
步骤3:对步骤2中读取的数据进行特征点显示分段,并选取各特征点显示段内的特征点;
通过E/m得到对步骤2中所读取的数据进行特征点显示分段的段数,当E/m不为整数时,则向上取整;E为全部数据个数,m为每个特征点显示段内的数据个数,m=E/(n/2);n为最终在显示器上可显示的特征点数量;在每个特征点显示段内的数据中选取一个最大值与一个最小值,通过一个最大值与一个最小值来代替显示每个特征点显示段中的全部数据。
步骤4:判断步骤2中是否对读取全部数据段;
若步骤1中所分的数据段在步骤2中全部读取,则直接进入步骤5,若步骤2中存在未读取的数据段,则返回步骤2,对下i个数据段进行读取,随后进入步骤3,如此循环,直至步骤2中的所有数据段全部读取,进入步骤5;
步骤5:显示所有特征点;
将步骤3中个特征点显示段中选取的最大值与最小值顺序进行连接,并在显示器上显示。
本发明的优点在于:
1、本发明方法在读取数据前,先对待读取数据进行分段,从而可以利用中央处理器多核的并行读取技术,大大提高读取海量数据的效率;
2、本发明方法在显示海量时域数据时,采用挑选特征点技术,在保证图形显示精度的情况下,大大降低内存消耗;
3、本发明方法在分段读取数据时,保证每一个分段数据占用的内存大小接近中央处理器二级缓存大小,故占用内存非常少,远远低于计算机的最大内存,由此保证了即使在个人计算机上,也能非常方便的随时查看海量时域数据,大大方便了工作研究者。
附图说明
图1是本发明方法流程图;
图2是真实曲线在显示器下正常显示图;
图3是曲线通过不同像素个数显示时的放大图;
图4是以常规方法读取测试时,读取3000000个数据后,常规显示下的图形;
图5是以本发明方法读取测试时,读取3000000个数据后,常规显示下的图形;
图6是以本发明方法读取测试时,读取10000000个数据后,常规显示下的图形。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明利用多核中央处理器,实现一种海量时域数据读取与图形显示的方法,由以下步骤来实现:
步骤1:对待读取的数据(时域数据)进行分段;
以多核中央处理器的二级缓存大小aMb作为分段标准,则每段带读取的数据大小为aMb。分段后,若带读取的数据最后一段不满aMb,则将最后一段带读取数据单独作为一段。如:带读取数据大小为10Mb,中央处理器的二级缓存为4Mb,则将数据的第0~4Mb为第一段,第4~8Mb为第二段,第8~10Mb为第三段。通过在读取海量数据前,对待读取的数据进行分段,保证每一段中数据的大小四舍五入后等于中央处理器的二级缓存大小,由此保证中央处理器在读取数据时不会出现占用内存过大的问题,同时也可以大大提高读取效率。
步骤2:并行读取数据;
根据多核中央处理器的核数i,使多核中央处理器中每一个核分别顺序读取步骤1中分段后的数据中第i段数据,即多核中央处理器中1~i个核分别对应读取第1~i段的数据,随后进入步骤3;由于各段中的数据是以文本格式保存在硬盘上,因此多核中央处理器中每一个核需将所读取每一段文本数据先读入内存中,然后格式化文本数据,将每一段文本数据转换为数值类型数据。
步骤3:对步骤2中读取的数据进行特征点显示分段,并选取各特征点显示段内的特征点;
通过E/m得到对步骤2中所读取的数据进行特征点显示分段的段数;E为全部数据个数,m为每个特征点显示段内的数据个数,m=E/(n/2);n为最终在显示器上可显示的特征点数量。当E/m不为整数时,则向上取整,由此保证所有数据的完整性(如果采用向下取整,则会舍去一段数据,若在这舍去的这段数据中有个特别大的值,就会造成数据的细节丢失。如:这次数据就是观察振动的加速度值是否超过安全幅值,若舍去的那段数据中就存在一个超过安全幅值的数据,就会造成用户以为整段数据是安全的。)在每个特征点显示段内的数据中选取一个最大值与一个最小值,通过一个最大值与一个最小是来代替显示每个特征点显示段中的全部数据。如:全部数据为1000000个,在显示器上可显示的特征点数量为5000个,则每个特征点显示段内包含的数据个数为1000000/(5000/2)=400个,需要1000000/400=2500个特征点显示段,选取每个特征点显示段内400个数据中最大值和最小值来代替显示整段400个数据。步骤3:判断全部分段数据是否完全读取;
所述显示器上可显示的特征点数量n通常是由显示器的分辨率得来的,以一般的笔记本显示器为例(以笔记本显示器为例是因为此发明的目标是使得处理海量数据可以在个人计算机上进行,摆脱工作站计算机),宽度方向的分辨率为1280像素。意味着沿着宽度方向,只有1280个显示像素,即最多只能显示1280个特征点。所以按照理论来说,无论原始的完整数据有多少,在时间轴方向(一般显示器宽度方向作为时间轴)只需1280个特征点即可,即使有再多的数据点也无法显示。但是考虑到还需要显示幅值(一般显示器高度方向作为幅值),因此当取4倍或4倍以上的显示像素时,显示效果更为饱和。一般直接取整,故显示特征点数取1280×4≈5000个。
步骤4:判断步骤2中是否对读取全部数据段;
若步骤1中所分的数据段在步骤2中全部读取,则直接进入步骤5,若步骤2中存在未读取的数据段,则返回步骤2,对下i个数据段进行读取,随后进入步骤3,如此循环,直至步骤2中的所有数据段全部读取,进入步骤5。如:第一次多核中央处理器中i个核读取第1~i个数据段,进入步骤4后,若此时还有的数据段未被读取,则多核中央处理器中i个核分别读取第(i+1)~(i+i)个数据段,进入步骤3。
步骤5:显示所有特征点;
将步骤3中个特征点显示段中选取的最大值与最小值顺序进行连接,并在显示器上显示,完成所有特征点的显示。
通过上述方法,只显示较少的特征点,达到的显示效果同常规的显示效果相比,基本没有差别,但是在占用内存方面,本发明方法较常规的显示方法节省很多内存。
本发明方法采取选择各特征点显示段中最大值与最小值来显示数据,这同显示器显示有关。图形在显示器上显示时,初步看来是连续的图形,实际上,是通过一个个离散的像素点组合起来显示的,如图2所示,将曲线放大观察,都是表示两条曲线,左边曲线的像素较多,右边曲线的像素较少,但是用户在观察显示器上显示的图形时,会发现两者的显示效果相差非常小,如图3所示。因此,有时在显示图形,并不需要很多个像素点来表示曲线。相反,太多的数据全部显示反而会消耗很多内存,显示精度方面并没有提高。由此本发明对海量数据采取并行读取的同时,还采用挑选特征点显示方法来显示,加快显示效率与速度,且在精
度方面并没有很大的损失,但在内存消耗方面,比常规显示方法节省很多内存。
下面通过对一段具体的海量时域数据读取,同时通过挑选特征点技术显示,最终显示待读取的数据,对本发明的作进一步地描述。
实施例:
以某次测试实验的时域加速度信号为例,信号大小549MB,采样率5000,数据前十行如表1所示:
表1测试数据前十行
第一行 | -2.966E-03 |
第二行 | 0.000E+00 |
第三行 | -5.932E-03 |
第四行 | 2.373E-02 |
第五行 | -2.373E-02 |
第六行 | -8.898E-03 |
第七行 | 3.262E-02 |
第八行 | -3.856E-02 |
第九行 | -4.449E-02 |
第十行 | 1.186E-02 |
第十一行 | (……省略) |
本实施例中采用双核中央处理器,中央处理器的二级缓存为2MB。分别采用常规方法和本发明方法读取其中的3000000个数据来测试消耗内存和时间,其中最终显示点数为5000点。
步骤1:对待读取的3000000个数据进行分段;
每个数据每行数据自身占有10个字节,另外加上回车换行符\r\n,每行数据总共占12个字节,则待读取数据大小为3000000×12/(10242)=34.33Mb。由于中央处理器二级缓存为2Mb,将以上的数据分为18段。前17段数据大小均为2Mb,最后一段数据大小为0.33Mb。
每一段的数据内包含2×10242/12≈174762.7行数据,通过四舍五入后近似为174762行数据。
步骤2:并行读取数据;
由于测试的计算机中央处理器为双核,故在同一时刻,两个核分别负责两段数据的读取,即每个核读取2Mb的文本数据读取(174762行文本数据),读取后两个核分别将各自所读取的数据格式化为数值型数据。
步骤3:根据显示器可显示点数为5000点,待读取数据为3000000个,则每一个特征点显示分段中的数据量为3000000/(5000/2)=1200个,将全部数据分为2500个特征点显示段,并在每个特征显示分段中选择出最大值和最小值作为特征点。至此,双核中央处理器完成对两段数据的读取与特征点选择。
步骤4:由于在步骤1中,将全部数据分为18段,而步骤2中双核中央处理器仅读取了2段数据,因此还有16段数据尚未读取。由此,返回步骤2,双核中央处理器继续对下两段数据进行步骤2、步骤3,如此循环,直到18段数据全部读取并选择出特征点。
步骤:5:将步骤3中所选出的所有特征点按顺序连接在一起,进行显示,由此实现所有特征点的显示。
根据本发明方法与常规方法在读取数据时所消耗内存与时间的对比,如表3所示:
表2本发明方法与常规方法在读取数据时消耗内存与时间对比
根据本发明方法与常规方法在读取数据时读取数据后的图形显示的对比,如图4,图5所示,可看出,采用本发明方法在数据显示精度方面损失非常小,与常规显示无差别。
进一步,采用常规方法读取10000000个数据测试,常规方法直接出现报错,提示内存不足。而通过本发明方法读取10000000个数据时,本发明方法与常规方法所消耗内存与时间对比,如表3所示:
表3本发明方法与常规方法所消耗内存与时间对比
采用本发明方法读取数据后的图形显示,如图6所示。
Claims (1)
1.一种海量时域数据读取与图形显示的方法,由以下步骤来实现:
步骤1:对待读取的数据进行分段;
以多核中央处理器的二级缓存大小aMb作为分段标准,则每段带读取的数据大小为aMb;分段后,若带读取的数据最后一段不满aMb,则将最后一段带读取数据单独作为一段。
步骤2:并行读取数据;
根据多核中央处理器的核数i,使多核中央处理器中每一个核分别顺序读取步骤1中分段后的数据中第i段数据,并转换为数值类型数据,随后进入步骤3;
步骤3:对步骤2中读取的数据进行特征点显示分段,并选取各特征点显示段内的特征点;
通过E/m得到对步骤2中所读取的数据进行特征点显示分段的段数,E为全部数据个数,m为每个特征点显示段内的数据个数,m=E/(n/2);n为最终在显示器上可显示的特征点数量;当E/m不为整数时,则向上取整;在每个特征点显示段内的数据中选取一个最大值与一个最小值,通过一个最大值与一个最小值来代替显示每个特征点显示段中的全部数据。
步骤4:判断步骤2中是否对读取全部数据段;
若步骤1中所分的数据段在步骤2中全部读取,则直接进入步骤5,若步骤2中存在未读取的数据段,则返回步骤2,对下i个数据段进行读取,随后进入步骤3,如此循环,直至步骤2中的所有数据段全部读取,进入步骤5;
步骤5:显示所有特征点;
将步骤3中个特征点显示段中选取的最大值与最小值顺序进行连接,并在显示器上显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110258805 CN102446209B (zh) | 2011-10-18 | 2011-10-18 | 一种海量时域数据读取与图形显示的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110258805 CN102446209B (zh) | 2011-10-18 | 2011-10-18 | 一种海量时域数据读取与图形显示的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102446209A true CN102446209A (zh) | 2012-05-09 |
CN102446209B CN102446209B (zh) | 2013-04-03 |
Family
ID=46008710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110258805 Expired - Fee Related CN102446209B (zh) | 2011-10-18 | 2011-10-18 | 一种海量时域数据读取与图形显示的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102446209B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722150A (zh) * | 2012-06-07 | 2012-10-10 | 中国东方电气集团有限公司 | 一种基于通用串口的多路波形采集显示和数据分析处理系统 |
CN105528196A (zh) * | 2015-12-25 | 2016-04-27 | 大连陆海科技股份有限公司 | 多核流水线工作方式的海图数据处理与显示系统及方法 |
CN105928551A (zh) * | 2016-05-12 | 2016-09-07 | 中国电子科技集团公司第四十研究所 | 一种微波毫米波综测仪视图刷新方法及系统 |
CN108334845A (zh) * | 2018-02-06 | 2018-07-27 | 北京华睿集成科技有限公司 | 数据定位方法和数据定位系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594778B1 (en) * | 1999-08-24 | 2003-07-15 | Lg Information & Communications, Ltd. | Duplexing structure of switching system processor and method for maintaining memory coherency |
CN101650820A (zh) * | 2009-09-24 | 2010-02-17 | 浙江大学 | 基于多核架构的大图像实时浏览方法 |
CN101799748A (zh) * | 2009-02-06 | 2010-08-11 | 中国移动通信集团公司 | 一种确定数据样本类别的方法及其系统 |
CN102193831A (zh) * | 2010-03-12 | 2011-09-21 | 复旦大学 | 一种建立层次化的映射/归约并行编程模型的方法 |
-
2011
- 2011-10-18 CN CN 201110258805 patent/CN102446209B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594778B1 (en) * | 1999-08-24 | 2003-07-15 | Lg Information & Communications, Ltd. | Duplexing structure of switching system processor and method for maintaining memory coherency |
CN101799748A (zh) * | 2009-02-06 | 2010-08-11 | 中国移动通信集团公司 | 一种确定数据样本类别的方法及其系统 |
CN101650820A (zh) * | 2009-09-24 | 2010-02-17 | 浙江大学 | 基于多核架构的大图像实时浏览方法 |
CN102193831A (zh) * | 2010-03-12 | 2011-09-21 | 复旦大学 | 一种建立层次化的映射/归约并行编程模型的方法 |
Non-Patent Citations (1)
Title |
---|
桂勋等: "海量COMTRADE数据并行解析算法", 《电力系统自动化》, vol. 33, no. 15, 10 August 2009 (2009-08-10) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722150A (zh) * | 2012-06-07 | 2012-10-10 | 中国东方电气集团有限公司 | 一种基于通用串口的多路波形采集显示和数据分析处理系统 |
CN105528196A (zh) * | 2015-12-25 | 2016-04-27 | 大连陆海科技股份有限公司 | 多核流水线工作方式的海图数据处理与显示系统及方法 |
CN105928551A (zh) * | 2016-05-12 | 2016-09-07 | 中国电子科技集团公司第四十研究所 | 一种微波毫米波综测仪视图刷新方法及系统 |
CN108334845A (zh) * | 2018-02-06 | 2018-07-27 | 北京华睿集成科技有限公司 | 数据定位方法和数据定位系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102446209B (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102446209B (zh) | 一种海量时域数据读取与图形显示的方法 | |
Zhou et al. | Experimental investigation of entrapped air pocket in a partially full water pipe | |
CN111538461B (zh) | 基于固态硬盘缓存的数据读写方法、装置及存储介质 | |
CN103077157B (zh) | 一种文本集合相似性的可视化方法和装置 | |
EP2369510A3 (en) | Vortex extraction apparatus, method, program, and display system | |
CN102063620A (zh) | 一种手写识别方法、系统及手写识别终端 | |
CN109240912A (zh) | 一种基于大数据分析的网页应用的性能评估方法及终端 | |
CN116702648B (zh) | 一种三维钻柱的涡激振动计算方法及装置 | |
CN104133836B (zh) | 一种实现变更数据检测的方法及装置 | |
CN113552855A (zh) | 工业设备动态阈值设定方法、装置、电子设备及存储介质 | |
CN101986289A (zh) | 一种提高浏览器页面渲染速度的方法和装置 | |
Wang et al. | Investigation on friction models for simulation of pipeline filling transients | |
CN111475351A (zh) | 一种测试固态硬盘iops一致性的方法、装置及存储介质 | |
CN107832524A (zh) | 一种确定储层改造体积的方法、装置及系统 | |
CN109614086A (zh) | 基于SystemC的面向GPU纹理缓冲区数据存储TLM模型及实现结构 | |
CN202217274U (zh) | 一种多核处理器存储系统装置 | |
CN102789684A (zh) | 抄表装置 | |
CN103593339A (zh) | 面向电子图书的语义空间表示方法及系统 | |
Pan et al. | FFT used for fabric defect detection based on CUDA | |
CN101901192A (zh) | 一种片上和片外数据对象静态分配方法 | |
CN114087542A (zh) | 基于scada系统的管道泄漏检测方法、装置及介质 | |
CN103761153A (zh) | 压缩工具资源调用方法及装置 | |
CN103793339B (zh) | 基于内存访问堆栈距离的数据Cache性能探索方法 | |
CN203490875U (zh) | 流体压强实验器 | |
CN102708010B (zh) | 压缩工具资源调用方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130403 Termination date: 20131018 |