没有合适的资源?快使用搜索试试~ 我知道了~
基于Python的矢量化等值面映射工具及其应用的研究
软件X 21(2023)101317原始软件出版物PyVecContour:用于矢量化等值面映射马金凤a,郑华a,b,李若南a,饶凯峰c,杨延政a,李伟峰aa中国科学院生态环境科学研究中心城市与区域生态学国家重点实验室,北京100085b中国科学院大学,100049北京,中国c中国科学院生态环境科学研究中心环境模拟与污染控制国家重点联合实验室,北京100085ar t i cl e i nf o文章历史记录:接收19十月2022收到修订版2022年12月16日接受2022年保留字:矢量等值面映射空间分析Geobufa b st ra ct矢量化等值面映射对于计算流体力学(CFD)中的科学研究至关重要。我们提供了一个基于Python的标量矢量化等值面映射工具CFD模拟结果中的字段信息,目的是减小文件大小,同时确保文件可编辑性和独立于分辨率的图形表示。首先通过对目标区域进行空间旋转来确定理想插补角度,减小了无效插补范围。第二,因为它使用空间裁剪方法,所以它为特定的几何结构(如“岛”或“掩模”)提供了图形处理方法。最后,使用Geobuf的空间压缩存储格式减少数据大小。通过对EFDC(Environmental FluidDynamics Code)浓度场时空演化过程的可视化分析,表明空间旋转和裁剪策略提高了空间插值和等值面跟踪的有效性,使分析结果更符合实际情况。空间压缩策略大大促进了网络传播和等高线图的检索,支持基于等值面时空演化动画方法的多场景分析Web应用。版权所有2023作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本V1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00334可复制胶囊的永久链接https://github.com/JinfengM/PyVecContour法律代码许可证GPL许可证使用Git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求、操作环境和依赖关系无如果可用,请链接到开发人员文档/手册无问题支持电子邮件jfma@rcees.ac.cn1. 动机和意义将科学数据集中的信息转换为图形表示的技术称为数据可视化。可视化是调查的重要工具电子邮件收件人:状态关键实验室的城市和区域中国科学院生态环境科学研究中心,北京市双清路18号,邮编:100085。电子邮件地址:jfma@rcees.ac.cn(Jinfeng Ma),zhenghua@rcees.ac.cn( Hua Zheng ) , Rnli@rcees.ac.cn ( Ruoanan Li ) , raokf@rcees.ac.cn(KaifengRao),yangyzh@rcees.ac.cn(YanzhengYang),www.example.comLi.wf @ rcees.ac.cn(Weifeng Li)。https://doi.org/10.1016/j.softx.2023.101317科学数据中的信息,对于理解流动行为以及提取流体动力学研究中的关键流体特征和原理至关重要[1]。等值面追踪是流体动力学可视化的基本功能,用于显示作为一组彩色表面的结果物理量,对于理解各种物理场的空间和时间演化是有用的,例如温度、化学浓度、水深和压力等[2]。因此,等值面图通常用于地理、水文、气象和其他工程领域已经开发了各种工具或库用于等高线映射分析和流体动力学可视化。冲浪者[3]和2352-7110/©2023作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx马金凤,郑华,李若南等。软件X 21(2023)1013172TecPlot [4]是商业软件的两个例子。该软件是一个功能强大的插值程序,用于二维数据处理,具有一定的等值面绘制,三维演示,计算分析,批处理和对象管理功能。后者是一个数值模拟和CFD可视化程序,集成了工程草图和复杂的数据可视化功能。它可以根据用户的需要轻松地绘制和制作动画。随着开源技术的进步,出现了越来越多的开源软件程序,最著名的是ParaView [5]和VisIt [1,6],这两个著名的开源和尖端可视化软件,都使用可视化工具包(VTK)作为数据处理和渲染引擎,并具有直观的基于QT的图形用户界面(GUI),允许用户交互式和有效地执行可视化,使用户能够交互式和有效地执行可视化和分析活动[1]。相比之下,ParaView和VisIt是相对重量级的,特别是VisIt对第三方软件包具有可考虑的依赖性,即,它只能与指定的已安装库结合使用。随着脚本接口的流行,在科学可视化领域出现了许多完全基于VTK的轻量级Python应用程序,其中PyVista [7]和vedo [8]是两个著名的例子。两者都为VTK库提供了直接和简化的PythonAPI接口,在某些方面,PyVista和vedo在功能上彼此相似,两者在功能上都可以与ParaView和VisIt的Python编程接口进行比较[1]。此外,MATLAB和R Studio等工具为科学计算,可视化和交互式编程提供了计算环境,以及轮廓跟踪功能,允许用户使用颜色填充构建轮廓表面[9]。等值面成图的质量和效率受到广泛的关注被认为是CFD计算结果解释和各种解决方案比较的关键决定因素[10,11]。然而,大多数等值面追踪,包括上面列出的软件和库,都是以栅格化的形式呈现的。与保留足够信息并可更新的矢量格式相比,栅格格式不可编辑,由于数据量巨大,不适合网络传输和检索以进行分析,并且由于绘图质量的分辨率,也容易变形为了解决上述问题,需要提供定制的、高质量的、准确的、并且易于在网络上分发和共享轮廓矢量文件据作者所知,目前还没有开发出处理矢量化轮廓映射问题的库或GUI工具简单地进行矢量化等值线成图而不需要开发为了避免复杂的计算环境或过于关注底层技术方面,我们创建了PyVecContour,它基于与空间数据处理相关的众多现有Python库。它不仅支持基本的标量场等值面映射,而且还增强了传统等值面映射的以下三个特性:(i)通过旋转模拟区域,确定合适的插值角度,减少无效插值区域,提高空间插值效率。(ii)引入了空间裁剪函数来处理“岛"或”掩模"几何的存在。(iii)以Geobuf [12,13]格式保存跟踪的等高线图可以在Web应用程序中快速无失真地显示,甚至可以流畅地播放动画。此外,由于它是用Python编写的,PyVecContour具有清晰的代码结构,良好的可移植性,可维护性和可扩展性。2. 软件描述PyVecContour是用Python3编写的,可以作为一个独立的应用程序使用,也可以作为Django等Web应用程序框架中的单个模块使用。PyVecContour是通过结合许多空间分析框架的功能而创建的。它还与所有操作系统兼容(例如,Linux、Windows和macOS)。应该注意的是,PyVecContour生成的结果文件可以由GeoServer [ 16 ]以GeoJSON [15]格式发布,GeoServer [16]是一个用于共享地理空间数据的开源服务器,OpenLayers [17]是一个基于Web的GIS客户端开发包,为Web GIS客户端开发提供了一个JavaScript库包,以访问以标准格式发布的地图数据。此外,GeoServer和OpenLayers都可以通过快速检索和切换矢量数据来呈现平滑的动画显示。2.1. 软件构架PyVecContour需要两种类型的数据文件:一种描述网格点坐标和标量值,用于轮廓跟踪和映射,另一种描述区域边界和裁剪区域,用于从轮廓结果中裁剪。值得注意的是,由网格点组成的网格不受限制结构化网格,例如EFDC模型中使用的四边形网格;也可以采用非结构化三角形网格。PyVecContour使用一个名为Roll.ini的文件来全局指定程序所需的输入和输出配置,以及为其核心操作选择参数,以方便管理。图1描述了程序的流程图。读取网格点坐标后,PyVecContour旋转网格在此角度执行普通克里金插值[18]后,将创建一个新的网格文件然后使用新的网格文件来跟踪轮廓,然后根据边界文件裁剪轮廓,并在以GeoJSON或Protobuf格式存储之前反向旋转2.2. 软件功能PyVecContour设计为从上到下顺序运行。PyVecContour的功能将在下面的章节中描述2.2.1. 读取CFD结果文件(1) 根据配置的Right.ini文件,读取网格结构文件,得到网格质心坐标和一组网格节点坐标。其他关键选项,如普通克里金插值算法的变差函数模型、色标设置和旋转或不旋转选项,也都在Roll.ini文件中指定。(2) 读取网格质心当网格质心数目较少时,可根据网络结构关系由质心标量值推导出网格角点处的标量值。这对于稀疏网格特别有用,因为它增加了空间插值所需的样本数据,从而提高了插值效率。2.2.2. 旋转格网以确定最佳插值角度围绕栅格中心坐标集中第一个点的位置旋转栅格。网格外部矩形的最小面积以一度间隔计算,以确定网格空间的最佳插值角度。随着这个外部矩形的面积减小,有效插值区域(真正需要渲染的部分)会增加。图2示出了具有旋转和不具有旋转的插值区域的变化。马金凤,郑华,李若南等。软件X 21(2023)1013173图1.一、Py Ve cC o n to ur 的概念设计图 。图二. 没有(a)和有(b)旋转的插值面积的变化。(b)中的有效内插面积比例明显大于(a)中的比例马金凤,郑华,李若南等。软件X 21(2023)1013174图三. 非旋转((a)和(c))和旋转((b)和(d))等值面跟踪结果的比较。(a)及(b)比较整体结果,及(c)及(d)比较在当地的结果2.2.3. 等值面追踪与制图设置插值区域使用Matplotlib [19,20]库分析等值面并根据配置文件中指定的颜色级别创建矢量化等值面文件。2.2.4. 岛形夹读取边界文件中的面集,其中第一个多边形是向量场的外边界,其他多边形是岛的边界。这些边界用于裁剪矢量化等值面文件。裁剪后,根据先前计算的理想插值角度反向旋转新创建的矢量文件。2.2.5. 以geobuf格式以GeoJSON或Protobuf格式存储反向旋转的文件最后,目标标量(温度、压力或浓度)、当前时间帧和结果文件(GeoJSON或Protobuf)的路径存储在关系数据库(如MySQL或PostgreSQL)中,或写入CSV文件。这种类型的索引信息用于检索和发布。用户查询存储在同一表面上的结果后,这些结果将在GeoServerWeb服务器或OpenLayers Web客户端的帮助下以静态图形或动态动画的形式发布在Web上。3. 说明性实例本文提供了三个示例来突出PyVecContour的主要功能。在PyVecContour中GitHub存储库中,环境流体动力学模型创建的示例文件被组织到三个目录中这些文件包含线性河流中染料排放扩散和扩散模拟的结果,岛屿湖泊中的水质模拟,以及线性河流中污染物(染料)迁移和扩散3.1. 旋转处理通过旋转标量场的网格,可以识别外接标量场的矩形的最小面积当该面积最小化时,有效插值空间占总外接矩形的最大面积,从而增强空间插值性能。图图2(a)和2(b)比较了未旋转和旋转情况下有效空间面积的变化。 可以看出,在旋转的情况下,原始标量场之外的无用插值空间明显小于未旋转的情况。相应地,图。图3(a)和(b)比较了总等值面跟踪结果。 可以看出,在旋转的情况下,因为存在更精细的网格来描述标量(浓度)场中的变化,所以等值面跟踪可以详细地捕获浓度的局部变化(如图1A和1B中突出显示的)。3(c)和3(b)),这有利于精确的科学管理和决策。3.2. 边界处理在EFDC的水动力水质模拟中,岛屿通常被视为具有无限底部高程的陆地。典型的流体力学模拟软件程序,如EFDC,马金凤,郑华,李若南等。软件X 21(2023)1013175图四、 外部边界剪辑(a)和内部岛剪辑(b)的演示。图五、在 O p e n L a y e r s W e b 客 户 端 中 通过矢量化等值面生 成 的 污 染 物时空迁移过程的动画。Delft3d和Mike 没有考虑在后处理模块中挖空岛屿图 4 显示PyVecContour可以在空间上裁剪标量场的外边界(图4)。 4(a))和一个或多个岛屿(图。4(b)),使所得等值面结果更真实。3.3. 基于OpenLayers的网络共享与发布考虑到栅格化等值面文件的图形表示很容易变形,并且难以动画,5演示了PyVecContour提供了在Web网络条件下动画平滑时空动态演化的能力。通过在OpenLayers的map对象中添加矢量层对象,并不断更新对象的数据源,可以方便地渲染目标标量(此处为染料浓度)的时空动态过程,有利于在网络上传播和共享,从而方便科学研究。4. 影响虽然目前已有大量商业和开源版本的网格化等值面跟踪软件和库可用于CFD数据可视化,但光栅文件的图像显示容易失真,难以用流畅的动画表达标量场的时空演化过程。因此,很难在因特网上分发和检索PyVecContour可以解决这些问题,而不需要任何额 外 的 复 杂 的 计 算 机 环 境 设 置 或 CFD 标 量 场 文 件 的 处 理PyVecContour可以自动优化空间插值过程,提高等值面跟踪性能。矢量化数据存储格式的使用这种可视化为用户提供了丰富的重要数据。例如,在水污染扩散模拟中,可以提取特定时刻或特定时间范围内浓度场的空间分布,帮助用户了解污染物的时空演变,设计科学的应急预案。马金凤,郑华,李若南等。软件X 21(2023)10131765. 结论PyVecContour提供了一个用于矢量化等值面映射的工具包。它采用空间旋转和裁剪策略来提高空间插值和等值面跟踪的效率和性能。矢量化数据存储格式的使用避免了图形显示失真的问题,从而允许在Web应用程序中快速无失真地显示我们相信PyVecContour将有助于研究人员进行流体力学仿真研究。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作数据可用性数据将根据要求提供。致谢本工作得到了国家自然科学基金(41925005)和国家重点研发计 划 ( 2019YFD0901105 ) 的 资 助 。 我 们 感 谢 理 文 Bianji(Edanz)(www.liwenbianji.cn/)的Kimberly Moravec博士编辑本手稿的英文版引用[1] 刘强,乔志,吕勇. PyVT:一个基于Python的开源软件,用于流体动力学数据集 的 可 视 化 和 图 形 分 析 。 Aerosp Sci Technol 2021;117 : 106961.http://dx.doi.org/10.1016/j.ast.2021.106961网站。[2]史志,李胜,黄丽,陈艳。基于VB和Surfer软件的等高线图批处理可视化编程。AdvEngSoftw2010;41(7-8):962-5.http://dx.doi.org/10.1016/j.advengsoft.2010.05.007网站。[3]Joomlageeks。 Surfe R®|2D&3D绘图、建模&分析软件为科学家和工程师。可从以下网址获得:https://www.goldensoftwarecom/products/surfer.[4]特克普洛特岛Tecplot360用户二〇一三年,
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功