刘媛媛,崔 伟
(1.松辽水利委员会水文局(信息中心),吉林长春130021;2.松辽水利委员会水文局嫩江水文水资源中心,黑龙江齐齐哈尔161005)
洪水风险依然是流域的最大威胁。全球气候变化,极端天气频发,洪涝与干旱交替威胁,洪旱并存,形势严峻。行之有效的解决途径是,在努力提高防洪抗旱工程能力的同时,大力加强防洪抗旱非工程措施的建设,充分采用现代化信息技术全面改造和提升传统的防汛抗旱效率。信息应用,数据先行。2008年起,按照水利部有关工作安排,水利部松辽水利委员会开始实施松辽流域防洪工程数据库的开发建设。2015年,进行了二期项目的开发完善,共形成5万余项工程基础数据成果,其中堤防工程5 700余项[1],形成可供平台及各业务系统调用的数据库。随着防汛工作不断细化和深入,对防洪工程基础数据的理解不断深化,对数据的需求不断提高,尤其是流域大江大河干流工程的防洪基础数据信息需要更加贴近流域防洪实况需求。2015年后,部分未进入数据库的大型工程陆续建成,需要进行核对和建设入库,对应的空间数据,也需要进一步补充修正,以满足防洪减灾工作新要求、新任务。
在开展数据收集时,进行数据名录核对、属性拆分比对,对同意义字段进行匹配,确定与属性数据基础的异同情况,确定是否存在扩展字段。确定工程数据名录及工程的空间属性和非空间属性来源,增补防洪工程数据库表结构,加载数据并发布空间数据服务。在资料收集中,着重收集技术标准和依据,贴近水利统一数据模型及代码编制要求,等等。从数据分析、空间数据处理、属性数据处理等环节,开展数据处理与发布。
收集到的数据从属性数据上看,包括“一张图”上的堤防工程代码、名称数据,防洪工程数据库的堤防数据表16张,含5 778段堤防。从空间数据上看,包括“一张图”上的堤防工程空间数据5 583段堤防。收集到需要加工处理的数据包括CAD数据及各类工程报告资料等。
工程代码主要包含2个来源:一是防洪工程数据库工程代码;二是水利“一张图”工程代码。防洪工程数据库的对象代码由国家项目办通过项目建设统一编制和下发,在项目实施进程中,由于有新增工程的存在,国家项目办及其项目承担单位对工程对象的代码进行了调整。从工程名录中选择同一地域范围的3个类型的工程进行代码比对。其中,水库工程选择了丰满水库,代码为220211021000006;堤防工程选择了二松丰满区堤防,代码为220211041000003;控制站工程选择了丰满水库控制站,代码为22000003000002,并考察代码的组成。在《防洪工程数据库表结构及标识符》中,堤防的类型码为11,水库为08,类型码没有体现在编码中[2]。第二松花江的水资源二级区代码为A030000,丰满以上的三级区代码为A030100,水资源分区代码也没有体现在编码中。经过收集项目建设期资料得到,原实施单位在代码编制中,考虑设置了2位工程类型顺序码和1位校验码,工程类顺序码01~15依次为:河流、水库、控制站,堤防、海堤、蓄滞洪区,湖泊、圩垸、水闸,跨河工程、治河工程、险点险段、机电排灌站、墒情监测站和灌区。1位校验码为取所在行政区的代码的最后1位。由此可基本确定防洪工程数据库最终的代码编制方式:6位行政区代码+2位顺序码+1位校验码+6位流水号。由于项目建设时,新增了部分工程、剔除了部分重复工程等,使得实际下发的数据成果基本满足此代码编制规则,但个别对象类有所偏差。水利“一张图”是水利部信息中心组织建设的实现水利基础数据和水利专业数据一体化管理、具备多类数据资源,以统一地图服务为依托的基础信息平台,集成整合了国家防汛抗旱指挥系统工程的各类专题数据,工程代码与水利普查数据之间具有一定的继承性[3]。水利普查工作中的堤防工程指沿江、河、湖、海等岸边或行洪区、分洪区、围垦区边缘修筑的挡水建筑物,对应到防汛抗旱指挥系统的防洪工程中,主要分为堤防和海堤[4],将防洪工程代码批量处理,去掉中间3位,保留前后各6位后,两者可进行比对。
1)数据量差异。从数据名录表看,防洪工程数据库中的堤防工程数据记录为5 778行,“一张图”中堤防空间的数据记录为5 583行,两者之间,防洪工程数据库比“一张图”多出195条堤防。
2)名录匹配。按照分析出的规则对代码进行了处理,处理后的比对结果:两者代码完全一致的有5 489组,防洪工程数据库中代码不能得到匹配的有289行,“一张图”中代码不能得到匹配的有94行。两者的代码、名称都一致的有5 133组,剩余356组不一致。对剩余的356组记录逐个对比,可分为三类:第一类为在“一张图”中名称的连接符使用了“-”,而在防洪工程数据库中连接符使用“_”;或者在“一张图”中名称的连接符使用“/”,而防洪工程数据库中的连接符使用“/”,有290组。第二类为“一张图”空间数据的名称字段因为长度不够,数据获取时就存在字符串截断的,有7行。第三类为从名称上看可能有联系,但无法确认关系的,有59行。
采用两种方式分别进行提取分析:
第一种是按照属性进行提取分析。数据导入后,软件会根据源数据情况自动将数据分为注记层、点图层、线图层、面图层、多面体图层及其他数据类的图层。堤防数据应为线数据,即polyline类,因此选择数据中的线图层,查看线图层的属性表,尝试通过属性表分析并提取堤防数据。在“layer”字段中可以看到多个与堤防相关的属性取值,包括“difang”“达标堤1”“堤防”“加固堤防”“现状堤防”和“新建堤防”,逐一对包含这些属性值的记录行进行查看。结果为:layer=“difang”时可查询到2项记录,layer=“堤防”时可查询到469项记录,layer=“现状堤防”时可查询到1项记录,但这些数据目测均非堤防数据。layer=“达标堤1”时可查询到145项记录,layer=“加固堤防”时可查询到191项记录,layer=“新建堤防”时可查询到4项记录,以上数据应属堤防数据,共可提取340段记录。
第二种是按照颜色进行提取分析。通过“颜色字段”粗读属性表,大部分提示为“堤防”的数据记录,颜色字段的属性值为“2”或者“7”,但点选后发现并非堤防数据。选中堤防线对象,读取属性表信息,可以获知“堤防”数据的颜色字段取值可能为“18”,“加固堤防”的颜色字段取值可能为“200”,“达标堤防”数据的颜色字段取值可能为“7”,并且同名堤防的对象存在于不同的CAD图幅中,且是不连续的折线,按照“颜色”属性选取,共可提取272段记录。经过比对,确定由属性中部分字段完成数据提取和整合,并通过提取结果的颜色字段作为验证。提取结果的颜色字段值大体上包含了“3”“7”和“200”等,linetype字段值大体上包含了“TRACKS”和“护岸(实线)”等,因此数据基本可取。
对提取出的数据结果进行人工查缺补漏之后,进行数据处理。首先对提取到的结果进行字段处理。源数据的工程名称属性是存储在气泡式标识中的,易于读图,但不能使用数据检索和查询。因此,要为导出数据增加“Name”,即“堤防名称”字段。由于没有其他参照资料,主要采用了人工目测的方式,逐一读取堤防工程的名称,完成名称属性的补充。其次,对数据进行坐标系统建立和转换。初步判断源文件的坐标系统为“CGCS2000_3_Degree_GK_CM_123E”,为导出结果文件设置该坐标系统,并转换到“GCS_China_Geoditic_Coordinate_System_2000”。5个 源 文 件中,有3个文件是无法得知坐标系统的,只能通过空间校正进行空间位置纠偏,存在一定的误差。得到656个堤防空间数据对象,其中松花江干流堤防数据257条、嫩江339条、第二松花江60条。按原有属性标注名称分类:“达标堤”255条,“哈尔滨市 现 有堤防”31条,“加固 堤 防”255条,“现有堤防”61条,“现状堤防”50条,“新建堤防”4条。空间数据以geodatabase数据库方式存储。
首先,对数据表进行初步地规范化处理,得到3张表、258行记录,其中:嫩江96行记录,第二松花江40行记录,松花江干流122行记录。参照防洪工程数据库二期项目中国家项目办所采取的统一措施,将堤防名称中多种格式的连接符统一为“_”,共调整32项。但“马蹄至半子山堤防”和“光荣至沿江堤”未修改。分析得出属性数据列表中的工程代码规则:1位工程类型字符+6位河流代码段+2位英文顺序码+1位占位码+1位岸别码。以古里堤防为例,D为堤防工程类型,AB0000为松花江河流代码AB00006的局部,AA为英文顺序码,0为占位码,2为右岸。河流代码段规则:松花江AB0000,嫩江AB1000,第二松花江AB1100。岸别代码规则:1为左岸,2为右岸。对数据编码进行查重,发现有46对工程代码重复。分析后得出,部分原始数据在进行工程编码时,错误地选用了非所在河流的代码,造成了代码冲突,对这部分数据进行代码段替换处理。
其次,对属性数据表参照NFCS 01-2017《防洪工程数据库表结构及标识符》进行表结构匹配,共涉及4张数据表,即名录表、堤防基础信息表、堤防水文特征和横断面信息表,共10个属性项,具体包括堤防名称(DIKE_NAME)、堤防长度(DIKE_LEN)、堤防级别(DIKE_GRAD)、设计洪水标准(DSFLST)、设计流量(DSFL)、堤顶超高(BNTPFR)、堤顶平均宽度(BNTPAVWD)、堤顶路面型式(BNTPRDTP)、归口管理部门(ADM_DEP)和属性采集时间(COLL_DATE)。在字段方面,标准中的堤防代码字段类型为VC(20),实际数据成果为C(17),此次源数据中代码均为11位字符串,因此字段类型设置为C(11)。堤防长度在标准中单位为m,而业务单位工作惯例采用km,因此数据类型从N(8,2)调整为N(7,3),单位km。归口管理部门在标准中为归口管理单位的类别,字段值为枚举类型,字段类型为C(1),而源数据中归口单位为描述性字符串,因此字段类型改为VC(100)。
通过Name字段进行匹配,258条新增数据源的堤防中,完全匹配结果有65个:嫩江21个,第二松花江26个,松花江18个。可模糊匹配结果有126个:嫩江41个,第二松花江4个,松花江81个。直接字符串比较后,完全不匹配结果有67个:嫩江34个,第二松花江10个,松花江23个。65条堤防共对应出空间数据对象316个,经过有关部门技术人员校对后,完成了全部数据匹配工作。
针对获取的补充图形资料开展了堤防空间数据补充修正工作,补充了堤防工程数据记录258行,对应空间数据656段,发布空间服务1项。考虑数据源主要来源于设计成果,且本期工作中未涉及实地校验,数据与实际建成情况和已有数据成果之间的关系,还需要进一步核实和确认。建议条件允许时,进行现场对象核查,确保资料的准确性。数据建设和完善是一项持久的工作,持续不断地应用和更新才能使得已建成的数据库保持长久的生命力。在数据补充完善过程中,需要特别注重数据标准整合和一数一源,遵照统一数据模型开展更新。