CN109242937B - 将Mike流场结果文件转换成shapefile矢量文件的方法和装置 - Google Patents

将Mike流场结果文件转换成shapefile矢量文件的方法和装置 Download PDF

Info

Publication number
CN109242937B
CN109242937B CN201810892127.7A CN201810892127A CN109242937B CN 109242937 B CN109242937 B CN 109242937B CN 201810892127 A CN201810892127 A CN 201810892127A CN 109242937 B CN109242937 B CN 109242937B
Authority
CN
China
Prior art keywords
saving time
computational
grid
preset
polygon
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.)
Active
Application number
CN201810892127.7A
Other languages
English (en)
Other versions
CN109242937A (zh
Inventor
李泽敏
蒋奇
尹欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING INSTITUTE OF WATER
Original Assignee
BEIJING INSTITUTE OF WATER
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING INSTITUTE OF WATER filed Critical BEIJING INSTITUTE OF WATER
Priority to CN201810892127.7A priority Critical patent/CN109242937B/zh
Publication of CN109242937A publication Critical patent/CN109242937A/zh
Application granted granted Critical
Publication of CN109242937B publication Critical patent/CN109242937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/24Fluid dynamics
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A10/00TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
    • Y02A10/40Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例提供一种将Mike流场结果文件转换成shapefile矢量文件的方法和装置,属于水环境仿真与地理信息系统技术交叉领域。该方法包括:读取所述Mike流场结果文件,该Mike流场结果文件包含一个或多个保存时间步、该一个或多个保存时间步所对应的计算网格及所述计算网格对应的场变量信息;针对每一保存时间步,遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域;以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件。藉此,实现了为用户提供流场数据的在线浏览分析及网络可视化的多元需求。

Description

将Mike流场结果文件转换成shapefile矢量文件的方法和装置
技术领域
本发明涉及水环境仿真与地理信息系统技术交叉领域,具体地涉及一种将Mike流场结果文件转换成shapefile矢量文件的方法和装置。
背景技术
流动具有明显的空间三维特性,由于流场数据结构复杂,动态多变,为了能更好的表现水体流动的复杂过程,显示局部细节为防洪调度提供决策基础,对流场数据的动态可视化显示提出了更高的要求。目前在没有安装有DHI-Mike软件的终端上查看流场数据,传统的方法主要为从Mike流场结果文件中导出数据,借助于第三方软件如Excel、Tecplot、Matlab等对流场进行可视化分析,这种方法很难把握利用数学模型计算得到的流场结果的合理性和准确性。
发明内容
本发明的目的是提供一种将Mike流场结果文件转换成shapefile矢量文件的方法和装置,其可解决或至少部分解决上述问题。
为了实现上述目的,本发明的一个方面提供一种用于将Mike流场结果文件转换成shapefile矢量文件的方法,该方法包括:读取所述Mike流场结果文件,该Mike流场结果文件包含一个或多个保存时间步、该一个或多个保存时间步所对应的计算网格及所述计算网格对应的场变量信息;针对每一保存时间步,遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域;以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件。
可选地,所述针对每一保存时间步遍历该保存时间步所对应的所有计算网格并针对每一该计算网格根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件包括:针对每一保存时间步,创建以该保存时间步命名的shapefile矢量文件以及GDALDataset类型的对象polygonDS,从polygonDS中创建OGRLayer类型的图层指针对象polygonLayer;针对每一保存时间步所对应的计算网格中的每一计算网格,执行以下操作:(1)判断该计算网格的水面高程是否大于所述预设淹没水深阈值;(2)在该计算网格的水面高程大于所述预设淹没水深阈值的情况下,依据polygonLayer创建OGRFeature类型的指针对象polygonFeature,并将该计算网格对应的所述预设场变量信息写入所述指针对象polygonFeature;创建OGRLinearRing类型的对象ring;将该计算网格的坐标写入所述对象ring中;创建OGRPpolygon类型的对象Polygon,并将所述对象ring加入所述对象Polygon中;将所述对象Polygon设为所述指针对象polygonFeature的几何对象;以及将所述指针对象polygonFeature销毁。
可选地,所述将该计算网格的坐标写入所述对象ring中包括:读取该计算网格中的每一节点的坐标值;判断所读取的坐标值是否需要转换坐标系;在所读取的坐标值需要转换坐标系的情况下,将所读取的坐标值转到预设坐标系下,并将转换后的坐标值写入所述对象ring中;以及在所读取的坐标值不需要转换坐标系的情况下,将所读取的坐标值写入所述对象ring中。
可选地,该方法还包括:接收对所述预设场变量信息的设定。
相应地,本发明的另一方面提供一种用于将Mike流场结果文件转换成shapefile矢量文件的装置,该装置包括:读取模块,用于读取所述Mike流场结果文件,该Mike流场结果文件包含一个或多个保存时间步、该一个或多个保存时间步所对应的计算网格及所述计算网格对应的场变量信息;以及处理模块,用于:针对每一保存时间步,遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域;以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件。
可选地,所述处理模块针对每一保存时间步遍历该保存时间步所对应的所有计算网格并针对每一该计算网格根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件包括:针对每一保存时间步,创建以每一保存时间步命名的shapefile矢量文件以及GDALDataset类型的对象polygonDS,从polygonDS中创建OGRLayer类型的图层指针对象polygonLayer;针对每一保存时间步所对应的计算网格中的每一计算网格,执行以下操作:(1)判断该计算网格的水面高程是否大于所述预设淹没水深阈值;(2)在该计算网格的水面高程大于所述预设淹没水深阈值的情况下,依据polygonLayer创建OGRFeature类型的指针对象polygonFeature,并将该计算网格对应的所述预设场变量信息写入所述指针对象polygonFeature;创建OGRLinearRing类型的对象ring;将该计算网格的坐标写入所述对象ring中;创建OGRPpolygon类型的对象Polygon,并将所述对象ring加入所述对象Polygon中;将所述对象Polygon设为所述指针对象polygonFeature的几何对象;以及将所述指针对象polygonFeature销毁。
可选地,所述将该计算网格的坐标写入所述对象ring中包括:读取该计算网格中的每一节点的坐标值;判断所读取的坐标值是否需要转换坐标系;在所读取的坐标值需要转换坐标系的情况下,将所读取的坐标值转到预设坐标系下,并将转换后的坐标值写入所述对象ring中;以及在所读取的坐标值不需要转换坐标系的情况下,将所读取的坐标值写入所述对象ring中。
可选地,该装置还包括:接收模块,用于接收对所述预设场变量信息的设定。
此外,本发明的另一方面还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的方法。
通过上述技术方案,将Mike流场结果文件转换成shapefile矢量文件,shapefile矢量文件架起了从Mike流场结果文件到可对流畅数据直接进行空间地理分析的桥梁,使得利用GIS、地理数据库、图形界面等技术对Mike流场结果进行可视化分析成为可能,可以利用GIS在可视化方面的优势,方便用户对Mike流场结果文件进行分析,准确把握利用数学模型计算得到的流程结果的合理性和准确性,用户可以通过对流场矢量图层的缩放、平移等功能查看感兴趣的区域,可以明显提高建模和调试模型的效率。此外,Mike流场结果文件通常为dfsu、dfsu2等非公开的文件,通过将Mike流场结果文件转换成shapefile矢量文件,更有利于实现科学数据的集成与共享,能够为用户提供流场数据的在线浏览分析及网络可视化的多元需求。另外,可以通过设定预设淹没水深阈值,控制淹没区域多边形网格的输出,进而实现水涨水落的过程的场景显示。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明一实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的方法的流程图;
图2a是本发明另一实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的方法的部分流程图;
图2b是本发明另一实施例提供与图2a对应的用于将Mike流场结果文件转换成shapefile矢量文件的方法的部分流程图;
图3是本发明另一实施例提供的以Mike计算网格表征的四个连续时刻(t1-t4)淹没范围的示意图;
图4为本发明Mike水环境结果文件经转换后在ArcMap中的示意图;
图5为本发明Mike水环境结果文件经转换,在ArcMap中所查询得到的面要素信息示意图;以及
图6是本发明另一实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的装置的结构框图。
附图标记说明
1 读取模块 2 处理模块
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
目前,GIS技术的发展已在各领域得到广泛的应用,随着计算机硬件的更新换代、空间数据库和图形图像处理技术的不断进步,利用GIS技术来构建动态可视化演示,已经成为水动力学研究发展的新方向。ESRI shapefile为地理信息领域较为常见的一种数据格式,若可以将Mike流场结果文件转换成ESRI shapefile矢量文件,则可利用GIS技术实现对流场结果的可视化分析。
本发明实施例的一个方面提供一种用于将Mike流场结果文件转换成shapefile矢量文件的方法。图1是本发明一实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的方法的流程图,如图1所示,该方法包括以下内容。
在步骤S10中,读取结果文件,即读取Mike流程结果文件,其中该Mike流场结果文件包含一个或多个保存时间步、该一个或多个保存时间步对应的计算网格及该计算网格对应的场变量信息。其中,所读取的一个或多个保存时间步可以是读取保存时间步的总数;所读取的该一个或多个保存时间步对应的计算网格包括每一保存时间步对应的计算网格的单元总数、每一计算网格所包括的节点总数及每一节点的坐标;场变量信息可以包括水面高程(Surface elevation)、静止水深(Still water depth)、总水深(Total waterdepth)、x向流速(U velocity)、y向流速(V velocity)、流速矢量(Current speed)、单元面积(Element area)、溶解生化需氧量(BOD dissolved)、悬浮生化需氧量(BOD suspended)、沉积生化需氧量(BOD sediment)、溶解氧(Dissolved oxygen)、氨氮(Ammonia)、硝酸盐(Nitrate)、磷酸(Phosphate)等。此外,在本发明实施例中,x向和y向的原点以投影坐标系(笛卡尔坐标系)的原点,x向和y向分别是投影坐标系中的x向和y向。
在步骤S11中,确定淹没区域所包括的计算网格,具体地,针对每一保存时间步,遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域,如此,针对每一保存时间步,确定出该保存时间步所对应的计算网格中被包括在淹没区域中的计算网格。
在步骤S12中,将确定的淹没区域包括的计算网格的坐标及预设场变量信息写入shapefile矢量文件,也就是,将针对每一保存时间步所确定的被包括在淹没区域的计算网格的坐标及预设场变量信息写入shapefile矢量文件。
将Mike流场结果文件转换成shapefile矢量文件,shapefile矢量文件架起了从Mike流场结果文件到可对流场数据直接进行空间地理分析的桥梁,使得利用GIS、地理数据库、图形界面等技术对Mike流场结果进行可视化分析成为可能,可以利用GIS在可视化方面的优势,方便用户对Mike流场结果文件进行分析,准确把握利用数学模型计算得到的流程结果的合理性和准确性,用户可以通过对流场矢量图层的缩放、平移等功能查看感兴趣的区域,可以明显提高建模和调试模型的效率。此外,Mike流场结果文件通常为dfsu、dfsu2等非公开的文件,通过将Mike流场结果文件转换成shapefile矢量文件,更有利于实现科学数据的集成与共享,能够为用户提供流场数据的在线浏览分析及网络可视化的多元需求。另外,可以通过设定预设淹没水深阈值,控制淹没区域多边形网格的输出,进而实现水涨水落的过程的场景显示。
可选地,在本发明实施例中,确定淹没区域所包括的计算网格及将确定的淹没区域包括的计算网格的坐标及预设场变量信息写入shapefile矢量文件,也就是,针对每一保存时间步遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域,以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件,可以包括以下内容:针对每一保存时间步,创建以该保存时间步命名的shapefile矢量文件以及GDALDataset类型的对象polygonDS,从polygonDS中创建OGRLayer类型的图层指针对象polygonLayer;针对每一保存时间步所对应的计算网格中的每一计算网格,执行以下操作:(1)判断该计算网格的水面高程是否大于预设淹没水深阈值;(2)在该计算网格的水面高程大于预设淹没水深阈值的情况下,依据polygonLayer创建OGRFeature类型的指针对象polygonFeature;并将该计算网格对应的预设场变量信息写入指针对象polygonFeature;创建OGRLinearRing类型的对象ring;将该计算网格的坐标写入对象ring中;创建OGRPpolygon类型的对象Polygon,并将对象ring加入对象Polygon中;将对象Polygon设为指针对象polygonFeature的几何对象;以及将指针对象polygonFeature销毁。
可选地,在本发明实施例中,将一计算网格的坐标写入对象ring中包括:读取该计算网格中的每一节点的坐标值;判断所读取的坐标值是否需要转换坐标系;在所读取的坐标值需要转换坐标系的情况下,将所读取的坐标值转到预设坐标系下,并将转换后的坐标值写入所述对象ring中;以及在所读取的坐标值不需要转换坐标系的情况下,将所读取的坐标值写入所述对象ring中。其中,需要转换坐标系主要是针对原模型文件中没有定义投影坐标系的情况,根据需要转换到指定的投影坐标系。例如,某一节点的坐标处于北京地方坐标系中,指定的投影坐标系是WGS84,则在获取该节点的坐标后,将所获取的坐标值转换到WGS84坐标系中。
此外,在本发明实施例中,预设场变量信息可以通过交互模块进行设置,例如,通过显示器或触摸屏进行设置。可选地,在本发明实施例中,该方法还包括接收对预设场变量信息的设定。其中,对于预设场变量信息的选定,可以根据实际需要进行了解的情况进行选择,选择需要写入shapefie矢量文件中的场变量信息,以此为基础建立shapefile中的属性字段。例如,在堤防设计、河道整治需要进行水动力模拟,也就是模拟水流动的过程,预设场变量信息可以包括水面高程、静止水深、总水深、x向流速、y向流速、流速矢量。再比如,在进行水质分析时,进行水环境模拟,预设场变量信息可以包括溶解生化需氧量、悬浮生化需氧量、沉积生化需氧量、溶解氧、氨氮、硝酸盐、磷酸。
图2a是本发明另一实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的方法的部分流程图,图2b是本发明另一实施例提供与图2a对应的用于将Mike流场结果文件转换成shapefile矢量文件的方法的部分流程图。下面结合图2a和图2b对本发明另一实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的方法进行阐述,如图2a和图2b所示,该方法包括以下内容。
获取单元总数totalElements和总保存时间步timeSteps及每一计算网格所包括的节点总数,其中,单元总数totalElements即为每一保存时间步对应的计算网格的网格单元的总数,总保存时间步timeSteps即为保存时间步的总数。注册所有驱动,使用名称“ESRIShapefile”创建GDALDriver类型的驱动指针对象polygonDriver依据需要写入shapefile矢量文件(即图中所示的shapefile属性字段)的场变量信息创建OGRFieldDefn对象,其中该需要写入写入shapefile矢量文件(即图中所示的shapefile属性字段)的场变量信息即为本发明实施例中所述的预设场变量信息。
下面进行遍历所有保存时间步及每一保存时间步所对应的所有计算网格,以确定每一保存时间步对应的被包括在淹没区域中的计算网格,并将淹没区域中所包括的计算网格的坐标及所对应的预设场变量信息写入shapefile矢量文件。
以i从0开始,其中i表示保存时间步。判断i是否小于timeSteps(保存时间步的总数)。i为0,满足小于timeSteps(保存时间步的总数),创建以该保存时间步命名的shapefile矢量文件,创建以保存时间步命名的shapefile矢量文件,即为以i创建shapefile,例如,初始时,i为0,则创建以0命名的shapefile矢量文件,此外,图中的*.shp文件即为本发明实施例中所述的shapefile矢量文件;创建GDALDataset类型的对象polygonDS;从polygonDS中创建OGRLayer类型的图层指针对象polygonLayer;在polygonLayer图层中创建场变量,读取场变量数值。其中,读取每一保存时间步场变量的函数可以是ReadItemTimeStep(intitemNumber,inttimestepIndex),其中,第一变量编号与场变量的对应关系以伪代码的形式可以采用如下形式:
array<float>^surfaceElevationArray=(array<float>^)dfsu->dfsuFile->ReadItemTimeStep(1,i)->Data;//Surface elevation
array<float>^stillDepthArray=(array<float>^)dfsu->dfsuFile->ReadItemTimeStep(2,i)->Data;//Still water depth
array<float>^totalDepthArray=(array<float>^)dfsu->dfsuFile->ReadItemTimeStep(3,i)->Data;//Total water depth
array<float>^uVelocityArray=(array<float>^)dfsu->dfsuFile->ReadItemTimeStep(4,i)->Data;//U velocity
array<float>^vVelocityArray=(array<float>^)dfsu->dfsuFile->ReadItemTimeStep(5,i)->Data;//V velocity
array<float>^currentSpeedArray=(array<float>^)dfsu->dfsuFile->ReadItemTimeStep(6,i)->Data;//Current speed
array<float>^elementAreaArray=(array<float>^)dfsu->dfsuFile->ReadItemTimeStep(9,i)->Data;//Element area
下面针对i为0的保存时间步,遍历该保存时间步对应的所有计算网格。j从0开始,其中j表示遍历的计算网格的序号。判断j是否小于totalElements,此时,j为0满足小于totalElements。判断j为0所代表的计算网格所对应的水面高程是否大于设定的淹没水深阈值(该处所述的淹没水深阈值即为本发明实施例中所述的预设淹没水深阈值)。在j为0的计算网格所对应的水面高程满足大于设定的淹没水深阈值的情况下,依据polygonLayer创建OGRFeature类型的指针对象polygonFeature,并将该计算网格对应的预设场变量信息写入指针对象polygonFeature,然后,创建OGRLinearRing类型的对象ring。
下面对j为0代表的计算网格所包括的节点进行遍历。k从0开始,其中,k表示遍历的节点的序号。判断k是否满足小于nodes of element,其中,nodes of element表示当前遍历的计算网格所包括的节点的总数,此时k为0,满足小于nodes of element。读取k为0代表的节点的坐标值,判断所读取的坐标值是否需要转换坐标系。在不需要转换坐标系的情况下,将所读取的坐标值写入对象ring中;在需要转换坐标系的情况下,利用GDAL地理信息库增加地理坐标系,增加坐标系转换,也就是将读取的坐标值转到预设坐标系下。然后,k的值加1,执行k=k+1,此后,k为1。针对k为1所代表的节点,重复对于k为0所代表的节点的步骤,如此,重复循环,直到遍历完j为0所代表的计算网格所包括的所有节点。
在遍历完j为0所代表的计算网格所包括的所有节点后,需要应用closeRings()方法。先将ring对象添加到OGRPolygon类型的polygon对象中,再使用SetGeometry()方法将polygon对象设置为OGRFeature类型指针对象polygonFeature的几何属性。在确认没有错误发生的前提下销毁polygonFeature对象,并关闭数据源。具体地,包括以下内容:判断k是否小于nodes of element时,判断结果为k不满足小于nodes of element,随后,创建OGRPpolygon类型的对象Polygon,并将对象ring加入对象Polygon中,将对象Polygon设为指针对象polygonFeature的几何对象,随后,将指针对象polygonFeature销毁。至此,表示将j为0代表的计算网格处理完毕,将j加1,即执行j=j+1,此后,j为1。针对j为1所代表的计算网格,重复针对j为0所代表的计算网格的处理,如此循环,直到遍历i为0这一保存时间步所对应的所有计算网格。
在遍历完i为0这一保存时间步所对应的所有计算网格后,关闭对象polygonDS。随后,将i加1,执行i=i+1,此后i为1。针对i为1这一保存时间步,重复i为0这一保存时间步的处理步骤,如此,循环重复,直到遍历完所有的保存时间步。
通过上述过程,将Mike流场结果文件每一个保存时间步中水深场变量(本发明实施例中所述的水面高程)大于一定阈值的网格单元以多边形要素的形式写入shapefile矢量文件,多边形要素同时附带对应网格单元的场变量信息。进而,将欧拉描述的流场信息以地理信息要素的形式表达,通过有限体积/有限差分的计算网格来表征淹没范围,如图3所示。另外,Mike流场结果文件通常不易被其他软件识别,将Mike流场结果文件转换为shapefile矢量文件后,Mike流场结果可以被应用在多种GIS软件上进行展示,例如,可以被应用在ArcMap中进行展示,如图4所示,展示了将Mike流场结果文件转换后在ArcMap中的示意图。此外,还可以在ArcMap中查询得到面要素信息,如图5所示。此外,在本发明实施例中,可以是利用GDAL地理信息库及Mike.NET应用程序开发接口将Mike流场结果文件写入shapefile矢量文件中。
相应地,本发明实施例的另一方面提供一种用于将Mike流场结果文件转换成shapefile矢量文件的装置。图6是本发明另一实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的装置的结构框图,如图6所示,该装置包括读取模块1和处理模块2。其中,读取模块1用于读取Mike流场结果文件,该Mike流场结果文件包含一个或多个保存时间步、该一个或多个保存时间步所对应的计算网格及计算网格对应的场变量信息;处理模块2用于针对每一保存时间步,遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域,以及将针对每一保存时间步所确定的被包括在淹没区域的计算网格的坐标及预设场变量信息写入shapefile矢量文件。
将Mike流场结果文件转换成shapefile矢量文件,shapefile矢量文件架起了从Mike流场结果文件到可对流畅数据直接进行空间地理分析的桥梁,使得利用GIS、地理数据库、图形界面等技术对Mike流场结果进行可视化分析成为可能,可以利用GIS在可视化方面的优势,方便用户对Mike流场结果文件进行分析,准确把握利用数学模型计算得到的流程结果的合理性和准确性,用户可以通过对流场矢量图层的缩放、平移等功能查看感兴趣的区域,可以明显提高建模和调试模型的效率。此外,Mike流场结果文件通常为dfsu、dfsu2等非公开的文件,通过将Mike流场结果文件转换成shapefile矢量文件,更有利于实现科学数据的集成与共享,能够为用户提供流场数据的在线浏览分析及网络可视化的多元需求。另外,可以通过设定预设淹没水深阈值,控制淹没区域多边形网格的输出,进而实现水涨水落的过程的场景显示。
可选地,在本发明实施例中,处理模块针对每一保存时间步遍历该保存时间步所对应的所有计算网格并针对每一该计算网格根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域以及将针对每一保存时间步所确定的被包括在淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件包括:针对每一保存时间步,创建以每一保存时间步命名的shapefile矢量文件以及GDALDataset类型的对象polygonDS,从polygonDS中创建OGRLayer类型的图层指针对象polygonLayer;针对每一保存时间步所对应的计算网格中的每一计算网格,执行以下操作:(1)判断该计算网格的水面高程是否大于所述预设淹没水深阈值;(2)在该计算网格的水面高程大于预设淹没水深阈值的情况下,依据polygonLayer创建OGRFeature类型的指针对象polygonFeature,并将该计算网格对应的预设场变量信息写入指针对象polygonFeature;创建OGRLinearRing类型的对象ring;将该计算网格的坐标写入所述对象ring中;创建OGRPpolygon类型的对象Polygon,并将对象ring加入对象Polygon中;将对象Polygon设为指针对象polygonFeature的几何对象;以及将指针对象polygonFeature销毁。
可选地,在本发明实施例中,将该计算网格的坐标写入所述对象ring中包括:读取该计算网格中的每一节点的坐标值;判断所读取的坐标值是否需要转换坐标系;在所读取的坐标值需要转换坐标系的情况下,将所读取的坐标值转到预设坐标系下,并将转换后的坐标值写入所述对象ring中;以及在所读取的坐标值不需要转换坐标系的情况下,将所读取的坐标值写入所述对象ring中。
可选地,在本发明实施例中,该装置还包括:接收模块,用于接收对预设场变量信息的设定。
本发明实施例中提供的用于将Mike流场结果文件转换成shapefile矢量文件的装置的具体工作原理及益处与本发明实施例提供的用于将Mike流场结果文件转换成shapefile矢量文件的方法的具体工作原理及益处相似,这里将不再赘述。
此外,本发明实施例的另一方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器上述实施例中所述的方法。
综上所述,将Mike流场结果文件转换成shapefile矢量文件,shapefile矢量文件架起了从Mike流场结果文件到可对流畅数据直接进行空间地理分析的桥梁,使得利用GIS、地理数据库、图形界面等技术对Mike流场结果进行可视化分析成为可能,可以利用GIS在可视化方面的优势,方便用户对Mike流场结果文件进行分析,准确把握利用数学模型计算得到的流程结果的合理性和准确性,用户可以通过对流场矢量图层的缩放、平移等功能查看感兴趣的区域,可以明显提高建模和调试模型的效率。此外,Mike流场结果文件通常为dfsu、dfsu2等非公开的文件,通过将Mike流场结果文件转换成shapefile矢量文件,更有利于实现科学数据的集成与共享,能够为用户提供流场数据的在线浏览分析及网络可视化的多元需求。另外,可以通过设定预设淹没水深阈值,控制淹没区域多边形网格的输出,进而实现水涨水落的过程的场景显示。
以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

Claims (7)

1.一种用于将Mike流场结果文件转换成shapefile矢量文件的方法,其特征在于,该方法包括:
读取所述Mike流场结果文件,该Mike流场结果文件包含一个或多个保存时间步、该一个或多个保存时间步所对应的计算网格及所述计算网格对应的场变量信息;
针对每一保存时间步,遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域;以及
将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件;
其中,所述针对每一保存时间步遍历该保存时间步所对应的所有计算网格并针对每一该计算网格根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件包括:
针对每一保存时间步,创建以该保存时间步命名的shapefile矢量文件以及GDALDataset类型的对象polygonDS,从polygonDS中创建OGRLayer类型的图层指针对象polygonLayer;
针对每一保存时间步所对应的计算网格中的每一计算网格,执行以下操作:
(1)判断该计算网格的水面高程是否大于所述预设淹没水深阈值;
(2)在该计算网格的水面高程大于所述预设淹没水深阈值的情况下,
依据polygonLayer创建OGRFeature类型的指针对象polygonFeature,并将该计算网格对应的所述预设场变量信息写入所述指针对象polygonFeature;
创建OGRLinearRing类型的对象ring;
将该计算网格的坐标写入所述对象ring中;
创建OGRPpolygon类型的对象Polygon,并将所述对象ring加入所述对象Polygon中;
将所述对象Polygon设为所述指针对象polygonFeature的几何对象;以及
将所述指针对象polygonFeature销毁。
2.根据权利要求1所述的方法,其特征在于,所述将该计算网格的坐标写入所述对象ring中包括:
读取该计算网格中的每一节点的坐标值;
判断所读取的坐标值是否需要转换坐标系;
在所读取的坐标值需要转换坐标系的情况下,将所读取的坐标值转到预设坐标系下,并将转换后的坐标值写入所述对象ring中;以及
在所读取的坐标值不需要转换坐标系的情况下,将所读取的坐标值写入所述对象ring中。
3.根据权利要求1或2所述的方法,其特征在于,该方法还包括:
接收对所述预设场变量信息的设定。
4.一种用于将Mike流场结果文件转换成shapefile矢量文件的装置,其特征在于,该装置包括:
读取模块,用于读取所述Mike流场结果文件,该Mike流场结果文件包含一个或多个保存时间步、该一个或多个保存时间步所对应的计算网格及所述计算网格对应的场变量信息;以及
处理模块,用于:
针对每一保存时间步,遍历该保存时间步所对应的所有计算网格,并针对每一该计算网格,根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域;以及
将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件;
其中,所述处理模块针对每一保存时间步遍历该保存时间步所对应的所有计算网格并针对每一该计算网格根据该计算网格对应的水面高程与预设淹没水深阈值确定该计算网格是否被包括在淹没区域以及将针对每一保存时间步所确定的被包括在所述淹没区域的计算网格的坐标及预设场变量信息写入所述shapefile矢量文件包括:
针对每一保存时间步,创建以每一保存时间步命名的shapefile矢量文件以及GDALDataset类型的对象polygonDS,从polygonDS中创建OGRLayer类型的图层指针对象polygonLayer;
针对每一保存时间步所对应的计算网格中的每一计算网格,执行以下操作:
(1)判断该计算网格的水面高程是否大于所述预设淹没水深阈值;
(2)在该计算网格的水面高程大于所述预设淹没水深阈值的情况下,
依据polygonLayer创建OGRFeature类型的指针对象polygonFeature,并将该计算网格对应的所述预设场变量信息写入所述指针对象polygonFeature;
创建OGRLinearRing类型的对象ring;
将该计算网格的坐标写入所述对象ring中;
创建OGRPpolygon类型的对象Polygon,并将所述对象ring加入所述对象Polygon中;
将所述对象Polygon设为所述指针对象polygonFeature的几何对象;以及
将所述指针对象polygonFeature销毁。
5.根据权利要求4所述的装置,其特征在于,所述将该计算网格的坐标写入所述对象ring中包括:
读取该计算网格中的每一节点的坐标值;
判断所读取的坐标值是否需要转换坐标系;
在所读取的坐标值需要转换坐标系的情况下,将所读取的坐标值转到预设坐标系下,并将转换后的坐标值写入所述对象ring中;以及
在所读取的坐标值不需要转换坐标系的情况下,将所读取的坐标值写入所述对象ring中。
6.根据权利要求4或5所述的装置,其特征在于,该装置还包括:
接收模块,用于接收对所述预设场变量信息的设定。
7.一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行权利要求1-3中任一项所述的方法。
CN201810892127.7A 2018-08-07 2018-08-07 将Mike流场结果文件转换成shapefile矢量文件的方法和装置 Active CN109242937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810892127.7A CN109242937B (zh) 2018-08-07 2018-08-07 将Mike流场结果文件转换成shapefile矢量文件的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810892127.7A CN109242937B (zh) 2018-08-07 2018-08-07 将Mike流场结果文件转换成shapefile矢量文件的方法和装置

Publications (2)

Publication Number Publication Date
CN109242937A CN109242937A (zh) 2019-01-18
CN109242937B true CN109242937B (zh) 2023-04-07

Family

ID=65071100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810892127.7A Active CN109242937B (zh) 2018-08-07 2018-08-07 将Mike流场结果文件转换成shapefile矢量文件的方法和装置

Country Status (1)

Country Link
CN (1) CN109242937B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203194A (ja) * 2001-08-17 2003-07-18 Ohbayashi Corp 風環境予測プログラム、このプラグラムを格納した媒体および風環境予測方法
CN108052776A (zh) * 2018-01-12 2018-05-18 河南省水利勘测设计研究有限公司 基于bim和三维实景模型的洪水模型构建与动态展示方法
CN108062453A (zh) * 2018-01-12 2018-05-22 河南省水利勘测设计研究有限公司 水利信息化系统洪水高效模拟与高逼真可视化动态展示方法
CN108108544A (zh) * 2017-12-15 2018-06-01 河南省水利勘测设计研究有限公司 洪水分析模拟系统二维水动力学结果数据轻量化的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203194A (ja) * 2001-08-17 2003-07-18 Ohbayashi Corp 風環境予測プログラム、このプラグラムを格納した媒体および風環境予測方法
CN108108544A (zh) * 2017-12-15 2018-06-01 河南省水利勘测设计研究有限公司 洪水分析模拟系统二维水动力学结果数据轻量化的方法
CN108052776A (zh) * 2018-01-12 2018-05-18 河南省水利勘测设计研究有限公司 基于bim和三维实景模型的洪水模型构建与动态展示方法
CN108062453A (zh) * 2018-01-12 2018-05-22 河南省水利勘测设计研究有限公司 水利信息化系统洪水高效模拟与高逼真可视化动态展示方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A framework for a microscale flood damage assessment and visualization for a building using BIM–GIS integration;Sam Amirebrahimi,et al;《International Journal of Digital Earth》;20150424;正文第363-386页 *
洪水风险图快速制作及其三维可视化研究;王念念;《中国优秀硕士学位论文全文数据库》;20160315;C037-7 *

Also Published As

Publication number Publication date
CN109242937A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
CN111768502A (zh) 一种基于gpu加速技术的非结构网格二维洪水模拟系统
CN107741964A (zh) 一种兴趣点显示方法、装置、设备和介质
CN109388843B (zh) 一种基于vtk的桁架天线的可视化系统及方法、终端
CN114792359B (zh) 渲染网络训练和虚拟对象渲染方法、装置、设备及介质
CN107204040B (zh) 多点地质统计学建模方法及装置、计算机存储介质
CN106599140A (zh) 一种基于gis的洪水风险要素的快速处理方法
CN114547498A (zh) 基于b/s框架的水流二维流场仿真可视化方法及系统
US20240078255A1 (en) Method and apparatus for determining spatial two-tuple, computer device, and storage medium
CN116822160A (zh) 一种笛卡尔网格生成方法、装置、设备及介质
CN103279985B (zh) 一种复杂地形结构体系三维有限元模型的智能化建模方法
CN117454495B (zh) 一种基于建筑草图轮廓序列的cad矢量模型生成方法及装置
CN109242937B (zh) 将Mike流场结果文件转换成shapefile矢量文件的方法和装置
CN116051699B (zh) 动捕数据的处理方法、装置、设备及存储介质
CN111830595A (zh) 气象要素的预测方法及设备
CN111505738A (zh) 数值天气预报中气象因素的预测方法及设备
CN116342724A (zh) 热力图对象生成方法、装置以及计算机可读存储介质
CN116050231A (zh) 基于图形算法的离散元孔隙率计算与插值优化方法及系统
CN112836872B (zh) 一种基于多gpu的污染物对流扩散方程高性能数值求解方法
CN114116948A (zh) 地理矢量数据空间缓冲区分析方法、装置、设备及介质
CN114140508A (zh) 一种三维重建模型生成的方法、系统、设备及可读存储介质
CN113868518A (zh) 热力图生成方法、装置、电子设备及存储介质
CN111243680B (zh) 用于模拟原子动态的方法和装置
CN117875091B (zh) 基于适应性算法的高精度曲面建模方法的优化方法和装置
CN112632208B (zh) 一种交通流轨迹变形方法及装置
CN112950469B (zh) 高程地图的边界识别方法、拼接方法及系统、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant