GDAL开发文档
GDAL开发文档这里列出所有相关的页面:∙GDAL数据模型∙GDAL驱动实现向导∙GDAL API入门∙OGR API 使用向导翻译:柴树杉(chaishushan@)出处:opencv-extension-libraryGDAL数据模型翻译:柴树杉(chaishushan@)原文:/gdal_datamodel.html该文档简要描述了GDAL的数据模型,该模型可以容纳其他各种信息。
数据集(Dataset)一个dataset(对应GDALDataset类)是一个光栅数据以及和它有关系的信息的集合。
特别地dataset包含了光栅数据的大小(像素、线等)。
dataset同时也为对应的光栅数据指定了坐标系统。
dataset本身还可以包含元数据,它们以一种键/值对的方式来组织。
GDAL的数据集是基于OpenGIS Grid Coverages的格式定义的。
坐标系统Dataset的坐标系统由OpenGIS WKT字符串定义,它包含了:∙一个全局的坐标系名称。
∙一个地理坐标系名称。
∙一个基准标识符。
∙椭球体的名字。
长半轴(semi-major axis)和反扁率(inverse flattening)。
∙初子午线(prime meridian)名和其与格林威治子午线的偏移值。
∙投影方法类型(如横轴莫卡托)。
∙投影参数列表(如中央经线等)。
∙一个单位的名称和其到米和弧度单位的转换参数。
∙轴线的名称和顺序。
∙在预定义的权威坐标系中的编码(如EPSG)。
更多信息请参考OpenGIS WKT坐标系统定义,以及osr教程文档和OGRSpatialReference类的描述文档。
在GDAL中,返回坐标系统的函数是GDALDataset::GetProjectionRef()。
它返回的坐标系统描述了地理参考坐标,暗含着仿射地理参考转换,这地理参考转换是由GDALDataset::GetGeoTransform()来返回。
由GCPs地理参考坐标描述的坐标系统是由GDALDataset::GetGCPProjection()返回的。
注意,返回的坐标系统字符串“”表示未知的地理参考坐标系统。
仿射地理变换GDAL数据集有两种方式描述栅格位置(用点/线坐标系)以及地理参考坐标系之间的关系。
第一种也是比较常用的是使用仿射转换,另一种则是GCPs。
仿射变换由6个参数构成,它们由GDALDataset::GetGeoTransform()返回它们把点/线坐标,用下面的关系转将点/线影射到地理坐标:Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2)Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)假设影像上面为北方,GT2和GT4参数为0,而GT1是象元宽,GT5是象元高,(GT0,GT3)点位置是影像的左上角。
注意,上面所说的点/线坐标系是从左上角(0,0)点到右下角,也就是坐标轴从左到右增长,从上到下增长的坐标系(即影象的行列从左下角开始计算)。
点/线位置中心是(0.5,0.5)。
GCPs数据集可以由一系列控制点来定义空间参考坐标系。
所有的GCPs共用一个地理参考坐标系,由GDALDataset::GetGCPProjection()返回。
每个GCP(对应GDAL_GCP 类)包含下面内容:typedef struct{char *pszId;char *pszInfo;double dfGCPPixel;double dfGCPLine;double dfGCPX;double dfGCPY;double dfGCPZ;} GDAL_GCP;字符串pszid是本GCP在数据集中一系列GCP点中惟一的标示字符串(通常是数字)。
字符串pszInfo通常为空,但是也可以包含用户针对GCP定义的一些文本信息。
甚至还可能是GCP状态中包含机器可分析信息,虽然现在还支持。
坐标(dfGCPPixel,dfGCPLine)是栅格中的GCP位置。
坐标(dfGCPX,dfGCPY,dfGCPZ)是联合的地理参考位置(dfGCPZ通常是0)。
GDAL数据模型没有实现由GCPs产生坐标系的变化的机制,而是把具体的操作留给用户实现。
通常1到5阶多项式是常用的方法。
通常一个数据集会包含仿射地理变换,或GCPS中的一个,或者两个都没有。
两个都有很少见,而且无法用权威坐标系定义。
元数据(Metadata)GDAL元数据是一种辅助的数据格式,并且以键/值对序列的方式呈现。
一般键的名称有严格的定义(没有空白、或某些特殊字符等)。
键所对应的值可以是任意的长度,包含任意的内容(NULL字符除外)。
元数据处理系统一般不能处理很大的数据,例如一个大于100K的数据很可能导致处理的终止。
虽然某些键现在可能没有,但是以后也可能会被定义。
一些格式的数据可以支持一些基本的元数据(可以由用户自己定义),可以使用驱动程序访问这些键/值。
例如,如果数据含有date/time标志,TIFF格式的驱动程序可能只是简单地返回基本的信息:TIFFTAG_DATETIME=1999:05:11 11:29:56元数据的键/值对还可以被组织到某些域中,默认的域是没有名字的。
当然,为了保存某些特殊的信息可能需要定义特殊的域。
目前虽然不能列举出一个对象所需要的所有域,但是程序可以测试任何我们已经知道确切含义的域。
SUBDATASETS 域SUBDATASETS域保存了一个子datasets列表。
这个列表通常是对应一个复合影象中每个子影象的位置(像HDF或NITF)。
例如一个由4个影象组成的NITF可能含有类似下面的子datasets列表:SUBDATASET_1_NAME=NITF_IM:0:multi_1b.ntfSUBDATASET_1_DESC=Image 1 of multi_1b.ntfSUBDATASET_2_NAME=NITF_IM:1:multi_1b.ntfSUBDATASET_2_DESC=Image 2 of multi_1b.ntfSUBDATASET_3_NAME=NITF_IM:2:multi_1b.ntfSUBDATASET_3_DESC=Image 3 of multi_1b.ntfSUBDATASET_4_NAME=NITF_IM:3:multi_1b.ntfSUBDATASET_4_DESC=Image 4 of multi_1b.ntfSUBDATASET_5_NAME=NITF_IM:4:multi_1b.ntfSUBDATASET_5_DESC=Image 5 of multi_1b.ntf以_NAME为后缀的键所对应的值可以传递给GDALOpen()用于访问文件。
以_DESC为后缀的键所对应的值可以以一种友好的方式显示给用户。
IMAGE_STRUCTURE 域默认域中的元数据一般和影象有关,但是和影象的具体格式无关。
换言之,与影象格式无关的信息在复制dataset的时候一般也会被复制。
为了处理那些与影象格式相关的数据,一般将相关的键/值对放到IMAGE_STRUCTURE域中,并且在复制dataset 的时候可以不被复制。
IMAGE_STRUCTURE域中的一个项是数据的压缩方式,对应的键名为COMPRESSION,对应的值说明的压缩的方式。
xml: 域任何以"xml:"为前缀名的域都不是一个普通的键/值对方式的元数据。
它是一个单一的XML文档,以一个大的字符串方式保存Raster Band一个波段的光栅数据对应GDAL中的GDALRasterBand类。
它描述了单个波段的band/channel/layer。
它并不是一次描述整个影象。
例如,一个24bit的RGB影象在一个dataset中一般被描述为三个波段,分别对应red/green/blue三中颜色。
一个波段的光栅数据具有以下性质:∙行列数。
如果没有抽样的话,该值和dataset定义的相同。
∙数据类型(GDALDataType)。
可以是Byte、UInt16、Int16、UInt32、Int32、Float32、Float64,或者是复合类型CInt16、CInt32、CFloat32或CFloat64。
∙块的大小。
这是建议的缓冲块的大小。
对于块式存储的影象来说,可能是一个块的大小。
对于以扫描线方式的影象,可能是一个扫描线的大小。
∙元数据中的name/value列表,和dataset中相同,但是可能更侧重当前波段的特征。
∙可选择的参数(字符串)。
∙An optional list of category names (effectively class names in a thematic image).∙An optional minimum and maximum value.∙An optional offset and scale for transforming raster values into meaning full values (ie translate height to meters)∙可选的光栅名称。
这个特性可以用来指定一些比较重要的数据。
∙每个波段解释,具体为:o GCI_Undefined: 默认,未知信息。
o GCI_GrayIndex: 为一个独立的灰度影象。
o GCI_PaletteIndex: this raster acts as an index into a color tableo GCI_RedBand: RGB或RGBA影象的红色波段。
o GCI_GreenBand: RGB或RGBA影象的绿色波段。
o GCI_BlueBand: RGB或RGBA影象的蓝色波段。
o GCI_AlphaBand: RGBA影象的alpha通道。
o GCI_HueBand: HLS影象的色调。
o GCI_SaturationBand: HLS影象的饱和度。
o GCI_LightnessBand: HLS影象的光强。
o GCI_CyanBand: CMY或CMYK影象的cyan波段。
o GCI_MagentaBand: CMY或CMYK影象的magenta波段。
o GCI_YellowBand: CMY或CMYK影象的yellow波段。
o GCI_BlackBand: CMYK影象的black波段。
∙颜色表,描述光栅数据的更多的细节。
∙Knowledge of reduced resolution overviews (pyramids) if available.颜色表一个颜色表包含0个或多个颜色结构。
结构体定义如下:typedef struct{/- gray, red, cyan or hue -/short c1;/- green, magenta, or lightness -/short c2;/- blue, yellow, or saturation -/short c3;/- alpha or blackband -/short c4;} GDALColorEntry;颜色表同时还对应一个调色板(GDALPaletteInterp),GDALColorEntry中的c1/c2/c3/c4的值可以作为调色板索引得到真正的颜色值。
gdal影像分块读取处理和写出的程序
gdal影像分块读取处理和写出的程序1.引言1.1 概述概述部分的内容可以简要介绍本文将要探讨的内容,即gdal影像分块读取处理和写出的程序。
可以提及gdal是一种功能强大的地理数据抽象库,它提供了许多用于处理栅格和矢量数据的函数和工具。
在本文中,我们将重点关注gdal在影像数据处理中的应用。
首先,我们将介绍gdal影像分块读取处理的原因和意义。
在处理大型影像数据时,一次性将整个影像加载到内存中可能会导致内存溢出或性能下降的问题。
因此,我们需要将影像划分为多个块,并逐块进行读取和处理。
接下来,我们将详细介绍gdal如何进行影像的分块读取处理,包括块的定义、读取方式和处理方法等。
其次,我们将讨论gdal影像写出的程序。
将处理后的影像数据写出到硬盘中是一个重要的步骤,方便我们后续的分析和应用。
我们将介绍gdal 如何进行影像数据的写出,包括文件格式的选择、参数设置和输出路径的指定等。
最后,我们将总结本文的主要内容,并展望gdal在影像数据处理领域的未来发展。
gdal作为一个开源的地理数据处理工具,具有广泛的应用前景和不断增长的用户群体。
希望本文对读者了解gdal的影像分块读取处理和写出的程序有所帮助,并能够在实际应用中发挥其优势和功能。
1.2 文章结构文章结构部分(文章1.2)的内容如下:本篇长文主要分为以下几个部分:引言、正文和结论。
通过这个结构,将全面探讨GDAL影像分块读取处理和写出的程序。
引言部分将对本文的主题进行概述和解释。
我们将介绍GDAL (Geospatial Data Abstraction Library)的概念和功能,并介绍影像分块读取处理和写出的背景和意义。
同时,我们还会强调本文的目的和重要性。
正文部分将重点探讨GDAL影像分块读取处理和写出的程序。
在2.1小节中,我们将详细介绍GDAL对影像的分块读取处理方法,包括读取原始影像、设置分块大小和处理单个块的具体步骤。
在2.2小节中,我们将介绍GDAL影像写出程序的开发流程,包括对处理后的影像进行写出、设置输出格式和写出完成后的处理。
很好的GDAL初学者资料
很好的GDAL初学者资料1、编译加使用:/gisblog/archive/2008/10/06/3021933.aspx如何在CSharp中使用GDAL?收藏GDAL库的简洁、高效深受开发人员的喜爱,很多开源的GIS软件甚至是商业GIS软件都使用了这个库。
GDAL使用C++,在Visual studio环境下开发,对C,C++的支持当然不会有什么问题。
但对于C#、Python、Java来说,过程就相对繁琐一些,对初学者造成了不少的麻烦。
本文以GDAL1.50为例,详细说明在CSharpe语言中使用GDAL的环境配置问题,至于Python的环境配置问题,在另一篇文章“如何在CSharpe中使用GDAL”中另行讨论。
希望对初用GDAL的人员有所帮助。
GDAL从1.4.1开始添加了swig,以支持.NET环境下的C#语言。
在swig 文件夹中包含了C#源代码。
以下是主要的处理步骤:1、准备一个C++编译器。
建议使用Visual studio2005。
2、下载源代码。
地址:/gdal/gdal150.zip。
3、把gdal150.zip解压至“C:\gdal-1.5.0”,当然放在其它文件夹也可以。
4、修改源代码中的错误。
源文件“C:\gdal-1.5.0\frmts\leveller\levellerdataset.cpp”的第171行的内容如下:{ "?, kPI / 180.0, UNITLABEL_DEGREE },在?号后面加上双引呈",改成如下形式:{ "?", kPI / 180.0, UNITLABEL_DEGREE },你可以使用任何一种文本文件的编辑工具来进行修改。
笔者尝试过下载GDAL1.52的版本,存在同样的问题,真想不到GDAL库也会犯如此低级的错误。
5、创建安装的目标文件夹“C:\gdal-runtime”,稍后的编译配置中,我们将配置GDAL把编译后将会安装到这个文件夹内。
GDAL_API教程
GDAL API TutorialBefore opening a GDAL supported raster datastore it is necessary to register drivers.在打开一个GDAL支持的栅格资料之前,必需要注册驱动。
There is a driver for each supported format.每个驱动对应各自支持的格式。
Normally this is accomplished with the GDALAllRegister() function which attempts to register all known drivers, including those auto-loaded from .so files using GDALDriverManager::AutoLoadDrivers().通常这个会被GDALAllRegister()函数完成,试图去注册所有已知的驱动包括使用GDALDriverManager::AutoLoadDrivers()从.so文件来加载。
If for some applications it is necessary to limit the set of drivers it may be helpful to review the code from gdalallregister.cpp.如果一些程序有必要去限制驱动集合,检查gdalallregister.cpp的代码将会有所帮助,Python automatically calls GDALAllRegister() when the gdal module is imported.当gdal模块被导入时,Python会自动调用GDALAllRegister()。
Once the drivers are registered, the application should call the free standing GDALOpen() function to open a dataset, passing the name of the dataset and the access desired(GA_ReadOnly or GA_Update).一但驱动被注册,程序将会调用独立的GDALOpen()函数通过dataset的名称和需要的存取方式(GA_ReadOnly或GA_Update)来打开dataset.Note that if GDALOpen() returns NULL it means the open failed, and that an error messages will already have been emitted via CPLError().注意如果GDALOpen()返回NULL,意味着打开失败了,这个错误信息将会通过CPLError ()释放出。
GDAL、Prj.4和GEOS库的编译与引用
GDAL的编译官方网站:/下载地址:/gdal/编译版本:GDAL1.8.0编译平台:Window XP(32位)+Visual Studio2008编译步骤:1、解压下载文件gdal180.zip到C:\gdal-1.8.0。
2、点击“开始—运行”,输入“cmd”,进入控制台界面。
3、编译C++版本gdal,依次输入以下命令:1)C:\Program Files\Microsoft Visual Studio9.0\VC\bin\vcvars32.bat2)cd C:\gdal-1.8.03)nmake/f makefile.vc4)nmake/f makefile.vc install5)nmake/f makefile.vc devinstall4、如需编译C#版本gdal,接着输入以下命令:1)cd C:\gdal-1.8.1\swig\csharp2)nmake/f makefile.vc工程引用:1、C++工程引用GDAL1)从C:\warmerda\bld\lib目录下复制gdal_i.lib文件,从C:\warmerda\bld\bin目录下复制gdal18.dll文件,以及复制C:\warmerda\bld\include整个文件夹到C++工程目录下。
2)以Visual C++6.0为例,点击“Project-Settings”菜单,在C/C++页面,在[Category]项选择[Preprocessor]选项,在[Additional include directories]项下添加“include”值,即将编译的gdal的头文件目录添加到工程中。
转到Link页面,在[Object/library modules]选项下添加“gdal_i.lib”3)在需要使用gdal的时候添加相应的头文件。
2、C#工程引用GDAL1)从C:\gdal-1.8.0\swig\csharp目录下复制gdal_csharp.dll、gdal_wrap.dll、gdalconst_csharp.dll、gdalconst_wrap.dll、ogr_csharp.dll、ogr_wrap.dll、osr_csharp.dll、osr_wrap.dll,以及从C:\warmerda\bld\bin目录下复制gdal18.dll共9个文件到C#工程中。
GDAL python教程基础篇OGR空间计算
GDAL python教程基础篇OGR空间计算GDAL是一个用于地理空间数据读写的库,它支持多种常见的地理格式,如GeoTIFF和ESRI Shapefile等。
而OGR则是GDAL中的一个子库,它支持矢量数据格式,如ESRI Shapefile和GeoJSON等。
本文主要介绍如何使用OGR进行空间计算。
首先需要安装GDAL和OGR,可以通过pip来安装:```bashpip install gdal```接着可以在Python中使用OGR来读取矢量数据,如下所示:```pythonfrom osgeo import ogr# 打开Shapefile文件driver = ogr.GetDriverByName('ESRI Shapefile')dataSource = driver.Open('data.shp', 0)# 获取图层layer = dataSource.GetLayer()# 可以遍历所有要素for feature in layer:# 处理每个要素```接着可以使用OGR进行空间计算,如计算两个多边形的相交部分,代码如下:```pythonfrom osgeo import ogr# 打开Shapefile文件driver = ogr.GetDriverByName('ESRI Shapefile')dataSource1 = driver.Open('data1.shp', 0)dataSource2 = driver.Open('data2.shp', 0)# 获取图层layer1 = dataSource1.GetLayer()layer2 = dataSource2.GetLayer()# 获取多边形要素polygon1 = layer1.GetFeature(0).GetGeometryRef()polygon2 = layer2.GetFeature(0).GetGeometryRef()# 计算相交部分intersection = polygon1.Intersect(polygon2)# 打印相交面积print(intersection.GetArea())```以上代码假设每个Shapefile文件只有一个多边形要素,如果有多个要素,需要修改代码来遍历所有要素。
gdal源码剖析与开发指南 源代码
GDAL源码剖析与开发指南一、概述1.1 GDAL概述GDAL(Geospatial Data Abstraction Library)是一个在地理信息系统(GIS)领域使用广泛的开源库,它提供了读取、写入各种栅格和矢量地理数据格式的功能。
GDAL库由C/C++编写,但也提供了多种语言的绑定,例如Python、Java等,使得开发者可以轻松地在不同评台上使用GDAL库进行地理数据处理和分析。
1.2 目的与意义本篇文章旨在对GDAL源码进行深入剖析,帮助读者了解GDAL库的设计理念、核心数据结构和关键算法,使读者能够更好地理解GDAL库的内部工作原理,并掌握如何使用GDAL库进行地理数据处理和开发。
二、GDAL源码结构2.1 GDAL主要模块GDAL源码主要分为以下几个模块:- 核心库(Core)- 栅格数据处理(Raster)- 矢量数据处理(Vector)- 投影转换(Projection)- 数据格式驱动(Driver)2.2 核心库核心库(Core)模块包含了GDAL库的基本数据结构和算法,如数据集(Dataset)、数据类型(DataType)、坐标系统(Coordinate System)等。
在这个模块中,我们将重点剖析GDAL的核心数据结构以及数据的读写流程,帮助读者了解GDAL库是如何管理和处理地理数据的。
2.3 栅格数据处理栅格数据处理(Raster)模块主要负责对栅格地理数据(如DEM、影像数据)进行读写和处理。
在这个模块中,我们将深入研究GDAL是如何支持栅格数据格式的读写和处理,并分析GDAL库对常用栅格数据格式(如GeoTIFF、NetCDF等)的支持原理。
2.4 矢量数据处理矢量数据处理(Vector)模块用于处理矢量地理数据(如矢量地图、矢量要素),提供了对矢量数据格式(如SHP、GeoJSON等)的读写和操作接口。
在这个模块中,我们将深入研究GDAL是如何支持矢量数据格式的读写和处理,并分析GDAL库在矢量数据处理方面的核心功能和算法。
3.1.1 GDAL[共2页]
3.1 数据访问 65器一样种类繁多,当你在开源软件项目网站/进行相关搜索时,将会返回超过5000条记录。
地理空间分析行业是一个真正的全球社区,为其做出显著贡献的成员来自世界各地。
但是当了解了更多主流的重量级软件功能包之后,你会发现这些程序大都来自加拿大或者主要开发者是加拿大人。
作为现代GIS的发源地,地理空间分析是加拿大的国粹。
当然,加拿大政府和公私合营的地理信息联网(GeoConnections)计划已经在研究上投入了巨资,而且很多公司出于能源工业的经济原因,以及更好地管理大量自然资源、人口的需要。
在本章中,我们将要介绍的是软件包是对地理空间分析产业影响最大的,并且很可能你经常会用到它们。
但是我们鼓励你根据自己的研究和兴趣对信息进行筛选,下面的网址提供了本章中未介绍的软件的更多信息。
• 维基百科的GIS软件列表:https:///wiki/List_of_ geographic_information_systems_software。
• OSGeo的项目清单,以及孵化器项目:/。
• 软件数据库:/database/?cat=0&_ZopeId= 18853465A58XbR1fIKo。
3.1 数据访问如第2章所述,地理空间数据集通常都是大型、复杂和多样的。
在地理空间分析时对这些库高效读写数据的苛刻要求就是必不可少的了。
当然这些库都非常重要。
如果无法访问数据,地理空间分析将寸步难行。
另外,准确度和精度也是地理空间分析中非常重要的因素。
例如一个影像库抽样数据精度不高或者一个计算几何库对坐标系统中的数值的几位小数做了四舍五入操作,都有可能对分析的质量产生不利影响。
此外,这些库必须高效地管理内存。
一个复杂的地理空间分析过程也许会持续几个小时甚至数日。
如果数据访问库发生了一个内存错误,那么将会推迟整个项目的进度,更有甚者,还会对依赖这个分析结果的一批人的工作产生不利影响。
3.1.1 GDAL地理空间数据抽象库(The Geospatial Data Abstraction Library,GDAL)承担了地理空间分析领域最繁重的工作。
GDAL使用方法VC+C#
GDAL栅格图像操作GDAL是一个操作各种栅格和矢量(由ogr这个库实现)地理数据格式的开源库。
包括读取、写入、转换、处理各种栅格和矢量数据格式(有些特定的格式对一些操作如写入等不支持)。
即使不是进行地理遥感方面的应用研究,GDAL也是一个非常有用的库,因为它可以支持大量我们常见的图像数据,比如jpg,gif之类的。
完整的格式清单可以到此链接查看/formats_list.html。
而且已经有包括GoogleEarth在内的很多软件都是在使用GDAL作为后台库。
本文就以VC为开发平台介绍GDAL对栅格数据的操作方法。
Include目录是开发中需要的头文件,lib中是所需要的lib文件,在VC8中应当将其存放目录添加到目录列表中,选择菜单的“工具-选项-项目和解决方案-VC++目录”,分别在“包含文件”和“库文件”中将此两个目录添加进去。
在项目的属性页中,选择“配置属性-链接器-输入”,在“附加依赖项”中添加gdal_i-vc8.lib和gdal_id-vc8.lib两个使用GDAL中需要的静态库文件,或者在程序中添加以下两行代码也可以。
#pragma comment(lib, "gdal_i-vc8.lib")#pragma comment(lib, "gdal_id-vc8.lib")Bin目录下的动态链接库文件应当放置于程序能够访问的位置,比如windows\system32中。
此外,在程序中需要引入的头文件是gdal_priv.h。
现在开始用C++来对图像文件进行操作。
在打开文件之前需要首先注册所需要的驱动程序,一般来说我们可以默认注册所有支持的格式驱动,所使用的函数是GDALAllRegister()。
然后就是打开文件操作。
这里要说一个数据集的概念,也就是所谓的Dataset。
在GDAL中可以说数据的核心就是Dataset,简单来说可以将Dataset就理解为图像文件,比如说一个jpeg格式的文件就是一个数据集,当然其他一些文件格式可能在一个数据集中包含多于一个文件,比如可能除了图像数据文件外还可能会有一些附加信息文件等。
编译C#版GDAL-1.11.1(含GEOS,PROJ,HDF)霍少峰
C#版GDAL-1.11.1编译(含GEOS,PROJ,HDF)——2014.11.25霍少峰这里选择的版本是:gdal-1.11.1.tar.gz、geos-3.4.2.tar.bz2、proj-4.8.0.tar.gz、swigwin-3.0.2、HDF4.2.6_win_x64.zip和HDF5-1.8.7_win_x64.zip。
本机为64位Win7操作系统。
首先在/gdal/wiki/DownloadSource下载/gdal/1.11.1/gdal-1.11.1.tar.gz - source as .tar.gz ( md5)然后解压,我将解压的文件放在了C盘,即C:\gdal-1.11.1。
这里我使用cmd命令行方法进行编译。
首先以管理员身份运行方式打开“Visual Studio x64兼容工具命令提示(2010)”命令,如下图:图1然后使用cd命令(没用过的请百度一下,挺有用的),切换到GDAL的源代码目录(C:\gdal-1.11.1),如下图:图2接着,依次输入下面的命令后回车,静候编译结束。
nmake –f makefile.vc(上面的意思是编译GDAL库)nmake –f makefile.vc install(上面的意思是编译GDAL库并安装,安装的意思是将生成的dll、exe等文件复制到C:\warmerda\bld目录)nmake –f makefile.vc devinstall(上面的意思是编译GDAL库并安装开发者模式,安装的意思同上,开发者模式意思是将开发用到的include文件夹中的头文件和lib文件一同复制到C:\warmerda\bld目录,此时会在C:\warmerda\bld目录中添加两个文件夹,分别是include和lib,分别存放GDAL的头文件和lib文件,用于调用GDAL库)通过以上的过程就完成了编译GDAL库。
而且会在C盘生成如下内容:图2.1下面集成GEOS和PROJ.4为了集成GEOS和PROJ.4,需要先在网上下载压缩包,然后解压,编译,编译好以后再修改gdal-1.11.1的nmake.opt文件重新编译一次gdal。
GDAL
GDALtranslate
The gdal_translate utility can be used to convert raster data between different formats, potentially performing some operations like subsettings, resampling, and rescaling pixels in the process.
Supported Platforms
Available as binaries or source Linux Windows Mac
FWTools Open Source GIS Binary Kit for Windows and Linux
/
GDAL Geospatial Data Abstraction Library
Translator library for raster geospatial data formats OpenSource…X/MIT style license Recently supported by ER Mapper Commandline like old Arc/Info
Includes formats that have a YES under the credo
Used to build or rebuild overview images (pyramid files) for most supported file formats with one over several downsampling algorithms.
GDAL_contour
Build contour lines from a DEM Input raster can be any of the supported formats Vector output format can be any of the OGR supported formats
