GDAL学习笔记

合集下载

很好的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 VC学习

GDAL  VC学习
-> properties-> General-> Additional Libary Directories 加 Lib 目录 还没有解决,未知原因,以后熟悉了在看
下面附上一个一个 GDAL 的读写数据例子
引自 /tangnf/archive/2008/10/26/3152538.aspx
driver = GetGDALDriverManager()->GetDriverByName("GTiff"); else if (suffix == "img")
driver = GetGDALDriverManager()->GetDriverByName("HFA"); else if (suffix == "bt")
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // The one and only application object
3.GDAL 使用 初次使用 visual studio 对工具不熟悉,有些步骤可以配置的 (1)在 VS2005 中新建 win32 控制台程序 testGDALconsole,(向导中附加选项不能选为 空项目)将 C:\GDAL\bin\gdal14.dll 拷贝到 testGDALconsole 目录下的 debug 目录中。 (否则运行时会提示找不到 gdal14.dll)

gdal-proj-hdf学习笔记

gdal-proj-hdf学习笔记

GDAL为读取、转换、处理栅格数据的开源库,OGR库提供对矢量数据的支持,可以读取.shp 等文件,OGR现已被集成在GDAL库中,编译GDAL库后添加#include"ogr_spatialref.h"就可以使用OGR资源。

编译GDAL:下载源码,/打开gdal文件夹下的nmake.opt修改GDAL_HOME = "C:\warmerda\bld"把路径改到需要把gdal 安装的地方到VS的安装目录下执行Vc\bin\vcvars32.bat,注册vc环境打开Visual Studio tools下visual studio 2008 command prompt,依次执行1 nmake /f makefile.vc2 nmake /f makefile.vc install3 nmake /f makefile.vc devinstall建立工程后,拷贝gdal.dll到工程文件夹中,在tools-options-vc++ directories中添加include 和library路径工程头文件中添加#include "gdal_priv.h"#include "gdal.h"#include "proj_api.h"#include "ogr_srs_api.h"#include "ogr_spatialref.h"其中proj为投影转换开源库,利用gdal进行图像投影设置必须编译该库,并将proj.dll拷贝到gdalxx.dll同一文件夹下,这样就可以利用ogr中的OGRSpatialReference进行投影转换,其中proj为类OGRSpatialReference的底层支持。

Gctp为另一个被广泛使用的投影转换开源库。

Hdf4、Hdf5提供对hdf格式文件的操作和处理,Hdf5是对Hdf4的改进,不对Hdf4兼容。

gdal坐标转换总结(转换)

gdal坐标转换总结(转换)

gdal坐标转换总结(转换)转⾃https:///qq_32657025/article/details/80176520⾸先,在进⾏坐标转换之前,有必要先了解⼀下有关坐标系的⼏个基本概念。

地理坐标系(Geographic Coordinate Systems)地理坐标系是⼀个球⾯的坐标系统,以经纬度为单位,它由椭球体和⼤地基准⾯两个部分组成。

椭球体(spheroid)我们要将地理信息以球⾯坐标系的⽅式表达,⾸先需要找到⼀个可以量化计算的椭球体。

⼀个椭球体的确定需要以下参数:长半轴、短半轴、偏⼼率,其中偏⼼率可根据长短半轴计算得到。

例如,WGS84椭球的参数如下:Spheroid(椭球名):"WGS_84";Semimajor Axis(长半轴):6378137Semimajor Axis(长半轴):6356752.3142Inverse Flattening(扁率):1/298.25722361234⼤地基准⾯(datum)有了椭球体以后,还需要⼀个⼤地基准⾯将这个椭球定位。

⼤地基准⾯(Geodetic datum),设计为最密合部份或全部⼤地⽔准⾯的数学模式。

它由椭球体本⾝及椭球体和地表上⼀点(原点)之间的关系来定义。

此关系能以 6个量来定义,通常是⼤地纬度、⼤地经度、原点⾼度、原点垂线偏差之两分量及原点⾄某点的⼤地⽅位⾓。

同⼀个椭球⾯,不同的地区由于关⼼的位置不同,需要最⼤限度的贴合⾃⼰的那⼀部分,因⽽⼤地基准⾯就会不同。

有了Spheroid和Datum两个基本条件,便可以确定⼀个地理坐标系统。

投影坐标系将球⾯坐标转化为平⾯坐标的过程称为投影。

因此,投影坐标系实质上是在地理坐标系的基础上通过投影得到的。

投影坐标系其单位通常为m。

例如我国常⽤的⾼斯-克吕格投影,其通常是按6度和3度分带投影,1:2.5万-1:50万⽐例尺地形图采⽤经差6度分带,1:1万⽐例尺的地形图采⽤经差3度分带。

GDAL综合整理

GDAL综合整理

一、简介1.GDAL简单地说,GDAL是一个操作各种栅格地理数据格式的库。

包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。

它使用了一个单一的抽象数据模型就支持了大多数的栅格数据(GIS对栅格,矢量,3D数据模型的抽象能力实在令人叹服)。

当然除了栅格操作,这个库还同时包括了操作矢量数据的另一个有名的库ogr(ogr 这个库另外介绍),这样这个库就同时具备了操作栅格和矢量数据的能力。

最重要的是这个库是跨平台的,开源的!如今这个库对各种数据格式的支持相当强大,几乎所有的GIS、RS所要处理的数据格式类型都包括在内。

它的主页最后那些使用了它作为底层数据处理的软件列表中,不仅有GRASS、Quantum GIS (QGIS),更有Google Earth。

学习这个库是十分有必要的。

该库在C/C++/python/ruby/VB/java/C#(这个暂时不完全支持)下都能用,而且都一样用。

GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。

它利用抽象数据模型来表达所支持的各种文件格式。

