读书人

GDAL对空间数据的治理

发布时间: 2013-02-24 17:58:56 作者: rapoo

GDAL对空间数据的管理

使用GDAL可以很方便的对空间数据进行管理(这里的管理主要是指复制、移动和删除)。有人可能会说这个功能不用GDAL也能很方便的实现,其实不然。很多的空间数据不是由一个单一的文件组成,而是由一些列文件共同组成,相信大家都对Erdas的img格式比较熟悉吧,这种图像格式,对于小图像来说一般常用就只有两个,那就是img和rrd格式,如果对于一个超级大的img格式,那么一个数据可能就会有四个文件组成,后缀名分别是img、ige、rrd、rge。如果对这个数据进行复制的话,你需要写四个复制语句,同样对于矢量数据中最常用Shapfile格式,一个shp文件最少也有有三个文件组成shp、shx、dbf,常用的还有prj等其他的。对于这样的数据进行管理,还是比较繁琐的,好在GDAL中提供了相关的函数,只要一个函数,该文件所有的相关文件都会被进行管理。

下面分别对栅格数据和矢量数据进行说明。主要用到的类就是两个驱动类,GDALDirver(http://www.gdal.org/classGDALDriver.html)和 OGRSFDriver(http://www.gdal.org/ogr/classOGRSFDriver.html)。

一、栅格数据格式

1、复制数据

用到的函数是CopyFiles,函数原型是:

CPLErr GDALDriver::Rename(const char *pszNewName, const char *pszOldName)

参数pszNewName是移动后新栅格数据的路径,pszOldName是原始图像数据的路径。比如我要移动一个img文件从【C:\Test.img】到【D:\New.img】,可以这样写:

#include "boost/algorithm/string.hpp"#include "boost/filesystem.hpp"using namespace boost;using namespace boost::filesystem;

4楼xiaosebi11112小时前
踩踩
3楼goodnew昨天 14:06
不错,学习学习
2楼netying前天 19:31
多谢楼主!nn想请教楼主:我初次接触gdal,我有这样一个需求,就是将一个BMP文件转换成GeoTiff文件,我已知这个bmp图像的经纬度范围,其实就是从google maps上截图下来的。用gdal能做到吗?
1楼xiaosebi1111前天 19:23
知道我是谁吧
Re: liminlu0314前天 19:23
回复xiaosebi1111n呃,你的名字这么拉风,还能不知道

读书人网 >编程

热点推荐