水文年鉴复刊中逐潮高低潮位表数据的修改方法
2021-05-11
(江苏省水文水资源勘测局苏州分局 苏州 215000)
1 前言
江苏省1989—2005年断刊的水文年鉴复刊过程中,由于数据导入导出或原来成果库的原因,根据南方片2.0 汇编输出的文本文件进行排版后生成的逐潮高低潮位表同原始底稿存在差异或不符合规范要求,主要表现在以下几个方面:一是部分站部分日期的潮别信息多余;二是部分站部分日期出现5个潮位;三是部分站部分日期失潮时没有按规范要求进行空行。这些问题导致最后得到的逐潮高低潮位表月统计、潮位月年统计表中的月年统计出现错误,手工逐一修改比较麻烦且不容易全部改全,这就需要通过对原始数据进行重新计算才能得到正确的结果。而复刊时只是将导出的csv 成果库文件进行导入操作或仅补录了成果数据,并没有涉及到原始数据录入、整编计算。在原始数据无法获得的情况下,如何从已有的成果库或生成的逐潮高低潮位成果表得到适合南方片2.0 整编计算的逐潮高低潮位数据,是解决上述缺陷的关键所在。
2 获取数据
以2000年复刊南方片数据库中的平湖(二)站为例,分别从数据库和成果表中获取潮位原始数据,两种方法生成的文件均以站码+年份命名。
2.1 数据库获取数据
首先以管理员权限打开企业管理器,单击菜单项“工具-SQL 查询分析器”,在对象浏览器中单击选择“2000年复刊南方片库”,接着在右侧的查询窗口内输入“Select * From HY_HLTDZ_B Where STCD='63309600' Order By TM”,该条查询语句用于在HY_HLTDZ_B 找出站码为63309600 的所有数据,并按照时间先后顺序排列,然后单击图1方框中的箭头执行以上查询命令,最后将查询出来的结果全选后复制粘贴到Excel 中进行下一步处理。
图1 执行查询示意图
在Excel 中对应第二列时间,设置单元格格式为自定义的“hh.mm”格式。接着同时选择第二列时间、第四列潮位,将其复制到记事本中,保存为csv 文件备用。
2.2 成果表获取数据
成果表数据转换成潮位数据主要采用VBA 编程语句来实现,获取的数据保存在成果表所在目录下,后缀名为csv。分析如图2中的表格式可知,逐潮高低潮位表每月数据表头包含4 行、表尾包含9 行月统计和2 行附注,表头加表尾总计有15 行,去掉这15 行,中间部分就是每月潮位数据有效行数,因此有效行数可以通过ActiveSheet.UsedRange.Rows.Count- 15 得到;潮位和时间分成3 组,分别在第3、4 列、第9、10 列和第15、16 列,因此采用循环方法获得。
图2 逐潮高低潮位表每月数据示意图
最后获取潮位数据的主要代码如下:
3 数据整编
首先在南方片2.0 中的“整编-原始整编数据录入-原始数据测站信息”里录入平湖(二)站相应的测站信息,然后设置控制信息,最后用记事本打开生成的文件,复制全部数据,将其粘贴到南方片2.0 潮位整编数据中的逐潮高低潮位(T0G04)中。
完成数据复制后,对照录入说明和底稿,按照南方片中的录入说明修改数据文件。由于数据库和成果表生成的潮位数据都是带小数点的,因此,万位信息相应的就变为百位信息,即原来南方片中输入提示是“潮位+10000”的,要改成以“潮位+100”的格式录入。
对于失潮数据的录入,同一天内,后一时间大于前一时间,跨日则在两天时间之内,这样执行“重置整编时间”命令时才不会出错。
完成以上步骤后,就可以试着对转换而来的潮位数据进行整编计算。如果生成的成果表同底稿不一致,那就还需要对转换的数据补充完善,直到同底稿完全一致。最后汇编输出排版文件,交由排版单位以整体替换错误的表项。
4 结语
本文以2000年复刊南方片数据库中的平湖(二)站为例,介绍了从数据库和成果表中获取满足南方片2.0 格式要求的潮位原始数据的方法,通过采用南方片2.0 重新整编计算,为生成满足规范要求的逐潮高低潮位表提供了一种有效的解决方案■