它还有一系列命令行工具来进行数据转换和处理。

2.OgrOGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。

有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ArgGIS 9.2,Google Earth和跨平台的GRASS GIS系统。

利用GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对矢量和栅格文件数据二、大体结构GDAL使用抽象数据模型(abstract datamodel)来解析它所支持的数据格式,抽象数据模型包括数据集(dataset),坐标系统,仿射地理坐标转换(Affine GeoTransform),大地控制点(GCPs),元数据(Metadata),栅格波段(Raster Band),颜色表(ColorTable),子数据集域(Subdatasets Domain),图像结构域(Image_StructureDomain),XML域(XML:Domains)。

C++ GDAL开发笔记

C++  GDAL开发笔记

李民录.《GDAL原码剖析与开发指南》.p303.(5.1.4 ENVI的HDR格式)创建说明:INTERLEAVE=BSQ/BIP/BIL:设置生成的文件数据组织方式,默认为BSQ(按波段存储)、BIP(按像元存储)、BIL(按行存储)。

SUFFIX=REPLACE/ADD:指定对应的HDR文件名称。

如果设置为REPLACE,那么生成的HDR文件和数据文件名称一样,扩展名不同,如数据文件名为file.bin,那么生成的HDR文件名称为file.hdr;而设置为ADD时,生成的HDR文件名是在数据文件名后面追加.hdr组成,如文件名称为file.bin,那么生成的HDR文件名称为file.bin.hdr。

李民录.《GDAL原码剖析与开发指南》.p359.(5.1.7 创建文件)创建文件有两种方法,第一种是调用Create动态创建文件,包含Create函数和用来设置各种信息的函数;第二种是调用CreateCopy()函数,可以从源映像中获取影像信息并写入到结果图像中。

网上解答:图像读取出错很多情况下都是数据格式用错。

创建格式的时候格式名称设置为ENVI,然后输出的图像就会自动创建hdr 文件,不需要单独写hdr了。

直接用GDALOpen打开hdr同名的另外一个实体问题,然后用GetGeoTransform函数就可以获取到参考坐标XStart之类的地理信息了。

import gdalimport Numericdataset = gdal.Open("e:/gisdata/gtif/sd.tif")width = dataset.RasterXSizeheight = dataset.RasterYSizedatas = dataset.ReadAsArray(0,0,width,height)driver = gdal.GetDriverByName("GTiff")tods = driver.Create("e:/gisdata/sd2.tif",width,height,3,options=["INTERLEAVE= PIXEL"])tods.WriteRaster(0,0,width,height,datas.tostring(),width,height,band_list=[1,2,3 ])这是一个很简单的另存遥感图像的方法(不包括空间信息)。

gdal 焦点统计法 -回复

gdal 焦点统计法 -回复

gdal 焦点统计法-回复什么是gdal 焦点统计法?Gdal (Geospatial Data Abstraction Library) 是一个开源的地理数据处理库,它提供了许多功能强大且高效的地理数据处理工具。

其中之一就是焦点统计法(Focus Statistics),它是一种基于统计原理的空间分析方法,用于检测和量化地理数据中的聚集现象。

焦点统计法可以帮助我们理解地理数据的分布特征和空间关系,从而提供对地理现象的深入洞察力和决策支持。

为了更好地理解gdal 焦点统计法的实际应用,并说明如何逐步使用它,我将以以下步骤来详细回答这个问题。

第一步:数据准备和加载在使用gdal 焦点统计法之前,我们需要准备好相关的地理数据。

这些数据可以是栅格数据(如遥感影像)或矢量数据(如地图或边界)。

确保数据的格式符合gdal 支持的要求。

然后,通过gdal 库将数据加载到我们的分析环境中。

第二步:定义焦点区域焦点统计法侧重于确定聚集现象的出现和程度,而这是以“焦点区域”为基础的。

焦点区域可以是一个圆形、椭圆形或多边形的区域,我们可以根据具体的研究目的来选择合适的焦点区域。

在gdal 中,我们可以通过指定一个几何形状(geometry)或使用已有的矢量数据来定义焦点区域。

第三步:计算焦点统计指标一旦我们定义了焦点区域,就可以计算与之关联的焦点统计指标。

焦点统计法可以计算多个指标,其中最常用的是聚集指标和标准差指标。

聚集指标衡量了焦点区域内与周围地理单元的差异程度。

常用的聚集指标包括Morans I 和Getis-Ord G 等。

这些指标可以帮助我们判断地理数据在空间上的聚集或离散程度。

标准差指标则用于衡量焦点区域内地理数据值的变异程度。

较高的标准差指标意味着焦点区域内的地理数据具有较大的差异性,而较低的标准差指标则代表了地理数据的一致性。

通过计算这些焦点统计指标,我们可以更好地理解和描述地理现象的分布特征和空间关系。

关于GDAL仿射变化参数和图像投影

关于GDAL仿射变化参数和图像投影

关于GDAL仿射变化参数和图像投影转⾃:关于GDAL计算图像坐标的⼏个问题使⽤GDAL处理地理图像时,不可避免的会遇到⼀个问题,图像的地理坐标问题,因为有了这个地理坐标,地理图像才和普通图像有了最本质的区别,那么在使⽤GDAL时,如何处理与地理坐标相关的信息呢?下⾯进⾏简单的说明。

1:如何使⽤⾏列号计算图像的地理坐标?或者如何通过地理坐标来定位在图像的某个位置?2:如何获取图像的四⾄范围?或者如果通过指定的地理范围计算图像的所在区域?要解决上⾯三个问题,⾸先需要知道和了解GDAL的数据模型,其中⾥⾯有个⾮常重要的就是投影和六参数。

这两个可以使⽤GDALDataset类中的GeoTransform()函数和GetProjectionRef()函数来进⾏获取。

