背景技术
城市管线作为国家的战略性市政设施资源,已经越来越受到重视。国务院,政府相关单位先后多次下文一再强调要加载城市基础设施资源的建设。虽然,在城市管线的系统建设、标准规范的制定上均有很大的成果,但是在城市管线的集成和共享上依然存在极大的壁垒,对于基于ArcGIS的城市管线的更新方法及系统严重欠缺,造成数据信息孤岛严重,对于城市管线设施的维修养护,乃至施工存在较大的阻碍。
分析城市管线数据特征,主要表现在以下方面:
1.城市管线数据的空间位置;
2.城市管线数据中,管点数据和管线数据的点线关联关系;
3.城市管线数据中属性信息;
只要保证了这三条内容,数据就具备可一致性,共享性。
传统的更新方法以及现存的发明专利,具体如下:
传统的城市管线数据更新入库方法是采用直接更新入库,然后在入库的过程中,不断的去判断,去检查,去掉重复管点,重复管线等。加入太多的控制和判断流程,造成了实现起来极其困难,并且错误率极高,且需要加入大量的人为工作。
不仅如此,在城市管线数据共享方面也不具备共享性和迁移性,尤其是在平台的迁移时,往往需要做大量的工作才可以实现,甚至不可迁移。管点管线的关联关系不能得到统一。
中国发明专利《地形图与管线数据库更新的方法》的步骤如下:
步骤S01:根据项目确定需要更新的地形图范围线;
步骤S02:从数据库中下载所述范围线内的数据,通过对范围内的空间分析,查询出范围内所有地物要素下载到本地数据文件中,在通过数据格式转换,将本地数据文件转换成外业修测的数据格式文件;
步骤S03:通过外业实地测修、内业整理数据对下载到的数据进行修改;
步骤S04:对修改的数据进行合法性检查、接边检查;
步骤S05:通过对预入库项目的数据文件进行操作类型分析,将所有数据分解成新增数据集、删除数据集、修改数据集、无变化数据集;然后将各个数据集按操作类型对数据库中的数据进行操作,并对操作过的数据保存到历史库中,这些操作的数据都保存到临时的数据版本中;
步骤S06:对预入库项目所在的范围线与所有在该项目下载时间到入库时间段内已正式入库的项目进行比对,分析出有相交的项目即为冲突项目;
步骤S07:提供所有冲突项目的范围线,与本项目的范围线做相交分析,取得相交的区域并下载该区域内的数据;
步骤S08:审核人员对上述步骤所得的数据确认无误后,通过对临时版本与数据库正式版本进行容合,从而使预入库的数据合并到数据库中。
此专利中在城市管线更新方法存在如下缺陷:
1.“通过外业实地修测,内业整理数据对下载的数据进行修改”,外业探测费用高,不能有效利用施工竣工数据或设计数据,经济效益不够。
2.在对修改数据进行合法性检查和接边检查后,该如何处理,不论是城市管线还是地形图在数据的接边处理过程中均存在非常大的数据工作量,更何况是全部的检查和修改。
3.对于如何通过比对每个要素的唯一编号是否存在以及每个要素的修改时间是否变化来进行判断要素是属于哪个数据集。显然仅仅通过时间和唯一编号是无法判断是属于新增数据集、删除数据集、修改数据集、无变化数据集的。
4.关键的问题是在城市管线更新时,无法保证更新的管线数据的唯一编码和正式库中的唯一编码是不重复,更不要说保证管线和管点的关联关系了。无法保证城市管线设施的管线和管点的关联关系,就不能更好的无缝迁移,集成和共享。
发明内容
本发明的目的就是为了解决上述问题,本发明提出基于ArcGIS的城市管线数据更新入库的方法及系统,提出基于ArcGIS的更优、更快捷的更新入库方法,且通过分析城市管线数据的内容,将城市管线更新入库的流程规范化、统一化,同时将管线和管点的属性关联关系进行梳理,为城市管线的数据共享、迁移、集成等应用提供强有力的支持。
为了实现上述目的,本发明采用如下技术方案:
基于ArcGIS的城市管线数据更新入库的方法,包括如下步骤:
步骤(1):获取源数据库数据的空间范围;
步骤(2):从目标数据库中,删除与所述步骤(1)获取的空间范围所对应的数据;
步骤(3):建立属性导入配置,根据属性导入配置,将源数据库中的数据导入到目标数据库中,并将不符合目标数据库中的数据库约束的属性数据进行清洗和过滤;
步骤(4):接边:手动校正和调整冲突范围内的城市管线数据和管点数据;
步骤(5):根据几何网络接口,建立城市管线和管点的属性关联关系:
利用ArcGIS Engine提供的几何网络开发接口,为城市管线空间数据库中的管线和管点关联属性赋值,建立城市管线和管点的属性关联关系。
步骤(6):结束:完成数据更新入库。
所述步骤(3)的步骤为:
步骤(3-1):遍历数据库的要素数据,即城市管线要素数据和管点要素数据;
步骤(3-2):在目标数据库中创建源数据的城市管线要素数据和管点要素数据的几何图形;在创建完城市管线要素数据和管点要素数据的几何图形后,在相应的管线要素数据和管点要素数据上进行赋值。
步骤(3-3):分析城市管线要素数据的属性内容,对每一条城市管线要素数据的系统维护字段赋值。
步骤(3-4):根据属性导入配置,将对应字段的属性数据过滤筛选并导入到目标要素数据中,结束。
所述属性导入配置是源数据库中的要素类的属性字段和目标数据库中要素类的属性字段的对应关系。然后在属性数据导入时,根据属性导入配置进行导入。
所述步骤(3-4)的步骤为:
步骤(3-4-1):字段对应:
建立源数据和目标数据的字段对应关系;
步骤(3-4-2):判断字段类型:
判断字段类型,如果字段类型一致,则进行步骤(3-4-6),反之进行步骤(3-4-3)。
步骤(3-4-3):进行字段类型转换:
将类型不一致的数据,进行数据类型转换;
步骤(3-4-4):判断字段类型转换是否成功,成功则进入步骤(3-4-6),反之进入步骤(3-4-5);
步骤(3-4-5):记录错误日志:
当字段转换错误时,记录转换错误日志;
步骤(3-4-6):判断字段长度:
比较源数据和目标数据的字段长度,如果源数据的字段长度小于等于目标数据,则进入步骤(3-4-8),反之进入步骤(3-4-7);
步骤(3-4-7):数据截取处理:
将多余的字段截取处理,然后进入步骤(3-4-8);同时记录数据过滤日志。
步骤(3-4-8):属性数据导入:
将源数据库中的属性数据根据属性导入配置导入到目标数据库的对应属性数据中。
所述步骤(1)的源数据库是指将要更新入库的数据,在ArcGIS平台中,所述源数据库包括个人地理数据库、文件地理数据库和SHP数据;
所述步骤(1)的空间范围指源数据库中数据的实际空间范围:数据的轮廓。
所述步骤(2)在删除数据时,删除包含于空间范围内的数据,与空间范围相交的或者相切的数据不在删除范围内。
所述步骤(3)的属性导入配置是源数据库中的要素类的属性字段和目标数据库中要素类的属性字段的对应关系。
所述步骤(4)的冲突范围指在数据更新入库时,步骤(1)中获取的空间范围的边界上的数据,所述边界上的数据是源数据和目标数据冲突的数据,冲突的数据的处理称之为接边处理。
所述步骤(3-3)的系统维护字段为唯一标识城市管线和管点的关键字段,用于验证城市管网空间位置与实际的管线属性关联信息是否一致,所述系统维护字段和管线的起始点标号相对应,体现管线和管点的属性关联关系。
所述城市管线要素数据的属性内容划分如下:
基本探测数据:对城市管网基础设施数据在探测时包含的基本信息,包括探测时的唯一标识管线和管点的物探号或内业编码;
扩展业务数据:根据企业需求而增加的业务数据信息,这些信息往往是用户自己增加的,或者委托探测公司在管线探测时额外增加的属性信息;
系统维护字段:唯一标识城市管线和管点的关键字段,同时也是城市管线和管点关联属性的体现。
所述管线和管点关联属性是管线表中存储管线端点的点号和管点表中的管点编号对应。
所述系统维护字段的结构,包括但不限于以下的结构组织方式:
分类编码+时间编码+ID序号;
说明:
所述分类编码,依据《GBT 13923-2006基础地理信息要素分类与代码》,取城市管线分类编码中的小类和子类,即后四位;
所述时间编码,取数据入库时的时间编码,精确到年月日时分。
所述ID序号,取数据入库时的在某一时刻的数据入库ID序号,假设一分钟最多导入9,999,999,999条数据。
基于ArcGIS的城市管线数据更新入库的系统,包括如下模块:
获取源数据库数据的空间范围的模块;
从目标数据库中,删除与所述的空间范围所对应的数据的模块;
建立属性导入配置,根据属性导入配置,将源数据库中的数据导入到目标数据库中,并将不符合目标数据库中的数据库约束的属性数据进行清洗和过滤的模块;
接边的模块:手动校正和调整冲突范围内的城市管线数据和管点数据的模块;
根据几何网络接口,建立城市管线和管点的属性关联关系的模块:
利用ArcGIS Engine提供的几何网络开发接口,为城市管线空间数据库中的管线和管点关联属性赋值,建立城市管线和管点的属性关联关系的模块。
完成数据更新入库的模块。
所述建立属性导入配置,根据属性导入配置,将源数据库中的数据导入到目标数据库中,并将不符合目标数据库中的数据库约束的属性数据进行清洗和过滤的模块,包括:
遍历数据库的要素数据的模块,所述要素数据包括城市管线要素数据和管点要素数据;
在目标数据库中创建源数据的城市管线要素数据和管点要素数据的几何图形;在创建完城市管线要素数据和管点要素数据的几何图形后,在相应的管线要素数据和管点要素数据上进行赋值的模块;
分析城市管线要素数据的属性内容,对每一条城市管线要素数据的系统维护字段赋值的模块;
根据属性导入配置,将对应字段的属性数据过滤筛选并导入到目标要素数据中的模块。
所述属性导入配置是源数据库中的要素类的属性字段和目标数据库中要素类的属性字段的对应关系。
所述根据属性导入配置,将对应字段的属性数据过滤筛选并导入到目标要素数据中的模块的包括:
字段对应的模块:建立源数据和目标数据的字段对应关系;
判断字段类型的模块:判断字段类型,如果字段类型一致,则进入判断字段长度模块,反之进入字段类型转换模块;
进行字段类型转换的模块:将类型不一致的数据,进行数据类型转换;
判断字段类型转换是否成功的模块,成功则进入判断字段长度的模块,反之进入步骤记录错误日志的模块;
记录错误日志的模块:当字段转换错误时,记录转换错误日志;
判断字段长度的模块:比较源数据和目标数据的字段长度,如果源数据的字段长度小于等于目标数据,则进入数据截取处理的模块,反之进入属性数据导入的模块;
数据截取处理的模块:将多余的字段截取处理,然后进入属性数据导入模块;同时记录数据过滤日志;
属性数据导入的模块:将源数据库中的属性数据根据属性导入配置导入到目标数据库的对应属性数据中。
所述源数据库是指将要更新入库的数据,在ArcGIS平台中,所述源数据库包括个人地理数据库和文件地理数据库;
所述空间范围指源数据库中数据的实际空间范围:数据的轮廓。
所述从目标数据库中,删除与所述的空间范围所对应的数据的模块在删除数据时,删除包含于空间范围内的数据,与空间范围相交的或者相切的数据不在删除范围内。
所述属性导入配置是源数据库中的要素类的属性字段和目标数据库中要素类的属性字段的对应关系。
所述冲突范围指在数据更新入库时,获取的空间范围的边界上的数据,所述边界上的数据是源数据和目标数据冲突的数据,冲突的数据的处理称之为接边处理。
所述城市管线数据的属性内容包括:
基本探测数据:对城市管网基础设施数据在探测时包含的基本信息,包括探测时的唯一标识管线和管点的物探号或内业编码;
扩展业务数据:根据企业需求而增加的业务数据信息,这些信息是用户自己增加的,或者委托探测公司在管线探测时额外增加的属性信息;
系统维护字段:唯一标识城市管线和管点的关键字段,同时也是城市管线和管点关联属性的体现。
所述管线和管点关联属性是管线表中存储管线端点的点号和管点表中的管点编号对应。
所述系统维护字段的结构,包括但不限于以下的结构组织方式:
分类编码+时间编码+ID序号;
说明:
所述分类编码,依据《GBT 13923-2006基础地理信息要素分类与代码》,取城市管线分类编码中的小类和子类,即后四位;
所述时间编码,取数据入库时的时间编码,精确到年月日时分。
所述ID序号,取数据入库时的在某一时刻的数据入库ID序号,假设一分钟最多导入9,999,999,999条数据。
所述系统维护字段为唯一标识城市管线和管点的关键字段,用于验证城市管网空间位置与实际的管线属性关联信息是否一致,所述系统维护字段和管线的起始点标号相对应,体现管线和管点的属性关联关系。
本发明的工作原理:
本发明在充分剖析城市管线的组成内容的基础上,提出一种统一通用的城市管线更新入库方法,简化了城市管线更新入库的流程,减少了大量的对比和手工操作,同时扩展了源数据的数据格式要求,不仅仅局限于探测数据,对于其他格式的数据,如SHP数据也同样支持。另一方面本发明提出一种更加科学的城市管线唯一标识的方法,避免了由于多元异构的数据源本身自带的城市管线唯一标识所带来的隐患,统一了城市管线数据更新入库集成的接口,保证了城市管线和管点的关联属性关系,为城市管线数据的移植和扩展提供了便利。
本发明的有益效果:
1.提供一种更优化的城市管线数据更新入库方式。
2.不仅在保证城市管线数据在空间位置,同时还保证管点和管线在关联属性上的关联关系。
3.在保证了城市管线数据在空间位置和关联属性上的双重保护后,为城市管线数据的无缝迁移和共享提供了强有力支持。
4.本发明重点对城市管线数据更新入库的方法进行改进,并可以用于指导生产使用的。
5.所述步骤中系统维护字段的创建是为统一多元异构数据源的管线数据的唯一标识,梳理管线和管点的属性关联关系,同时,也是为了验证城市管网空间位置与实际的管线属性关联关系是否一致的一种措施,是一种双保险。管点设施的系统维护字段除了唯一标识外,还和管线的起始点编号相对应,这也是管线和管线的属性关联关系的体现所在。
同时,系统维护字段的创建对于数据的导出,以及数据共享移植等应用推广均有重要意义。
6.为扩展数据的共享性和平台的移植性,需要兼容各种各样的数据,必须对属性数据进行过滤筛选。
7.本发明明确城市管线数据的管理的唯一性。通过制定统一的入库规范,统一编码设计,简化工作流程。
8.本发明避免了城市管线数据在批量更新时,造成大量的空间数据的对比操作,避免了城市管线设施在唯一性上的重点,重线的判断。
9、基于ArcGIS的城市管线数据更新入库的方法及系统,城市管线采用ArcGIS平台作为空间数据库管理平台,通过分析城市管线数据的本质内容组成,提出一套城市管线更新入库的规范化流程,保证了城市管线在更新入库后在空间位置以及管线和管点关联属性的双重性,为城市管线设施的数据共享、迁移、集成等提供了强有力的支持。该城市管线更新入库的规范化流程尤其解决了多元异构的来源的城市管线在更新入库上差异性,通过数据清洗,数据筛选等,保证了不同的更新数据和目标数据的一致性。
10、在管线探测数据中,采用物探号或内业编码来标识;但是,在实际应用中,随着城市管线数据的不断更新和维护,数据的来源多种多样,用于唯一标识城市管线和管点的关键字也多种多样,如果采用原数据的唯一标识(有的原数据甚至没有唯一标识),那么势必会对系统的维护带来极大的困难,且难以统一实现。
系统维护字段的提出从本质上解决了以上的问题,要求所有的源数据,不论是有唯一标识,还是没有唯一标识的;不论唯一标识的样式是否统一,在数据更新到目标数据库中时,统一采用系统维护字段来标识更新的目标数据库中的每一条要素数据。基于此,如何保证唯一标识,且具有特定意义是系统维护字段的核心。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,本发明的具体实现如下:
本发明中所有要准备导入到目标数据库的城市管线数据是准确无误的,在这里将要导入的源数据库称之为临时库,将导入的目标数据库称之为运行库。源数据库是经过数据处理以后满足入库规范,经过检查无误的可以投入生产的数据;目标数据库是已经投入生产的数据,在将源数据库导入目标数据库时,需要进行属性数据的清洗、空间数据的统一管理,同时,在入库成功后,需要通过要素编辑的方法对接边数据进行手动调整。
本发明城市管线数据入库更新模块内容,如图2所示:
具体步骤如下:
步骤(1):获取源数据库数据的空间范围
这里的源数据是指将要更新入库的数据。在ArcGIS平台中,通常以个人地理数据库和文件地理数据库为主;
最简单的轮廓范围为源数据库中的左上坐标和右下坐标,即矩形。但在实际应用中,需要更加精确,此时空间范围往往需精确到不规则多边形。在城市管线数据更新入库获取源数据库数据的空间范围,分如下情况:
如果是在新增片区范围的城市管线数据,则源数据的来源可能是探测数据成图以后的,也可能是从其他方式获取得到的。此时数据范围的获取往往是源数据库中的左上坐标和右下坐标。
如果是在已有范围内的城市管线数据更新,则源数据的来源往往是从目标数据库(即正式运行库)中裁剪下来的。在专利《地形图与管线数据库更新的方法》中的源数据范围便是这种来源。此时的空间范围需要在源数据中存储,在城市管线数据更新入库时,直接读取。
步骤(2):删除空间范围内在目标数据库中对应的数据;
这里的空间范围指步骤(1)获取的空间范围。
在删除空间范围内的数据时,仅仅删除包含于空间范围内的数据,与空间范围相交的或者相切的数据不在删除范围内;
步骤(3):将源数据库的数据根据导入配置导入到目标数据库中,并进行数据清洗。
在完成步骤(2)后,紧接着需要将源数据库中的数据导入到目标数据库中。导入时,首先需要建立导入配置,即源数据库中的要素类和目标数据库中要素类的对应关系。
要素类(Feature Class):同类空间要素的集合,如交通规划数据库中的道路、交叉口、交通小区等。要素类之间可以独立存在,也可以具有某种关系。这里的要素类是指管线图层和管点图层。
然后根据导入配置,将源数据库要素类中的要素导入到目标数据库中对应的要素类中。在要素导入的过程中一方面要注意唯一编码的增加;另一方面需要对要素的属性数据进行清洗。要素导入过程详见图3:
步骤(3-1):遍历源数据库的要素数据,即城市管线要素数据和管点要素数据。
步骤(3-2):在目标数据库中创建源数据的要素数据的几何图形。
在将源数据库中的城市管线要素数据和管点要素数据导入到目标数据库中时,首先第一步需要创建该要素对象的几何图形,然后才是在创建后的几何对象上进行相关的属性赋值。
步骤(3-3):根据城市管线数据的本质内容组成,在每一条要素上增加系统维护字段值。
在完成步骤(3-2),即创建该要素对象的几何图形后,首先需要对该要素对象增加系统维护字段值。
步骤(3-4):根据属性导入配置,将对应字段的属性数据过滤筛选并导入到目标要素数据中,详见图4所示。
所述城市管线要素数据的属性内容包括:
基本探测数据:对城市管网基础设施数据在探测时包含的基本信息,包括探测时的唯一标识管线和管点的物探号或内业编码;
扩展业务数据:根据企业需求而增加的业务数据信息,这些信息往往是用户自己增加的,或者委托探测公司在管线探测时额外增加的属性信息;
系统维护字段:唯一标识城市管线和管点的关键字段,同时也是城市管线和管点关联属性的体现。
如图6所示,所述步骤(3-3)的系统维护字段的结构,包括但不限于以下的结构组织方式:
分类编码+时间+ID;
说明:
所述分类编码,依据《GBT 13923-2006基础地理信息要素分类与代码》,取城市管线分类编码中的小类和子类,即后四位;
所述时间编码,取数据入库时的时间编码,精确到年月日时分。
所述ID序号,取数据入库时的在某一时刻的数据入库ID序号,假设一分钟最多导入9,999,999,999条数据。
如:系统维护字段值为:4201201403211201000000001,表示城市污水管线设施检查井在2014年03月21日12时01分录入的第一条数据。
所述ArcGIS Engine是面向GIS项目程序开发人员的一套完备的嵌入式GIS组件库和工具库,是一个用于开发新应用程序的二次开发功能组件包。
所述ArcGIS Engine提供的几何网络开发接口是指在ArcGIS Engine开发包中包含的用于几何网络开发的接口,包括IGeometricNetwork,以及其包含的方法和属性。
如图4所示,所述步骤(4)具体步骤如下:
步骤(1):字段对应:
在进行属性数据过滤筛选时,首先需要建立源数据和目标数据的字段对应关系。
步骤(2):判断字段类型:
判断字段类型,如果字段类型一致则进行步骤(6),反之进行步骤(3)。
步骤(3):进行字段类型转换:
需要将类型不一致的数据,进行数据类型转换。
步骤(4):判断字段类型转换,成功则进入步骤(6),反正进入步骤(5)。
步骤(5):记录错误日志:
当字段转换错误时,需要记录转换错误日志。
步骤(6):判断字段长度:
比较源数据和目标数据的字段长度,如果小于等于则进入步骤(8),反之进入步骤(7)。
步骤(7):数据截取处理:
将多余的字段截取处理,然后进行属性数据导入。
步骤(8):属性数据导入:
步骤(9):要素数据导入结束,并保存编辑:
要素数据导入结束后,需要将导入后的数据进行保存,并结束编辑状态。
步骤(4):接边:手动校正和调整冲突范围内的数据。
在将源数据更新入库到目标数据库后,需要根据实际情况,手动校正和调整冲突范围内的管线和管点数据。
步骤(5):建立城市管线和管点的属性关联关系。
在将源数据与更新导入到目标数据库,并手动校正到数据正确后,利用ArcGISEngine提供的几何网络开发接口,为城市管线空间数据库中的管线和管点关联属性赋值;
所述ArcGIS Engine是面向GIS项目程序开发人员的一套完备的嵌入式GIS组件库和工具库,是一个用于开发新应用程序的二次开发功能组件包。
所述ArcGIS Engine提供的几何网络开发接口是指在ArcGIS Engine开发包中包含的用于几何网络开发的接口,包括IGeometricNetwork,以及其包含的方法和属性。
步骤(6):结束,完成数据更新入库。
本发明中:
要素类(Feature Class):同类空间要素的集合,如交通规划数据库中的道路、交叉口、交通小区等。要素类之间可以独立存在,也可以具有某种关系。
要素数据集(Feature Dataset):由一组相同空间参考(Spatial Reference)的要素类组成。
管线和管点关联属性:在管线管点关联属性数据中,管线表中存储管线端点的点号,通常叫起始点号和终止点号(不限于此),和管点表中的管点编号对应。如图3所示。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。