一种将数值模型文本网格转地理信息shp矢量网格的方法技术

技术编号:38364075 阅读:12 留言:0更新日期:2023-08-05 17:31
本发明专利技术提供了一种将数值模型文本网格转地理信息shp矢量网格的方法,读取文本格式的网格文件,获得其行数R和列数C;循环遍历每行数据,将读取到的数据解析为二维数组,数组中存放每个网格点的经纬度(X,Y),利用Python的开源工具包ogr和osr,创建ESRI Shapefile类型的面数据,并创建两个字段I,J分别对应X,Y;循环遍历二维数组,将经纬度X,Y对应存储到Shapefile的位置属性I,J中,将二维数组中的网格数据转为.shp格式的矢量数据类型;设置面文件属性,并生成shp类型的面文件;展示时,org包提供打开矢量数据的函数,或者直接在ArcGIS中打开面文件进行后续处理。本发明专利技术的有益效果是:操作方便、简单、快速,灵活性强,提升了数据的使用效率和数据的沿用性。的使用效率和数据的沿用性。的使用效率和数据的沿用性。

【技术实现步骤摘要】
一种将数值模型文本网格转地理信息shp矢量网格的方法


[0001]本专利技术涉及数值模型数据处理
,尤其涉及一种将数值模型文本网格转地理信息shp矢量网格的方法。

技术介绍

[0002]目前,数值模型应用十分广泛,在水环境研究领域,水文水质模型发挥了很大的作用,对于实现水污染防治和决策者制定相关的管理政策提供了依据。由此产生了很多的水文数据,随着水文模型技术和地理信息技术的结合越来越广泛,将数值模型的水文数据的转为可视化的地理信息数据应用分析具有非常重要的使用意义。
[0003]将水文模型产生的数据以地图的方式进行展示可以方便研究人员和读者解读,将之转为地理信息数据也更利于后续的研究分析。网格文件是进行数值模型模拟的基础。目前常见的网格数据,采用的是文本格式,如.grd,.dat,.inp等二进制文本文件格式。文本文件格式网格,不利于地理信息软件的分析和展示。但借助地理信息软件的shp文件,能方便地查看数值模型的模拟过程和结果,这就有必要将文本网格转为矢量网格数据。目前,如何将文本网格数据转矢量网格的方法研究较少,仅有部分方法提到了两者之间的转换。但是现有的实现将区域尺度的文本数据转为可视化的地图数据,实现起来操作复杂,步骤较为繁琐,而且还有一系列的函数判定,缺乏灵活性。另外在文本数据可视化展示之后也不易修改,对数据信息的展示无法改变位置,交互性较差,无法满足用户对地图的各种操作习惯。
[0004]针对上述中的相关技术,专利技术人基于数值模型产生的文本数据,基于Python技术,实现了文本网格数据和地理信息shp格式网格数据的转换。并在具体实施例中,以常用的数值模型软件delft3D产生的.grd格式的水文数据为例,介绍了将.grd数据转为.shp数据的方法,该方法操作方便,实用性强,并且具有便于后续分析的可操作性,实现了文本网格数据和地理信息数据之间的转换,方便数据交互。

技术实现思路