第⼀个参数获取的是图像的六参数(我⾃⼰起的名字,是⼀个仿射变化的参数),第⼆个是图像的投影(也就是空间参考系统)。

下⾯先说说第⼀个六参数,六参数其实是图像⾏列号坐标和地理坐标转换的⼀组转换系数。

下⾯是⽤GT来表⽰六参数,图像⾏列号与图像的地理坐标之间的数学关系式如下:Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2)Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)上式中,Xgeo和Ygeo表⽰的图像的地理坐标,Xpixel表⽰图像的列号,Yline表⽰图像的⾏号,GT(i)就是上⾯所说的六参数,⼀共是六个值。

这六个值⼤致可以分为三组: GT(0)和GT(3)是第⼀组,表⽰图像左上⾓的地理坐标; GT(1)和GT(5)是第⼆组,表⽰图像横向和纵向的分辨率(⼀般这两者的值相等,符号相反,横向分辨率为正数,纵向分辨率为负数); GT(2)和GT(4)是第三组,表⽰图像旋转系数,对于⼀般图像来说,这两个值都为0。

为什么说图像的GT(0)和GT(3)表⽰图像左上⾓的坐标,对于图像⾏列号坐标系统来说,坐标的原点在左上⾓,所以左上⾓的⾏列号是(0,0),将坐标带⼊上式,可以得到:Xgeo = GT(0)Ygeo = GT(3)所以说GT(0)和GT(3)表⽰图像左上⾓的坐标。

GDAL综合整理

GDAL综合整理

GDAL综合整理GDAL(Geospatial Data Abstraction Library)是一个开源的地理信息系统软件库,提供了对各种格式和类型的栅格和矢量空间数据进行读取、写入和操作的功能。

本文将综合整理GDAL的相关内容,包括库的概述、常用功能和应用示例等。

一、GDAL库的概述GDAL是一个功能强大且广泛应用的地理信息系统库,它支持各种格式的栅格和矢量空间数据。

GDAL库本身是用C++编写的,但也有其他编程语言的绑定库,如Python、Java等,使得开发者可以使用不同的编程语言来调用GDAL库。

GDAL库的主要功能包括数据读取和写入、数据格式转换、数据投影转换以及数据处理等。

二、GDAL常用功能1. 数据读取和写入GDAL可以读取和写入各种格式的栅格和矢量数据,如GeoTIFF、Shapefile、NetCDF等。

通过GDAL的API,开发者可以轻松地将不同格式的数据导入到自己的应用程序中进行处理,也可以将处理结果导出为不同格式的数据。

2. 数据格式转换GDAL提供了丰富的数据格式转换功能,可以将一个格式的数据转换为另一个格式,如将GeoTIFF格式的数据转换为Erdas Imagine格式的数据。

这使得开发者可以在不同的GIS软件和平台之间进行数据交换和共享。

3. 数据投影转换GDAL具备强大的数据投影转换功能,可以根据定义的投影参数对数据进行投影转换。

通过GDAL的API,开发者可以将数据从一个投影系统转换为另一个投影系统,如将地理坐标系的数据转换为投影坐标系的数据。

4. 数据处理GDAL库提供了一系列的数据处理功能,如图像裁剪、重采样、镶嵌等。

通过这些功能,开发者可以对地理数据进行各种处理和分析,满足不同需求的应用场景。

三、GDAL应用示例1. 数据导入与导出使用GDAL库可以方便地将不同格式的地理数据导入到应用程序中进行处理。

例如,我们可以使用GDAL读取一个GeoTIFF格式的高程数据,然后在应用程序中进行地形分析和可视化。

gdal影像分块读取处理和写出的程序

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波段运算

gdal波段运算
(实用版)
目录
1.波段运算的概述
2.波段运算的基本原理
3.波段运算的主要应用领域
4.波段运算的优点和局限性
正文
一、波段运算的概述
波段运算是地理信息系统 (GIS) 中一种重要的空间数据处理方法,主要用于处理遥感图像。

波段运算能够提取图像中的特定信息,从而得到新的图像,这对于遥感图像的解译和分析具有重要意义。

二、波段运算的基本原理
波段运算是基于遥感图像中每个像素的光谱特性进行的。

遥感图像通常由多个波段组成,每个波段对应一种光谱特性。

波段运算通过对图像中不同波段的像素进行加、减、乘、除等运算,从而得到新的波段,实现对图像的增强、减弱或改变。

三、波段运算的主要应用领域
波段运算在地理信息系统 (GIS) 和遥感图像处理中有广泛的应用。

主要应用领域包括:
1.土地利用/覆盖分类:通过波段运算可以提取图像中的不同地物信息,从而实现土地利用/覆盖分类。

2.植被分析:通过波段运算可以提取植被的光谱特性,从而进行植被分析,如植被指数计算、植被分类等。

3.环境监测:通过波段运算可以提取环境监测相关的光谱特性,如水质、空气质量等。

gdal_点到多边形的最近点计算_概述及解释说明

gdal_点到多边形的最近点计算_概述及解释说明

gdal 点到多边形的最近点计算概述及解释说明1. 引言1.1 概述:本文详细介绍了GDAL(地理数据抽象库)中关于点到多边形最近点计算的问题以及相应的解决方法。

在地理信息系统领域中,点到多边形的最近点计算是一项重要且常见的任务,它用于确定一个给定的点与一个多边形之间的最短距离,并确定出具体的最近点。

本文将通过介绍GDAL库和其相关函数来解释这一过程。

1.2 文章结构:本文分为四个主要部分:引言、gdal 点到多边形的最近点计算、解释说明和结论。

引言部分提供了文章的背景和目标,同时对整篇文章进行了大致概述。

gdal 点到多边形最近点计算部分会详细介绍GDAL库及其相关知识,并提供该问题的概述。

