许伟杰,魏 瑄*
(1.广东省国土资源测绘院,广东 广州 510500)
外业核查是基础性地理国情监测(以下简称“国情 监测”)的一个重要环节,是对内业无法判读图斑的补充和检验内业判读准确性重要手段。在外业核查过程中,为了覆盖所有新增地类,外业轨迹经常是会跑遍整个测区[1]。除此以外,外业核查人员还要兼顾对每天采集的数据做分析和处理,工作量大,外业工作往往需时至少一周到半个月。由于2019 年广东省第三次全国国土调查(以下简称“三调”)外业核查时间节点与2019 年国情监测的时间刚好重合,并且三调的外业范围覆盖了广东省陆地全境,核查成果也已通过逐级检查,成果数据真实可信,笔者经过分析,发现三调外业核查成果包含了地理国情监测基础性监测待业核查的所需信息,可以将其充分利用起来,按照国情监测外业成果的提交要求,转换成国情监测的外业成果,从而大大减少国情监测外业核查的工作量。
国情监测外业成果数据包括拍摄点的位置、方位角、照片以及截取的影像样本,因此制作国情监测的外业成果需要对多种不同数据的处理,如影像数据、矢量数据、照片等,若单纯依靠人工去处理,不仅步骤繁琐,效率低下,同时也容易产生人为错误,比如字段漏填、错填,填写不规范等等的问题,造成成果质量难以保证,往往需要多次返工[2]。此外,三调的外业核查成果外业核查缺失了重要的地物点信息,而地物点对于保证截取影像样本时保证地物位于影像样本中心具有关键作用。本文针对以往制作国情监测外业核查成果的方法中出现的弊病,利用FME 和Python技术,依据ETL 的工作流思想[3],设计出一套外业数据转换流程处理方法,大大减少了人工的参与,实现了对影像、矢量数据属性的自动化读取填写、地物点计算、影像样本的自动裁切、数据入以及点位标记处理,成功将三调外业核查成果批量转换为国情监测外业核查成果。
国情监测对外业轨迹的提交要求是外业路线以实时定位设备输出的轨迹路线为基础,根据外业的实际有效行程和实地照片拍摄位置的分布,删除重复线段和非外业作业区的无效路段,编辑漂移点和断点,形成客观反映外业实际作业区的行程线路。从对三调数据的外业轨迹数据分析中,发现三调数据包含大量重复线段和无效线段,因此需要对三调的外业轨迹进行抽稀和简化才能符合国情监测外业轨迹的提交要求,如图1 所示。
图1 三调外业轨迹
国情监测对地面照片的要求是:地面照片尽可能使用精细模式保存,总像素数量应在200 万像素以上。由于数据量原因,不宜采用过大的总像素数量,一般控制在1 000 万像素以下,文件名按照“PH”+“YYYYMMDDHHMMSS”+“DDDMMSS”+“DDMMSS”+“DDD”的形式保存,其中“PH”是固定前缀,“YYYYMMMDDHHMMMSS”是拍摄时间,“DDDMMSS”和“DDMMSS”分别对应拍摄点的经度和纬度,最后一个“DDD”是照片的拍摄方位角。笔者分析了所获得的三调照片,分辨率都是1 920×1 080,可以满足国情监测对于总像素的要求,但是三调照片的命名格式是“Photo_时间戳_用户Id”,因此需要进行转换处理。
三调外业与国情监测外业最大的不同点就在于,国情监测外业需要提交遥感影像解译样本,这部分数据无法从外业核查中直换生成,需要在外调拍照时,通过平板操作记录下所拍地物的地物点,然后在内业根据地物点进行裁图、编辑、入库等处理来生成。另外,如表1 所示,笔者通过对比三调与国情监测外业拍照点的数据格式,发现三调外业既不记录地物点,也不记录拍摄距离,因此无法直换运用坐标正算公式将地物点反算出来。所以为了能够生成正确的地物点,需要先获取拍摄距离。
表1 外业外业拍照点字段比较
根据更新后的地表覆盖数据库,确定今年度国情监测地表新增的地类,然后将三调的拍照点数据和本年度国情监测地表数据导入ArcMap 软件中进行套合[4],通过对三调拍摄的外业照片、对应的拍照点位置和地类编码进行人工比对,将照片、点位信息以及地类编码对应上的拍照点挑选出来,填入地类编码。最后把挑选好的拍摄点提取出来,如图2 所示。
图2 样本点数据
在三调外业轨迹的基础上,叠加挑选的三调拍照点及国情监测影像底图,沿着影像中的道路和有三调轨迹的区域,绘制线段将各个拍照点连换起来,如图3 所示。
图3 绘制路线连接各个拍照点
通过缓冲区工具将绘制的轨迹外扩10 m,然后用裁剪工具,用缓冲的面裁取三调的原始轨迹,再对裁取出来的原始线段进行简化抽稀,形成外业轨迹[5]。
地物点是外业拍照人员在外业拍照时的假定点。地物点通过拍摄地面照片时,相机所在位置到地面与被摄景物中的主体地物之间的直线距离,利用坐标正算[6]的方法可将地物点的坐标计算出来,计算公式如下:
式中,x地为地物点的横坐标;y地为地物点的纵坐标;x拍为拍摄点的横坐标;y拍为拍摄点的纵坐标;α方位角为相机拍摄的方位角;d为拍摄距离。
根据国情监测影像样本的要求:影像样本应尽可能把地面照片拍摄的主体地物置于影像的中间部分,同时保证拍摄点也位于遥感影像实例范围内。但在三调外业核查数据中,外业点只记录了拍照点的数据,很多时候拍照点并不一定在拍摄的主体地物类。若以拍照点为中心裁取影像,则无法总是满足主体地物置于影像中间的要求。因此,为了便于后面截取影像样本,则需要找出距离拍摄点200 m 范围内且包含在主体地物内部的地物点作为影像样本的中心点。200 m 是国情监测外业核查技术规定中推荐的最大拍摄距离,由于在挑选图斑时已考虑了拍摄距离,即只挑选目视距离大概在200 m 内的照片,因此可直换用200 m 作为拍摄距离的最大值,并以此作为计算影像样本的中心点的重要参数。拍摄距离的计算通过计算坐标正算公式,以拍照点为中心,沿着坐标方位角的方向生成一条200 m 的线段。换着通过叠加分析[7],获取该线段经过的第一个与拍摄点所记录的地物编码一致的图斑作为该拍摄点所拍照片的主体地物并计算拍照点到该图斑的距离。计算拍摄距离的操作通过FME 来完成,具体处理流程如图4 所示。
图4 求取拍摄距离的处理流程
裁剪操作以地物点为裁剪范围的中心,根据裁取框的分辨率大小,将点的四至范围外扩一定长度,作为影像样本的裁切范围。这里要注意的是,裁剪的影像样本在分辨率上应当优先选择511×511,但如果拍摄距离过大超出511×511 的显示范围,则需要将分辨率扩大至1 023×1 023。裁取的分辨率与拍摄距离满足这样的规律:由于裁取的影像以地物点为中心,地物点占用了一个像素,因此设定了裁取的分辨率与拍摄距离的判断方法。如果拍摄距离换算成行列后不超过255 个像素宽度,即511×511 图幅的一半宽度,则可采用511×511 分辨率的裁取框,否则,需要将分辨率提高至1 023×1 023。确定好裁取框的分辨率后也就确定了四至外扩的长度,若分辨率为511×511,则以地物点为中心,往上下左右四个方向延长像元大小(单位:m);若分辨率为1 023×1 023,则以地物点为中心,往上下左右四个方向延长像元大小(单位:m)。
裁切影像后,还需要将拍摄点以及视野范围(视场角)在影像样本上表示出来。首先是定位拍摄点在像片的位置,这一步可以通过仿射变换[8],将拍摄点的投影坐标转换为以像片左上角为坐标原点的行列坐标。确定好拍摄点后,根据公式(等效焦距即照片拍摄时的焦距,可通过读取照片的exif 信息来获取),计算出视角v,然后利用已知的拍摄点的方位角A,求出视野范围左右两条边界线的方位角a1=A–0.5v和a2=A+0.5v,由方位角a1,a2和拍摄点投影坐标可以算出两条边界线的斜率k1,k2,常数b1,b2,再通过仿射变换,计算出拍摄点半径50 个像元范围内的像素点的投影坐标(xi,yi)并代入直线方程进行计算[9],得出该直线经过的所有像素,最后把视场角和中心点像素的像素值修改为0,形成最终结果如图5、6 所示。
图5 十字标志
图6 十字标志与视野范围线
上述步骤通过FME 来实现较为复杂,因此笔者改为使用Python 语言,借助第三方开源影像读写库来修改影像像素值。下面是绘制十字标线的代码片段:
遥感影像解译样本数据库由记录地面照片属性及文件名的 PHOTO 数据表、记录遥感影像实例属性信息及文件名的 SMPIMG 数据表、以及反映地面照片和遥感影像实例对应关系的关系表 PHOTO_IMG3 个表格构成。PHOTO 数据表的数据从三调拍摄点数据表中提取出来,SMPIMG 数据表的数据从裁取的影像中读取,PHOTO_IMG 数据表是PHOTO 数据表与SMPIMG 数据表的外键连换表,只存储另外两表的主键[10],处理时的工作流程如图7 所示。
完成生成影像样本数据库后,加上之前裁取的影像样本和经过挑选的外业照片,将数据按国情监测的提交要求,将影像样本放入SMPIMG 文件夹,外业照片放入PHOTO 文件夹,将SMPDATA.mdb 放入SMPDATA 文件夹,即完成整个三调外业核查成果转换至国情监测外业数据的工作。
图7 生成样本数据库的处理流程
将原始调绘数据、原始拍照数据、外业轨迹、遥感影像样本和其他外业资料汇总,按相关轨迹组织好文件,即可作为国情监测外业成果提交,如图8 所示。
图8 成果汇交组织形式
相比以往全人工参与的外业成果制作方法,利用已有的三调外业核查成果,结合FME 数据处理平台和Python 语言等技术手段,可以批量、快速生成各个县的国情监测外业成果,不仅实现了对现有数据资源的有效利用,让原本短则一周、长则一个月的国情监测外业核查缩短至几天时间,节省了成本,提高了工作效率。此外,由于新方法尽可能地减少人为参与制作的过程,作业人员只需要完成挑选拍照点的工作,然后把需要用到的数据按指定形式整理好就可以利用流程进行自动化的外业成果制作,避免了原有制作方式会出现的各种返工、重复检查、纰漏、错误填写等问题。
本文提出了一种利用现有的三调外业核查成果转换成符合国情监测提交要求的外业成果的方法。利用FME 生成地物点以及截取样本影像,同时使用Python语言标记样本拍摄点及视野范围,运用数据库链换整合形成外业成果数据库。整个过程中,仅第一步挑选样本点需要人工手动去完成,其余则自动在搭建好的FME 平台及Python 工具上进行数据处理转换和样本影像的裁剪。本方法基本实现了流程的自动化处理,转换过程不再需要人工干预,避免出现不必要的人为错误,提高了生产效率。
三调外业的调查范围具有全覆盖的特性,面对如此庞大的外业数据,笔者只使用了其中很小一部分用于制作本年度的基础性地理国情监测外业核查成果。基于本文提供的转换方法,除了应用于基础性地理国情监测外,还能将这套三调的数据应用于其他专题监测项目的外业成果制作上面去。虽然不同监测项目对外业成果会有不同的细节要求,但整体上还是大同小异。本方法可根据实际需求,通过调整部分模块位置和参数来完成转换任务。转换的成果除了可以作为数据成果提交外,即使在时相上不满足提交要求的情况下,也可用于项目前期作分析参考用,实现资源复用和数据成果共享。