[0005]为了解决上述问题,本专利技术提供了一种将数值模型文本网格转地理信息shp矢量网格的方法,主要包括:
[0006]S1:获取数值模型文本网格数据,读取文本格式的网格文件,获得网格文件的行数R和列数C;
[0007]S2:循环遍历每行数据,将读取到的数据解析为二维数组,数组中存放每个网格点的经纬度(X,Y),其中X为纬度,Y为经度;
[0008]S3:创建ESRI Shapefile类型的面数据,并创建两个字段I,J分别对应步骤S2中的X,Y;
[0009]S4:循环遍历二维数组,将经纬度X,Y对应存储到Shapefile的位置属性I,J中,将二维数组中的网格数据转为.shp格式的矢量数据类型;设置面文件属性,并生成shp类型的面文件;
[0010]S5:shp文件的后续展示,可以利用org包提供打开矢量数据的函数,或者直接在ArcGIS中打开面文件进行后续处理。
[0011]进一步地,步骤S1包括:
[0012]S11:获取的网格文件采用二进制文本文件格式,利用Python打开该二进制文本文件,并逐行读取;
[0013]S12:网格文件前两行含有该数据的基本信息,包括数据来源、数据生成的时间、网格数据的行列数,网格数据的行列数在文件的第二行,将读取到的行列数储存。
[0014]进一步地,步骤S2包括:
[0015]S21:根据读取到的网格文件的行数R和列数C,创建一个R行C列的二维数组,每个数组中放两个元素,这两个元素即网格每个端点的坐标值:纬度X、经度Y;
[0016]S22:利用for循环函数,依次读取网格文件中每行每列的X值、Y值,网格文件中X、Y值的存储方式为,从第1列到第C列,首先每列存储每行的X值,然后再次从第1列到第C列存储每个端点的Y值,每列都包括R个值;
[0017]S23:读取完毕之后返回存储每个网格端点的二维数组。
[0018]进一步地,步骤S3中创建ESRI Shapefile类型的面数据主要运用Python的两个开源地理工具包ogr和osr进行矢量数据处理转换和环境搭建而成。
[0019]进一步地,步骤S3包括以下步骤:
[0020]S31:利用Python的ogr开发包的GetDriverByName方法注册驱动,为ESRI Shapefile类型;利用ogr开发包的CreateDataSource方法创建即将要转为的矢量数据;
[0021]S32:Python的osr包中SpatialReference方法用于形成一个合法的坐标系统;
[0022]S33:利用ogr包的CreateLayer()方法创建一个面图层,图层名称和矢量数据的名称保持一致;
[0023]S34:利用ogr包的FieldDefn方法为面图层创建I,J两个字段,并设置两个字段的属性,也就是字段类型,为ogr.OFTReal。
[0024]进一步地,步骤S32中的坐标系统为WGS1984坐标系统。
[0025]进一步地,步骤S4包括以下步骤:
[0026]S41:遍历循环步骤S23中存储网格数据坐标值的数组,并利用Python中ogr包的Feature方法定义图层信息,即为已创建的字段I和J赋值,I字段和J字段的值分别对应网格文件每个网格端点的X、Y坐标值,将网格文件每个网格位置和步骤S3中创建的矢量面数据对应起来;
[0027]S42:生成SHP格式的polygon数据,包括利用Python中ogr包的CreateGeometryFromWkt方法先生成一个面,再把生成的这一个面用ogr包的SetGeometry方法设置为属于步骤S41的图层中的一个面,然后利用ogr包的CreateFeature方法在步骤S41的图层中添加这个面;当循环结束时,所有的面都被添加到了图层中,最后关闭图层、关闭步骤S31创建的矢量数据;
[0028]S43:创建矢量数据的函数写好打包,在需要时根据网格文件进行调用即可。
[0029]进一步地,步骤S5是网格文件转矢量文件成功之后的后续展示,org包提供打开矢量数据的函数,在引入开发包之后,利用ogr.open()函数定义打开数据源的函数,并遍历所有的图层,然后根据需要再进行后续的操作,包括数据编辑、空间分析、制图和数据共享,
可以将水文数据用于地理信息数据中,实现数据共享。
[0030]进一步地,步骤S5中,org包提供打开矢量数据的函数,在引入开发包之后,在ArcGIS中直接打开创建的polygon文件,然后根据需要再进行后续的操作,包括数据编辑、空间分析、制图和数据共享,可以将水文数据用于地理信息数据中,实现数据共享。
[0031]相较于现有技术,本专利技术提供的技术方案带来的有益效果是:
[0032](1)提供了数值模型文本网格数据转为地理信息数据的可行性方案,充分发挥了数值模型数据的可用性,使得文本数据的处理不仅可以在数值模型中使用,还能在地理信息软件中继续研究分析;
...

【技术保护点】

【技术特征摘要】
1.一种将数值模型文本网格转地理信息shp矢量网格的方法,其特征在于:包括:S1:获取数值模型文本网格数据,读取文本格式的网格文件,获得网格文件的行数R和列数C;S2:循环遍历每行数据,将读取到的数据解析为二维数组,数组中存放每个网格点的经纬度(X,Y),其中X为纬度,Y为经度;S3:创建ESRI Shapefile类型的矢量面数据,并创建两个字段I,J分别对应步骤S2中的X,Y;S4:循环遍历二维数组,将经纬度X,Y对应存储到Shapefile的位置属性I,J中,将二维数组中的网格数据转为.shp格式的矢量数据类型;设置面文件属性,并生成shp类型的面文件;S5:shp文件的后续展示,可以利用org包提供的打开矢量数据的函数,或者直接在ArcGIS中打开面文件进行后续处理。2.如权利要求1所述的一种将数值模型文本网格转地理信息shp矢量网格的方法,其特征在于:步骤S1包括:S11:获取的网格文件采用二进制文本文件格式,利用Python打开该二进制文本文件,并逐行读取;S12:网格文件前两行含有该数据的基本信息,包括数据来源、数据生成的时间、网格数据的行列数,网格数据的行列数在文件的第二行,将读取到的行列数储存。3.如权利要求1所述的一种将数值模型文本网格转地理信息shp矢量网格的方法,其特征在于:步骤S2包括:S21:根据读取到的网格文件的行数R和列数C,创建一个R行C列的二维数组,每个数组中放两个元素,这两个元素即网格每个端点的坐标值:纬度X、经度Y;S22:利用for循环函数,依次读取网格文件中每行每列的X值、Y值,网格文件中X、Y值的存储方式为,从第1列到第C列,首先每列存储每行的X值,然后再次从第1列到第C列存储每个端点的Y值,每列都包括R个值;S23:读取完毕之后返回存储每个网格端点的二维数组。4.如权利要求3所述的一种将数值模型文本网格转地理信息shp矢量网格的方法,其特征在于:步骤S3中创建ESRI Shapefile类型的面数据主要运用Python的两个开源地理工具包ogr和osr进行矢量数据处理转换和环境搭建而成。5.如权利要求4所述的一种将数值模型文本网格转地理信息shp矢量网格的方法,其特征在于:步骤S3包括以下步骤:S31:利用Python的ogr开发包的GetDriverByName方法注册驱动,为ESRI Shapefile类型;利用ogr开发包的CreateDataSource方法创建...

【专利技术属性】
技术研发人员:王小雨王永桂
申请(专利权)人:武汉祁联生态科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1