接下来,解释说明部分将深入讲解点到多边形距离计算原理、GDAL库中相应函数及参数,并提供示例代码和使用步骤说明。

最后,在结论部分我们将总结GDAL在点到多边形最近点计算中的应用价值,并展望可能进行优化与改进的方向。

1.3 目的:本文旨在帮助读者更好地了解GDAL库及其在点到多边形最近点计算中的应用。

通过详细讲解相关知识和提供示例代码,读者可以学习使用GDAL库进行该计算,并理解其中的原理和参数设置。

同时,本文还将在结论部分探讨该问题的应用意义,并提出对GDAL库函数的优化与改进展望,以期为相关领域的研究者和开发者提供有价值的参考。

2. gdal点到多边形的最近点计算:2.1 GDAL简介:GDAL (Geospatial Data Abstraction Library) 是一个用于处理地理空间数据的开源库。

它提供了丰富的函数和工具,用于读取、写入和分析地理空间数据。

GDAL支持各种地理信息系统(GIS)格式,并提供了对这些格式进行转换、投影、裁剪等操作的能力。

2.2 点到多边形最近点问题概述:在地理空间数据分析中,常常会遇到需要计算点到多边形的最近距离以及最近点的问题。

该问题可以应用于路径规划、行程优化以及位置匹配等领域。

gdal cal两个栅格数据作差

gdal cal两个栅格数据作差

《利用GDAL计算两个栅格数据的差异》在地理信息系统(GIS)和遥感领域,栅格数据处理是非常重要的一部分。

而GDAL(Geospatial Data Abstraction Library)作为一个开源的栅格数据处理工具,在处理和分析栅格数据方面有着广泛的应用。

在本篇文章中,我将重点讨论如何利用GDAL计算两个栅格数据的差异,以及如何应用这一技术解决实际问题。

1. 栅格数据的差异概念栅格数据是由多个像素组成的二维数组,每个像素对应着地理空间中的一个位置。

而栅格数据的差异,则是指两个栅格数据在同一位置上的数值之间的差异,通常用于分析地表的变化或进行多期遥感影像的比较。

在GIS分析和地表监测中,计算栅格数据的差异是一项常见的任务,可以有效地提取出地表的变化信息。

2. GDAL计算栅格数据差异的原理GDAL提供了丰富的栅格数据处理功能,其中包括用于计算栅格数据差异的工具。

在GDAL中,可以利用一系列命令和函数来实现栅格数据差异的计算,比如栅格数据的减法运算、逻辑运算等。

利用这些功能,我们可以快速、准确地计算出两个栅格数据在同一位置上的差异,并将结果输出为新的栅格数据集。

3. 使用GDAL计算栅格数据的差异我们需要确保安装并配置好GDAL库及相关工具。

在准备就绪后,可以通过命令行或脚本来调用GDAL提供的函数和工具来计算栅格数据的差异。

以计算两个栅格数据A和B的差异为例,可以使用GDAL提供的减法运算函数进行计算,得到结果栅格数据C。

还可以进行更复杂的数据处理,比如差异的统计分析、可视化展示等。

4. 应用实例利用GDAL计算栅格数据的差异在实际应用中有着广泛的用途。

在土地利用变化检测中,可以比较不同时间段的影像数据,通过计算栅格数据的差异来提取出土地利用变化的信息;在环境监测中,可以比较不同地区的遥感影像数据,计算栅格数据的差异来分析环境质量的变化等。

5. 个人观点和总结利用GDAL计算栅格数据的差异是一项非常有用的技术,可以帮助我们更好地分析和理解地表的变化。

GDAL python教程基础篇OGR空间计算

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学习笔记

is$(HDF4_DIR)\lib\hd421.lib$(HDF4_DIR)\lib\hm421.lib用HDF4_LIB=/LIBPATH:这种形式似乎可以建立gdal的库,但是往下编译会出错。

