GDAL交流
文章平均质量分 73
GDAL is a translator library for raster geospatial data formats.
箜_Kong
2008年毕业于中国矿业大学地理信息系统专业。长期从事遥感图像处理算法和软件的编写工作。对于遥感图像的常用处理软件有很深入的了解。同时对GDAL有着较深入的理解。长期承接各种遥感图像处理算法程序的编写。
展开
-
GDAL读取jpg文件中GPS坐标信息
在目前很多相机都支持在拍照的时候保留GPS信息,这些信息一般都是存储在jpg图像的exif信息中。下面内容主要说明如何使用GDAL库来读取jpg图像中的GPS信息并解析经纬度坐标。 首先,还是最常用的工具,gdalinfo,来查看这个GPS信息到底在什么地方。下面是使用gdalinfo输出的信息,图1为截图。Driver: JPEG/JPEG JFIFFiles: C:\Users\LiMinl原创 2013-04-26 21:18:44 · 7030 阅读 · 0 评论 -
GDAL书籍
GDAL的书籍经过快两年的编写修改,终于出版发行了,希望有需要的同学可以到下面的网址进行购买。(当当网暂时缺货) 购买地址: 亚马逊:http://www.amazon.cn/GDAL%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90%E4%B8%8E%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97-%E6%9D%8E%E6%B0%91%E5%BD%9原创 2014-03-10 19:49:11 · 10047 阅读 · 32 评论 -
使用GDAL库中的RPC校正问题
最近将GDAL库更新至1.11版本之后,发现之前写的RPC像方改正模型校正的结果偏差特别大(更新版本之前结果和PCI处理的结果一致)。所以初步判断是GDAL库的bug,经过各个参数修改发现原来是指定的DEM采样方式导致的。 当指定DEM的采样方式为最邻近时,校正结果偏差很大,当DEM采样方式为双线性采样和三次立方卷积采样时,处理的结果与之前的结果一样。截图如图1所示,红色区域为对比区域,如图2所示原创 2014-07-01 20:32:00 · 8165 阅读 · 28 评论 -
GDAL书籍中删除数据勘误(C#语言)
GDAL书籍中关于C#版本删除数据的时候,不能完全删除数据,由于我对C#不了解导致代码有点问题,非常感谢@Bingoyin指出并给出修改方案。此外对于栅格图像的删除、重命名,矢量数据的删除和重命名都有同样的问题,修改方式也都一样,具体如下。 以栅格数据为例,具体修改为: static void RasterDelete(string strFile) {原创 2015-01-15 21:31:54 · 3349 阅读 · 3 评论 -
GDAL打开mdb文件失败解决方法(二)
上一篇http://blog.csdn.net/liminlu0314/article/details/53433014博文中说到,可以通过配置项来解决mdb文件打开失败的问题。该问题主要是在64位的程序中会出现。仔细查看gdal的代码,发现在源码中已经针对这个问题进行了修改,但是测试发现修改的不彻底。 具体的bug信息参考http://trac.osgeo.org/gdal/ticket/559原创 2017-02-17 13:30:41 · 6574 阅读 · 0 评论 -
GDAL写入FileGDB中文属性乱码问题
GDAL库中提供了两个驱动来访问FileGDB格式,一个是基于ESRI提供的FileGDBAPI库来访问gdb,支持读写,另外一个是gdal自己写的OpenFileGDB驱动来访问,只支持读,不支持写。 本文主要是针对ESRI提供的FileGDBAAPI库的驱动来说。只用FileGDB驱动创建gdb时,再写入中文属性值时,会出现乱码,下面给出解决方案。 在FileGDB的文件夹中,有个FGdbUt原创 2017-02-17 13:47:18 · 9424 阅读 · 21 评论 -
GDAL库读取Envisat ASAR数据
GDAL库本身就可以读取Envisat的图像数据,具体链接为:http://www.gdal.org/frmt_various.html#Envisat。但是对于ASAR传感器的数据来说,GDAL在处理的时候将入射角数据没要进行处理,也就是通过GDAL提供的接口无法获取到这个信息。ASAR数据进行辐射定标的时候,入射角信息是必须要的信息,如果通过GDAL库来对ASAR数据进行辐射定标,那么因为没法获原创 2017-03-15 17:24:11 · 4255 阅读 · 17 评论 -
GDAL C#版本 "安全透明方法"问题解决方案
之前写过一篇关于再C#中调用GDAL库出现OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常的解决方案,博客地址见下: http://blog.csdn.net/liminlu0314/article/details/7506101但是解决完该问题之后,还会出现下面的问题: “安全透明方法“OSGeo.GDAL.Gdal.AllRegister()”尝试通过方法“OSGeo原创 2017-01-05 11:28:39 · 5198 阅读 · 2 评论 -
GDAL库进度信息编写示例
GDAL进度信息编写GDAL库中的算法以及读写数据的时候一般都会提供两个与进度信息相关的参数,下面分别进行描述:GDALProgressFunc pfnProgressvoid * pProgressArgGDALProgressFunc pfnProgressGDALProgressFunc pfnProgress这个是一个回调函数,GDALProgressFunc的定义如下所示:typed原创 2016-03-30 21:04:32 · 4253 阅读 · 2 评论 -
GDAL创建图像提示Driver xxx does not support XXX creation option的原因
GDAL Creation Option does not support原创 2016-04-07 19:32:07 · 6473 阅读 · 1 评论 -
GDALWarp设置GDALWarpOptions::dfWarpMemoryLimit过大时处理失败
使用GDALWarp写了一个裁切图像的算法,在小内存的电脑没事,大内存的电脑就处理失败(32位也没问题),查看GDAL的日志发现下面的错误信息:Fri Apr 08 17:39:02 2016: GDAL: GDALOpen(E:/Out/TRIPLESAT_1_PAN_L1_20160330024710_000315VI_005.tif, this=000000000508EB40) succee原创 2016-04-08 21:04:39 · 5643 阅读 · 1 评论 -
使用GDAL进行RPC坐标转换
使用GDAL进行RPC坐标转换对于高分辨率遥感卫星数据而言,目前几乎都提供了有理函数模型(RFM)来进行图像校正(SPOT系列提供了有理函数模型之外还提供了严格轨道模型)。对遥感影像进行校正目前最常用的就是使用有理函数模型来进行校正。有理函数模型的计算公式网上可以搜到,同时我之前的博客中也有比较详细的说明,可以参考这篇博客http://blog.csdn.net/liminlu0314/articl原创 2016-08-24 17:05:07 · 12224 阅读 · 65 评论 -
GDAL打开mdb文件失败解决方法
使用GDAL打开mdb文件时提示下面错误信息:ERROR 1: Unable to initialize ODBC connection to DSN for DRIVER=Microsoft Access Driver (*.mdb);DBQ=C:\Users\SCRS-Minlu\Desktop\ZHONGWEI.MDB,[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且原创 2016-12-02 11:30:46 · 7855 阅读 · 3 评论 -
编译GDAL支持ArcObjects
编译GDAL支持ArcObjects。 首先修改nmake.opt文件中对应的ArcObjects,修改后的如下所示:#uncomment to use ArcObjectsARCOBJECTS_ENABLED = YESARCOBJECTS_PLUGIN = YESARCOBJECTS_SDK = C:\Program Files (x86)\ArcGIS\Desktop10.2\com原创 2015-03-23 22:59:02 · 2659 阅读 · 0 评论 -
编译GDAL支持MySQL
GDAL支持MySQL需要MySQL的库才可以,编译很简单,修改nmake.opt文件中对应的MySQL的库的路径和lib即可。 nmake.opt文件中397行左右,如下:# MySQL Libraries# NOTE: Need /MT instead of /MD, also enable /EHsc switch. #MYSQL_INC_DIR = D:\Software\MySQLS原创 2015-03-28 14:49:54 · 2583 阅读 · 2 评论 -
GDAL 2.0版本RPC校正速度测试
GDAL2.0版本的更新日志中提到了对RPC校正的优化,今天测试了一下,发现提升的速度还是蛮快的,测试的数据是一个IRS-P5的数据。单线程测试首先使用一个线程进行测试,使用下面的批处理进行运行,将OPENCL禁用,测试结果见图1.echo %time% F:\gdal1112\gdalwarp.exe -rpc -t_srs WGS84 -r cubic -wm 1024 -et 0 -wo原创 2015-07-09 21:57:10 · 3279 阅读 · 3 评论 -
GDAL库三个读取Jpeg2000格式驱动测试
GDAL库中提供了四种读取Jpeg2000的驱动读取效率测试。原创 2015-07-21 20:36:36 · 6225 阅读 · 12 评论 -
GDAL库扩展Landsat系列MTL文件格式支持
Landsat系列卫星提供的数据,一般都是每个波段一个tif文件,然后外加一个MTL.txt的元数据文件,使用gdal可以直接打开每个波段的tif文件,但是有时候想在打开tif数据的同时能够自动读取MTL文件里面的元数据信息,这个时候就只能自己再解析这个文件了。比较麻烦,下面就是针对这种情况,直接在gdal库里面扩展一种支持landsat的mtl的格式,直接打开mtl文件的同时自动打开tif数据以原创 2015-09-23 19:22:10 · 9555 阅读 · 2 评论 -
GDAL不支持创建PCIDSK的面状矢量格式
最近在使用GDAL创建PCIDSK格式的矢量数据,发现创建点和线的矢量数据都没问题,创建面状的只有属性表没有图形。在GDAL官网说明也写的是支持的,地址为:http://www.gdal.org/frmt_pcidsk.html。 实在没办法,翻看GDAL源码才发现,SetFeature的时候,只写了wkbPoint和wkbLineString类型,其他的加了句Debug代码如下:原创 2015-01-07 19:56:06 · 1873 阅读 · 0 评论 -
GDAL使用插件方式编译HDF4、HDF5以及NetCDF的bug修改
GDAL库中提供了很方便的插件机制来扩展支持的数据格式,比如HDF4、HDF5、NetCDF、FileGDB、原创 2014-11-20 17:59:24 · 4528 阅读 · 9 评论 -
从二进制数据流中构造GDAL可以读取的图像数据(C#)
在上一篇博客中,讲了一下使用GDAL从文件流中构造一个GDAL可以识别的数据来ji原创 2014-11-20 17:32:09 · 3401 阅读 · 7 评论 -
从二进制数据流中构造GDAL可以读取的图像数据
在很多时候,我们的图像数据往往都不是文件方式存储在磁盘上,而是可能从网络或者数据原创 2014-10-18 11:18:34 · 4585 阅读 · 16 评论 -
修改GDAL库支持IRSP6数据
使用GDAL库发现不能打开IRSP6的数据,不过看GDALg原创 2014-09-10 20:33:34 · 2084 阅读 · 2 评论 -
编译GDAL使用最新的HDF库配置文件
HDF库最新版本中的动态库以及目录结构都发生了变化,导致按照之前的博客进行编译GDAL时,会出原创 2014-07-22 23:07:35 · 4450 阅读 · 4 评论 -
GDAL1.11版本对SHP文件索引加速测试
GDAL库中对于矢量数据的读取中可以设置一些过滤器来对矢量图形进行筛选,对于Shapefile格式来说,如果数据量太大,设置这个过滤器时间慢的简直无法忍受。好在GDAL1.10版本开始支持读取Shapefile文件的空间索引文件(.sbn / .sbx)来进行加速。下面就同样的数据同样的代码来对GDAL1.9.0和GDAL1.11.0两个版本进行测试时间,比较下速度(看到结果你肯定会张大嘴巴的~~原创 2014-07-20 19:27:33 · 4937 阅读 · 11 评论 -
C#调用GDAL算法进度信息传递
GDAL库中提供了很多的算法,同时也提供了进度条的相关接口,本篇博文主要讲述如何在C#中调用GDAL库的算法并将进度信息进行传递出来。原创 2014-05-01 15:37:37 · 4276 阅读 · 10 评论 -
GDAL中MEM格式的简单使用示例
GDAL库中提供了一种内存文件格式——MEM。如何使用MEM文件格式,主要有两种,一种是通过别的文件使用CreateCopy方法来创建一个MEM;另外一种是图像数据都已经存储在内存中了,然后使用内存数据块来构造一个MEM。第一种方式比较简单,这里主要说明下第二种方式。 首先看看MEM的说明文档,地址为:www.gdal.org/frmt_mem.html。从里面我们可以看到MEM文件支持几乎所有的原创 2014-02-21 18:21:42 · 5435 阅读 · 14 评论 -
使用C#版本GDAL读取复数图像
GDAL的C#版本虽然在很多算法接口没有导出,但是在读写数据中的接口基本上都是完全导出了。使用ReadRaster和WriteRaster方法来进行读写,同时对这两个方法进行了重载,对于常用的数据类型可以不用指定数据类型直接进行读取即可。但是对于复数类型就有点复杂了。下面就针对GDAL如何来读取复数数据来进行一个简单的说明。 我们知道,在使用GDAL读取数据的时候使用的是ReadRaster这个函原创 2014-02-18 20:52:38 · 5442 阅读 · 3 评论 -
GDAL库中WFS服务中含有中文不能获取数据的问题
GDAL库中目前提供了对WFS服务发布的数据进行获取,目前发现对于中文的服务名称或者图层名为中文,GDAL不能正确识别。通过调试发现,其原因有下面两点: 1、输入的URL路径没有使用UTF8编码而从网页获取的内容全部都是由UTF8编码组成,造成图层名使用EQUAL进行比较的时候出现错误。 2、输入的URL路径使用%开始的UTF8编码,而GDAL没有对%的转义编码进行转义导致,GDAL直接认为%XX原创 2014-01-18 11:43:20 · 2910 阅读 · 0 评论 -
使用GDAL将下载的Google卫星图像转为带坐标的tif
网上有很多下载Google地图的卫片的软件,一般下载下来的图像都是jpg格式的,另外附带一个坐标信息的描述文件。这样的数据不能直接拿来在遥感或者GIS软件中使用,因为图像里面没有投影和坐标信息,所以就需要将这个描述文件中的坐标信息导入到影像中。下面就如何使用gdal提供的工具来完成这个功能,当然也可以自己写程序。首先看看输入数据都有什么,这里只有一个jpg图像和一个txt文件,jpg图像如下,原始原创 2013-09-11 20:46:49 · 13415 阅读 · 21 评论 -
Linux下使用GDAL进行开发(automake使用)
首先写三个源代码文件,分别是GDALTest.cpp、Fun.cpp和Fun.h,将这三个存放在一个叫GDALTest的文件夹中,然后打开终端,切换到该目录,如下图所示(注:这个图是最后截图的,所以文件夹下面有好多文件,开始应该就只有三个)。 三个文件的内容分别如下,这篇文章主要还是想试试使用automake来生成Linux下的编译脚本,所以就写了三个文件,如果想直接用gcc编译的话,直接写一个c原创 2013-09-11 19:47:06 · 5236 阅读 · 8 评论 -
Linux下编译GDAL
一、准备工作从官网下载GDAL、PROJ.4和GEOS,将其存放在/home/liml/Work/3rdPart目录并解压,如下图所示。下载地址请自行Google。注:使用的系统是CentOS6.4 X64版本,其他的Linux系统都是一样的。接下来检查系统中是否安装了开发环境和编译环境,在终端输入gcc、g++、make回车,如果提示命令不存在,就说明系统没有安装编译环境,请先安装编译环境,下面原创 2013-09-11 19:31:12 · 17234 阅读 · 21 评论 -
浅析GDAL库C#版本支持中文路径问题(续)
GDALC#版本中文路径支持修改,可以完美支持所有的中文路径原创 2013-07-24 19:12:48 · 5816 阅读 · 19 评论 -
浅析GDAL库C#版本支持中文路径问题
GDAL库对于C#的支持问题还是蛮多的,对于中文路径的支持就是其中之一(另一个就是通过OGR库获取图形的坐标信息)。 关于C#支持中文路径,只要是文件名中的汉字个数是偶数,完全没有影响,读取和创建都正常,如果文件名中的汉字个数是奇数,肯定不能读取和创建。原创 2013-07-23 19:56:43 · 5452 阅读 · 4 评论 -
GDAL库调试(包括跨语言调试)
很多时候都需要调试GDAL库,尤其是像学习GDAL库中的某些算法是如何实现的时候,调试就必不可少了。 首先说明用C++的调试。以VS2008为例进行说明。 编译DEBUG版本的GDAL库,这个可以参考我之前的博客。可以用命令行编译,也可以用IDE编译,但是实质都是一样,修改 nmake命令的参数。也就是给nmake命令后加一句DEBUG=1即可。 编译完成之后,应该会在gdal的源码目录中生成下面原创 2013-07-23 19:39:52 · 6613 阅读 · 18 评论 -
GDAL工具使用示例(一)
GDAL提供的工具都是非常的实用,后续打算写一系列的博文来对GDAL提供的工具进行简单的说明,并结合实际的例子进行演示,希望对数据处理的同学有用。 首先说明一下需要准备的数据,我这里使用的是SRTM的DEM数据,至于下载方式可以找我之前的博客。数据截图如下,下载的原始数据都是ZIP文件。也就是下图中的10个zip文件。 今天首先对gdalinfo和gdalbuildvrt这两个工具做个说明。gd原创 2013-06-04 21:58:27 · 7830 阅读 · 10 评论 -
使用GDAL工具对FY3系列卫星数据进行校正
本文档主要对如何使用GDAL提供的工具对FY3系列卫星数据进行校正处理。FY3系列卫星提供的数据一般是以HDF5格式下发,一个典型的FY3A和FY3B的数据文件名如下:FY3A_MERSI_GBAL_L1_20100321_0150_1000M_MS.HDFFY3B_MERSI_GBAL_L1_20130620_0600_1000M_MS.HDF 下面分为三个部分来对FY3系列数据校正进行处理,原创 2013-06-26 19:40:57 · 9276 阅读 · 18 评论 -
使用OGR创建弧形图形
很多时候我们需要在矢量文件中记录一些弧形图形,由于目前OGR中没有支持通过圆心半径等方式来保存矢量图形,所以对于这些矢量图形必须要计算出弧线上的点坐标来进行存储,如果自己按照圆弧的算法来创建这些点确实有些麻烦,OGR中提供了一个叫approximateArcAngles的函数来对圆弧点坐标进行计算,使用起来非常方便,下面是该函数的一个简单说明。函数原型为:创建一段椭圆弧段。指定一个原点坐标、椭圆的原创 2013-06-02 13:47:02 · 4686 阅读 · 4 评论 -
GDAL对于raw数据支持的一个bug
下面的GDAL版本针对最新的1.10.0而言,对于GDAL1.9.2问题依旧。 最近在处理卫星的长条带数据,图像的行数差不多200w行左右,格式的raw格式。可以使用VRT文件来很方便的对raw数据进行管理。比如要提取raw数据中的某一部分等等。由于处理的数据是1536列的16bit数据,并对raw数据进行提取。比如指定从多少行开始,到多少行结束。关于VRT数据进行管理raw数据可以参考《使用GD原创 2013-05-17 20:17:46 · 3042 阅读 · 0 评论 -
使用OGR2OGR将S57数据转为shp格式
S57海图数据中包含了大量的图层,在目前ArcMap软件作为必备的GIS软件之一,所以还是shp格式处理起来可能比较方便(这里的方便仅仅是对于某些人觉得shp最常见,用的最广泛而言,其实我本人觉得shp不好的地方就是一个数据要多个文件组成,有点不爽)。所以可能需要把S57的数据转为shp数据。下面使用gdal提供的ogr2ogr工具来进行转换,希望对大家有用。 首先我们使用ogrinfo查看s57原创 2013-04-26 21:50:55 · 9866 阅读 · 19 评论