张鸽 垢元培
(河北地矿局第二地质大队 唐山 063000)
关键字:遥感影像 Lisp 计算机辅助设计 智能
随着无人机技术与航天航空遥感技术在测绘生产中的不断普及,遥感影像在测绘地理信息行业中的应用也越来越广泛。CAD做为最常用的测绘工具之一,在测绘地形图、地籍图、剖面图及各种专题地图领域应用广泛,在小比例尺复杂地形图的绘制方面的优势更加突出,能够精确地将野外原始数据转化为室内图形数据,但CAD 的缺点是不能实现遥感影像的自动加载。因此,CAD软件已不能完全满足在遥感影像技术飞速发展背景下的测绘地理信息行业要求。为了提高测绘地理信息行业的工作效率,为了更加准确的采集遥感影像数据,借助Lisp 进行二次开发,通过二次开发实现遥感影像的智能加载技术,将有效地提高测绘地理信息行业的工作效率,使遥感影像的应用更加便捷。
遥感影像指记录各种地物电磁波大小的胶片或照片,主要分为航空遥感影像和航天遥感影像,简称:RS。航空遥感影像主要通过无人机航测获取,航天遥感影像主要通过卫星遥感技术获取。遥感影像在测绘中主要被用来制作地形图和各种专题地图。随着无人机技术与遥感技术在测绘生产中的不断普及,遥感影像的应用前景也越来越大。遥感图像在测绘中主要被用来测绘地形图、制作正射影像图和编绘各种专题图。
常见的遥感影像文件的格式如表一所示。
表一 常见遥感影像文件的格式
通过对遥感影像的数据格式对比,可以分析出文件格式为GeoTIFF 和img 的数据较大适用于GIS 等专业型地理信息软件,而tif和jpg的数据较小适用于CAD等绘图软件。
坐标信息文件是遥感影像的存储坐标数据的载体,格式主要包括tfw 和jgw。tfw 文件是存储影像坐标信息的文件,可以使用Erdas、ENVI、ArcMap等专业地理信息软件获取tif影像数据的坐标信息,并且该文件必须与影像文件存储在同一目录下。tfw的文件结构较简单,由六行数据组成的ASCII 文本文件。若影像格式为jpg,则坐标信息文件的格式为jgw。
表二 坐标信息文件tfw 或jgw 的数据格式
综上所述,若要实现CAD 中遥感影像数据的智能加载,必须同时具有遥感影像数据和影像坐标文件,而影像坐标文件中详细记录了,遥感影像的坐标信息,是此项技术得以顺利实现的关键。
计算机辅助设计指利用计算机及其图形设备帮助设计人员进行设计工作,又称CAD。CAD 在现代测绘中有着及其重要的地位,并被测绘工作者广泛的应用。CAD在测绘地形图、地籍图、权属图、剖面图及各种专题地图领域应用广泛,在小比例尺复杂地形图的绘制方面的优势更加突出,能过精确地将野外原始数据转化为室内图形数据。CAD是最常用的测绘工具之一。
由于CAD 涉及范围较大,深层次运用针对性不足,使其不能满足许多行业在深层次运用中的功能需求。因此CAD 二次开发技术的推广也就成为眼下迫切需要解决的问题[1]。
CAD在测绘图形处理、数据编辑方面具有比较好的优势,但在加载遥感影像时非常不方便。CAD不能根据遥感影像的坐标信息文件自动加载影像,目前最常用的实现方法是借助GIS 或遥感等专业软件进行影像裁剪,根据裁剪框位置进行CAD 遥感影像加载,过程复杂并且非GIS专业人员很难进行操作。
Lisp 是一种内嵌于CAD 中的表处理程序设计语言,属于解释性高级语言,它能够直接在CAD 内部运行,具有语法简洁、表达力强、函数种类多、程序结构灵活、易学易用等特点,是CAD 二次开发的理想工具[2]。
CAD虽然提供丰富的绘图和编辑命令,但有些测量方面常用的功能并不具备,可利用Lisp 语言对CAD做二次开发,开发出适应测量专业特点的新功能函数。例如在地形测量中,加固陡坎、未加固陡坎、铁路、电力线路、围墙、界址线等地貌符号和图式符号的绘制,CAD 没有提供相应的绘图命令,为此,可以编制相应的LISP程序来自动处理完成[3]。
为了更好的提高工作效率,为了更加准确的采集遥感影像数据,借助Lisp 进行二次开发,通过二次开发实现遥感影像的智能加载技术,将有效地提高测绘地理信息从业人员的工作效率。
Lisp 与CAD 结合实现遥感影像的智能载入,通过选取遥感影像文件自动在CAD 软件中加载影像文件,要求遥感影像文件和影像坐标文件必须放在同一目录下,并且文件名称相同。具体实现的主要过程如下。
选取文件格式为tif或jpg的遥感影像,代码如下:
定义遥感影像坐标文件的格式为tfw,为了方便操作,此处只定义遥感影像坐标文件类型为tfw,若坐标文件类型为jgw,只需将文件拓展名改为tfw 即可。这样可以节约程序运行内存,提高程序的运行速率。
通过读取坐标文件数据得到坐标信息的数组ArrayTfw,对照表二的数据格式,采用Lisp 语言可以得到表三信息。
表三 读取坐标文件信息的Lisp 代码
此处需要注意的是遥感影像的插入点坐标并不是左上角第一个像素的中点X、Y方向坐标,插入点应为遥感影像左上角的顶点坐标,插入点坐标代码如下:
影像插入点X 坐标:(setq RealX (-(atof(nth 4 ArrayTfw)) (float (/atof (nth 0 Array-Tfw) 2))))。即插入点X 坐标为左上角第一个像素的中点X方向坐标向左侧移动半个像素。
影像插入点Y 坐标:(setq RealY (+(atof(nth 5 ArrayTfw)) (float (/atof (nth 3 Array-Tfw) 2))))。即插入点Y 坐标为左上角第一个像素的中点Y方向坐标向上侧移动半个像素。
影像插入点坐标:(setq Point (list RealX RealY)。
影像插入点坐标的计算是实现影像自动载入技术的关键,是遥感影像载入后精度的最佳保障。
影像插入点坐标计算完毕后,需根据已有图像文件建立新的点阵式图像:
然后,获取新的点阵式图像的宽和高,代码如下:
最后,通过平移和缩放命令实现Lisp 与CAD 结合实现遥感影像的智能载入。
本文探讨了基于Lisp 的计算机辅助设计遥感影像智能载入技术,结合Lisp 语言实例代码,详细阐述了通过Lisp 二次开发实现CAD 智能加载遥感影像的全过程。通过研究解决了CAD 软件在遥感影像技术飞速发展背景下的测绘地理信息行业需求,实现了更加准确的采集遥感影像数据的技术,使遥感影像的应用更加便捷,能够有效地提高测绘地理信息从业人员的工作效率。