而且要把$(HDF4_DIR)\dll和$(HDF4_DIR)\lib拷贝到同一个目录下,不然会提示找不到库),下面的19(0,0,0,255)(0,0,28,255)(0,0,56,255)(0,0,85,255)(0, 0,113,255)20(0,0,142,255)(0,0,170,255)(0,0,199,255)(0,0,227,255) (0,0,255,21255)(0,28,0,255)(0,28,28,255)(0,28,56,255)(0,28,85, 255)(0,28,22113,255)(0,28,142,255)(0,28,170,255)(0,28,199,255)(0, 28,227,25523)(0,28,255,255)(0,56,0,255)(0,56,28,255)(0,56,56,255) (0,56,8524,255)(0,56,113,255)(0,56,142,255)(0,56,170,255)(0,56, 199,255)(250,56,227,255)(0,56,255,255)(0,85,0,255)(0,85,28,255) (0,85,56,26255)(0,85,85,255)(0,85,113,255)(0,85,142,255)(0,85, 170,255)(0,2785,199,255)(0,85,227,255)(0,85,255,255)(0,113,0,255) (0,113,28,28255)(0,113,56,255)(0,113,85,255)(0,113,113,255)(0,113, 142,255)(290,113,170,255)(0,113,199,255)(0,113,227,255)(0,113,255, 255)(0,13042,0,255)(0,142,28,255)(0,142,56,255)(0,142,85,255) (0,142,113,31255)(0,142,142,255)(0,142,170,255)(0,142,199,255)(0, 142,227,255)32(0,142,255,255)(0,170,0,255)(0,170,28,255)(0,170,56, 255)(0,17033,85,255)(0,170,113,255)(0,170,142,255)(0,170,170,255) (0,170,19934,255)(0,170,227,255)(0,170,255,255)(0,199,0,255)(0, 199,28,255)35(0,199,56,255)(0,199,85,255)(0,199,113,255)(0,199,142, 255)(0,19369,170,255)(0,199,199,255)(0,199,227,255)(0,199,255,255) (0,227,037,255)(0,227,28,255)(0,227,56,255)(0,227,85,255)(0,227, 113,255)38(0,227,142,255)(0,227,170,255)(0,227,199,255)(0,227, 227,255)(0,39227,255,255)(0,255,0,255)(0,255,28,255)(0,255,56,255) (0,255,85,40255)(0,255,113,255)(0,255,142,255)(0,255,170,255)(0, 255,199,25541)(0,255,227,255)(0,255,255,255)(28,0,0,255)(28,0,28, 255)(28,0,4256,255)(28,0,85,255)(28,0,113,255)(28,0,142,255)(28, 0,170,255)43(28,0,199,255)(28,0,227,255)(28,0,255,255)(28,28,0, 255)(28,28,4428,255)(28,28,56,255)(28,28,85,255)(28,28,113,255)(28, 28,142,24555)(28,28,170,255)(28,28,199,255)(28,28,227,255)(28, 28,255,255)46(28,56,0,255)(28,56,28,255)(28,56,56,255)(28,56,85, 255)(28,56,47113,255)(28,56,142,255)(28,56,170,255)(28,56,199,255) (28,56,227,48255)(28,56,255,255)(28,85,0,255)(28,85,28,255)(28,85, 56,255)(2498,85,85,255)(28,85,113,255)(28,85,142,255)(28,85,170, 255)(28,8550,199,255)(28,85,227,255)(28,85,255,255)(28,113,0,255) (28,113,2851,255)(28,113,56,255)(28,113,85,255)(28,113,113,255)(28, 113,142,52255)(28,113,170,255)(28,113,199,255)(28,113,227,255)(28, 113,255,53255)(28,142,0,255)(28,142,28,255)(28,142,56,255)(28, 142,85,255)54(28,142,113,255)(28,142,142,255)(28,142,170,255)(28,142, 199,255)55(28,142,227,255)(28,142,255,255)(28,170,0,255)(28,170, 28,255)(2856,170,56,255)(28,170,85,255)(28,170,113,255)(28,170,142, 255)(28,57170,170,255)(28,170,199,255)(28,170,227,255)(28,170,255, 255)(28,58199,0,255)(28,199,28,255)(28,199,56,255)(28,199,85,255) (28,199,59113,255)(28,199,142,255)(28,199,170,255)(28,199,199,255) (28,199,60227,255)(28,199,255,255)(28,227,0,255)(28,227,28,255) (28,227,56,61255)(28,227,85,255)(28,227,113,255)(28,227,142,255)(28, 227,170,62255)(28,227,199,255)(28,227,227,255)(28,227,255,255)(28, 255,0,25635)(28,255,28,255)(28,255,56,255)(28,255,85,255)(28,255, 113,255)64(28,255,142,255)(28,255,170,255)(28,255,199,255)(28,255, 227,255)65(28,255,255,255)(56,0,0,255)(56,0,28,255)(56,0,56,255) (56,0,8566,255)(56,0,113,255)(56,0,142,255)(56,0,170,255)(56, 0,199,255)(6756,0,227,255)(56,0,255,255)(56,28,0,255)(56,28,28,255) (56,28,5686,255)(56,28,85,255)(56,28,113,255)(56,28,142,255)(56, 28,170,25695)(56,28,199,255)(56,28,227,255)(56,28,255,255)(56,56, 0,255)(5670,56,28,255)(56,56,56,255)(56,56,85,255)(56,56,113,255) (56,56,17142,255)(56,56,170,255)(56,56,199,255)(56,56,227,255) (56,56,255,72255)(56,85,0,255)(56,85,28,255)(56,85,56,255)(56,85, 85,255)(56,7385,113,255)(56,85,142,255)(56,85,170,255)(56,85,199, 255)(56,85,74227,255)(56,85,255,255)(56,113,0,255)(56,113,28,255) (56,113,56,75255)(56,113,85,255)(56,113,113,255)(56,113,142,255)(56, 113,170,76255)(56,113,199,255)(56,113,227,255)(56,113,255,255)(56, 142,0,25775)(56,142,28,255)(56,142,56,255)(56,142,85,255)(56,142, 113,255)78(56,142,142,255)79>>>通过GetRasterColorInterpretation,我们知道我们的图像是一个颜色表索引的图像而不是纯粹的黑白灰度图像(PaletteIndex,其他的颜色模型,可以察看gdalconst模块中GCI打头的枚举值)。

gdal库的学习和使用

gdal库的学习和使用

gdal库的学习和使⽤1、windows下的编译 1.1、解压后打开nmake.opt,设置GDAL_HOME 1.2、进⼊vs的command promot,进⼊正常的那个即可,64位的没试过,可以参考gdal官⽹ 1.3、nmake /f makefile.vc 1.4、nmake /f makefile.vc install 1.5、nmake /f makefile.vc devinstall2、编译proj  #PROJ_FLAGS =-DPROJ_STATIC #PROJ_INCLUDE =-Id:\projects\proj.4\src #PROJ_LIBRARY =d:\projects\proj.4\src\proj_i.lib 修改为: #PROJ_FLAGS =-DPROJ_STATIC PROJ_INCLUDE =-IF:\Work\3rdPart\proj-4.7.0\src PROJ_LIBRARY =F:\Work\3rdPart\proj-4.7.0\src\proj_i.lib 最上⾯的PROJ_FLAGS的作⽤经试验表明是这样⼦: 如果取消注释,那么运⾏的时候会主动提⽰确实proj.dll;如果加上注释,那么会输出Unable to load PROJ.4 library (proj.dll) (太假了)2、打开⽂件#include "gdal_priv.h"#include "cpl_conv.h"// for CPLMalloc()int main(){GDALDataset *poDataset;GDALAllRegister();poDataset = (GDALDataset *) GDALOpen( pszFilename, GA_ReadOnly );if( poDataset == NULL ){...;}gdal中⽂路径的问题不改变GDAL源代码,在⾃⼰调⽤GDALRegisterAll()和OGRAllRegiser()函数后,加上下⾯⼀句即可。

GDAL关于读写图像的简明总结

GDAL关于读写图像的简明总结

GDAL关于读写图像的简明总结读写影像可以说是图像处理最基础的⼀步。

关于使⽤GDAL读写影像,平时也在⽹上查了很多资料,就想结合⾃⼰的使⽤⼼得,做做简单的总结。

在这⾥写⼀个例⼦:裁剪lena图像的某部分内容,将其放⼊到新创建的.tif⽂。

以此来说明GDAL读写影像的具体实现。

1.打开图像⽤GDAL打开lena.bmp,实现如下。

注意这⾥打开图像,指的是获取图像的头⽂件,以此得到图像的⼀些信息,没有涉及到读取像素操作。

GDALAllRegister(); //GDAL所有操作都需要先注册格式CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO"); //⽀持中⽂路径const char* imgPath = "E:\\Data\\lena.bmp";GDALDataset* img = (GDALDataset *)GDALOpen(imgPath, GA_ReadOnly);if (img == nullptr){cout << "Can't Open Image!" << endl;return 1;}图像需要关注的信息很多,可以重点关注以下四个值。

图像宽、⾼总所周知了,⽽波段数就是通道,如RGB图像的波段数为3。

深度标识的就是图像的存储单位,⽐如⼀般图像就是8位,⽤⽆字节字符型unsigned char来表达0~255的像素值;⽽除以8标识1个字节,⽅便读取像素buf。

int imgWidth = img->GetRasterXSize(); //图像宽度int imgHeight = img->GetRasterYSize(); //图像⾼度int bandNum = img->GetRasterCount(); //波段数int depth = GDALGetDataTypeSize(img->GetRasterBand(1)->GetRasterDataType()) / 8; //图像深度如果已经读取完毕或者不需要这张图像的相关操作了,最后要关闭打开的⽂件,否则会内存泄漏。

GDAL——命令使用专题——gdallocationinfo命令

GDAL——命令使用专题——gdallocationinfo命令

GDAL——命令使⽤专题——gdallocationinfo命令GDAL——命令使⽤专题——gdallocationinfo命令前⾔ GDAL(Geospatial Data Abstraction Library)是⼀个在X/MIT许可协议下的开源栅格空间数据转换库。

它利⽤抽象数据模型来表达所⽀持的各种⽂件格式。

它还有⼀系列命令⾏⼯具来进⾏数据转换和处理。

主要针对:ogrinfo命令、gdalinfo命令、gdalsrsinfo命令、gdallocationinfo命令、gdal_translate命令、gdaltransform命令等。

这⼀节讨论gdallocationinfo 命令。

gdallocationinfo命令主要是⽤于栅格数据信息查询。

它提供了⼀种机制,根据像素在各种坐标系中的位置,查询有关该像素的信息。

查询图像指定位置的像元值。

软件环境:在安装Mapserver时集成安装。

详见《》。

语法Usage: gdallocationinfo [--help-general] [-xml] [-lifonly] [-valonly][-b band]* [-overview overview_level][-l_srs srs_def] [-geoloc] [-wgs84][-oo NAME=VALUE]* srcfile [x y]命令描述 -xml:输出xml数据格式。

-lifonly:只输出LocationInfo请求⽂件名信息 -valonly:只输出指定位置的每个波段像元值。

-b:指定波段查询。

-overview:查询(overview_level)概览(overview_level=1是第⼀次概览),⽽不是波段。

注意:x,y的位置(如果坐标系统是像素/直线)仍然必须相对于波段给出。

-l_srs:指定输⼊x,y坐标的坐标系。

-geoloc:表⽰输⼊x,y坐标的坐标系。

GDAL综合整理

GDAL综合整理

GDAL综合整理⼀、简介1.GDAL简单地说,GDAL是⼀个操作各种栅格地理数据格式的库。

包括读取、写⼊、转换、处理各种栅格数据格式(有些特定的格式对⼀些操作如写⼊等不⽀持)。

它使⽤了⼀个单⼀的抽象数据模型就⽀持了⼤多数的栅格数据(GIS对栅格,⽮量,3D数据模型的抽象能⼒实在令⼈叹服)。

当然除了栅格操作,这个库还同时包括了操作⽮量数据的另⼀个有名的库ogr(ogr 这个库另外介绍),这样这个库就同时具备了操作栅格和⽮量数据的能⼒。

最重要的是这个库是跨平台的,开源的!如今这个库对各种数据格式的⽀持相当强⼤,⼏乎所有的GIS、RS所要处理的数据格式类型都包括在内。

它的主页最后那些使⽤了它作为底层数据处理的软件列表中,不仅有GRASS、Quantum GIS (QGIS),更有Google Earth。

学习这个库是⼗分有必要的。

该库在C/C++/python/ruby/VB/java/C#(这个暂时不完全⽀持)下都能⽤,⽽且都⼀样⽤。

GDAL(Geospatial Data Abstraction Library)是⼀个在X/MIT许可协议下的开源栅格空间数据转换库。

它利⽤抽象数据模型来表达所⽀持的各种⽂件格式。

它还有⼀系列命令⾏⼯具来进⾏数据转换和处理。

2.OgrOGR是GDAL项⽬的⼀个分⽀,功能与GDAL类似,只不过它提供对⽮量数据的⽀持。

有很多著名的GIS类产品都使⽤了GDAL/OGR库,包括ESRI的ArgGIS 9.2,Google Earth和跨平台的GRASS GIS系统。

利⽤GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对⽮量和栅格⽂件数据⼆、⼤体结构GDAL使⽤抽象数据模型(abstract datamodel)来解析它所⽀持的数据格式,抽象数据模型包括数据集(dataset),坐标系统,仿射地理坐标转换(Affine GeoTransform),⼤地控制点(GCPs),元数据(Metadata),栅格波段(Raster Band),颜⾊表(ColorTable),⼦数据集域(Subdatasets Domain),图像结构域(Image_StructureDomain),XML域(XML:Domains)。

gdal 焦点统计法

gdal 焦点统计法

gdal 焦点统计法摘要:1.介绍GDAL2.焦点统计法的概念3.焦点统计法的应用场景4.GDAL 中焦点统计法的实现5.结果展示与分析正文:GDAL(Geospatial Data Abstraction Library)是一个用于处理地理空间数据的强大工具,它支持多种数据格式的读取、写入、处理和分析。

在众多功能中,焦点统计法是GDAL 提供的一种空间数据分析方法,能够帮助我们挖掘空间数据中的潜在信息。

焦点统计法(Focal Statistics)是一种在空间数据上执行局部统计的方法,可以对数据进行汇总、平均、最大值、最小值等计算。

通过这种方法,我们可以在保持空间数据原始特征的同时,获取到更具实际意义的统计结果。

焦点统计法广泛应用于遥感图像处理、土地利用规划、环境监测等领域。

在GDAL 中,焦点统计法的实现主要依赖于两种工具:gdal_polygonize.py 和gdal_rasterize.py。

这两个工具可以根据输入的矢量数据和栅格数据,分别生成对应的矢量数据和栅格数据。

在这个过程中,焦点统计法可以对生成的栅格数据进行局部统计计算。

以遥感图像为例,我们可以使用GDAL 焦点统计法来提取某一特定区域内的平均值。

具体操作步骤如下:1.读取遥感图像数据:使用GDAL 的`gdal.Open()`函数打开遥感图像文件。

2.定义感兴趣区域(ROI):通过绘制矢量多边形,定义需要进行焦点统计分析的区域。

3.应用焦点统计法:调用GDAL 的`gdal_polygonize.py`工具,对感兴趣区域进行栅格化处理,并使用`gdal_rasterize.py`工具执行焦点统计计算。

4.结果展示与分析:将焦点统计结果保存为新的栅格文件,并用GDAL 的相关函数进行可视化展示和分析。

通过以上步骤,我们可以得到遥感图像中特定区域的平均值分布情况,进一步挖掘原始数据中的有用信息。

总之,GDAL 提供的焦点统计法功能为空间数据分析提供了新的思路和方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可能你不玩GIS,不懂这个库到底有什么用,或者和python有什么关系。

但是你要玩GIS,RS,你就应当知道这个库的价值。

就算你不玩GIS,我想这个库对你也应该有致命的吸引力。

为什么?看下面的介绍吧!先看看这段GDAL主页上的英文介绍吧!is a translator library for raster geospatial data formats that is released under an X/MIT style Open Source license bythe Open Source Geospatial Foundation. As a library, it presents a single abstract data model to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for data translation and processing. 简单地说,GDAL是一个操作各种栅格地理数据格式的库。

包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。

它使用了一个单一的抽象数据模型就支持了大多数的栅格数据(GIS对栅格,矢量,3D数据模型的抽象能力实在令人叹服)。

当然除了栅格操作,这个库还同时包括了操作矢量数据的另一个有名的库ogr(ogr这个库另外介绍),这样这个库就同时具备了操作栅格和矢量数据的能力,买一送一,这么合算的买卖为什么不做。

最最最重要的是这个库是跨平台的,开源的!如今这个库对各种数据格式的支持强大到令人啧啧的地步了。

如果你对他的强大有什么怀疑的话,看看这里一大串的GDAL所支持格式清单,吓到了吧!再看看它的主页最后那些使用了它作为底层数据处理的软件列表吧!其中你可以不知道GRASS,你也可以不知道Quantum GIS (QGIS),但是你总该知道Google Earth 吧!不知道?赶快下一个去玩玩--会当临绝顶,一览众山小!有人说我又不玩GIS。

不错,但是,你即使不玩GIS,这个库也是满有用的。

首先,哪个库支持这么多栅格(图片)格式,哪个库在C/C++/python/ruby/VB/java/C#(这个暂时不完全支持)下都能用,而且都一样用?退一步讲,3S软件又不一定要用在3S下(很多医学影像就是用PCI软件来处理的)。

再退一步,你的生活即使和3S一点关系都没有,栅格数据又不单单只有GIS下才用到。

你大可用这个库来读取jpg,gif,tif,xpm等格式。

而且对各种格式支持得不是一般的好,很大一部分非标准格式照样支持得非常好。

我曾经在java 下玩过jai,以及一系列jai的扩展库,一些图像格式在很多图片浏览器中都可以正确读取(有的甚至不是非标准格式),用jai死活就读不出来!这个库的python版和其他的python库结合的很好。

最直接、明显的支持是使用Numeric库来进行数据读取和操作。

各种矩阵魔术可以发挥得淋漓尽致(图像其实就是矩阵)。

而且按我的观点,python对矩阵的操作比其他的语言有明显的优势。

写出来的东西比其他语言写出来的短小的多,而且好看得多。

并且python的弱类型在处理栅格数据格式类型的时候代码量比强类型的语言少了数倍(不用double,byte,short等等分开处理,这简直就是先天上的优势)。

所以我就喜欢用python做图像的处理。

所以就连GIS界的微软ESRI也直接在ARCGIS9中用python来作栅格数据的导入导出。

一句话,真是太方便啦!2. 安装2.1. windows下的安装官方安装文档在这里。

下面是我自己的实践步骤:先去/dl/下一个版本,解压。

打开控制台,输入:“D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" 注册vc的编译环境。

打开gdal文件夹下的nmake.opt修改GDAL_HOME = "C:\warmerda\bld"把路径改到需要把gdal安装的地方。

不改也可以。

这里需要添加python支持,所以修改PY_INST_DIR = $(GDAL_HOME)\pymod把路径改成python下的Lib\site-packages文件夹下。

PYDIR = "C:\Software\Python24" 改成python的安装路径。

下面的参数爱改什么就把前面的#删除(要看您有没有那些库的源码),注意一下路径就可以了。

我是都没改。

后面就依次运行Toggle line numbers Toggle line numbers1 nmake /f makefile.vc2 nmake /f makefile.vc install3 nmake /f makefile.vc devinstall最后最后,还要去GDAL_HOME目录下的bin文件夹下把gdal13.dll (也有可能是gdal12.dll)copy到PY_INST_DIR路径下到此处就完成安装gdal(python)的工作。

最后需要注意一下,gdal在.net2005下只能顺利编译1.2,1.3以上版本不能顺利编译,有一个地方指针转换出错。

可能是2005的编译器比以往的严厉一点吧。

另外,安装了QGIS,对编译也有一些影响,主要是proj库的冲突,导致一个找不到"d:/program.obj"文件的错误,如果你有静态编译过proj,那么你可以打开nmake.opt修改有关proj的设置,如果搞不定,就卸载QGIS,然后编译,编译后再安装QGIS.呵呵,还好QGIS的体积没有ArcGIS那么可怕.2.2. linux下的安装linux下的安装就更简单了。

直接Toggle line numbers Toggle line numbers1 ./configure2 make$(HDF4_DIR)\lib\hd421.lib $(HDF4_DIR)\lib\hm421.lib你也可以试一试在D:\Program Files\Microsoft Visual Studio .NET2003\Common7\Tools\vsvars32.bat文件中添加HDF4_LIB路径到“@set LIB=”这行的末尾(不要忘记;的分割符)。

然后找一下"INC="这行,把-I$(HDF4_DIR)\include加到下一行的末尾(应该也可以在vsvars32.bat中添加路径,不过要重启命令行)。

然后编译吧!祝你好运。

注意:上面的HDF4_DIR 是我本机的路径,你要根据你自己的路径进行设置(想起我的一个老师说过的话:“抄人家的作业可以,不要连名字也一起抄走啊” ),下面的$(HDF4_DIR)可以不用改,那个是变量,会自动替代HDF4_DIR 路径。

编译成功后,要HDF4能运行,还需要两个库,一个是zlib,一个是szip,可以到下面两个链接去下载一个ftp:///lib-external/zlib/1.2/binftp:///lib-external/szip/2.0/bin/windows把这两个库下载后解压,然后设置PATH系统变量,使得它们在默认状态下也可以被动态链接成功。

在Linux下比在Windows下简单:只要用./configure --help察看一下打开HDF4的编译开关(包括库路径,头文件路径等,看清楚),然后在./configure 后面加上那个开关以及hdf4的安装路径后就可以了。

在configure后gdal会提示是否支持HDF4。

编译后也要把zlib和szip的动态链接库设置好。

到此你已经可以用C/C++来操作gdal读写hdf4的格式了!最后,为了让Python能够支持hdf的读写,别忘了把重新生成安装后的pymod目录下的内容,还有gdal13,还有那两个hdf的库,还有zlib,szip的库拷贝到Python的Lib\site-packages目录下。

2.4. 下载如果你实在玩不转,可以在这里下载已经编译好的gdal1.3.2程序库以及其依赖的其他库,其中包括hdf4,hdf5支持,以及proj,geos插件。

注意,这里的geos是静态链接的,注意版权(geos是LGPL的license)。

hdf4和hdf5用的是release版本。

这里是我的nmake配置文件,你可以对照你的实际情况参考一下。

3. 快速开始其实在主站的教程里已经有python的示例了。

但是我们还是按照自己的思路来开始吧。

第一步就是打开一个数据集。

对于“数据集”这个名词大家可能不会太习惯,但是对于一般的格式来说,一个“数据集”就是一个文件,比如一个gif文件就是一个以gif为扩展名的文件。

但是对于众多RS数据来说,一个数据集包含的绝对不仅仅是一个文件。

对于很多RS 数据,他们把一张图像分成数个图像文件,然后放在一个文件夹中,用一些额外的文件来组织它们之间的关系,形成一个“数据集”。

如果你不理解,那么就算了,当成jpg或者gif文件好了。

下面我们打开一个tiff文件(GeoTIFF)。

这个文件是我从GRASS的示例数据spearfish 中导出的一个同名影像数据。

Toggle line numbers Toggle line numbers1 >>> import gdal2 >>> dataset = gdal.Open("j:/gisdata/gtif/spot.tif")3 >>> dir(dataset)4 ['AddBand', 'AdviseRead', 'BuildOverviews', 'FlushCache','GetDescription', 'Get5 Driver', 'GetGCPCount', 'GetGCPProjection', 'GetGCPs','GetGeoTransform', 'GetMe6 tadata', 'GetProjection', 'GetProjectionRef', 'GetRasterBand', 'GetSubDatasets',7 'RasterCount', 'RasterXSize', 'RasterYSize', 'ReadAsArray','ReadRaster', 'Refr8 eshBandInfo', 'SetDescription', 'SetGCPs', 'SetGeoTransform','SetMetadata', 'Se9 tProjection', 'WriteRaster', '__del__', '__doc__', '__init__', '__module__', '_b10 and', '_o']11 >>>这样我们就打开了这个文件。

相关文档
最新文档