GDAL库安装Word格式.docx
- 文档编号:19863858
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:9
- 大小:814.99KB
GDAL库安装Word格式.docx
《GDAL库安装Word格式.docx》由会员分享,可在线阅读,更多相关《GDAL库安装Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
4.然后在DOS中依次输入:
nmake/fmakefile.vc
nmake/fmakefile.vcinstall
nmake/fmakefile.vcdevinstall
中间等待编译处理。
处理完后系统将会把我们需要的文件拷贝到开始设定的安装目录,如刚才设置的C:
\GDAL
二、应用
1.在新建项目下:
属性->
C/C++->
常规->
附加包含目录:
"
\GADL\include"
。
链接器->
附加库目录:
\GADL\lib"
.
连接器->
输入->
附加依赖项:
gdal_i.lib.
2.将C:
\GDAL\bin\gdal14.dll拷贝到vs新建项目的debug文件夹中。
(否则运行时会提示找不到gdal14.dll)
添加所需的头文件就可以用了。
OGR参考(http:
//www.gdal.org/ogr/index.html)
三、实例
下面附上一个一个GDAL的读写数据例子
引自
//
#include"
stdafx.h"
fangshibo.h"
#include<
vector>
#include<
math.h>
///gdal头文件
..\\include\\gdal.h"
..\\include\\gdal_priv.h"
..\\include\\ogr_srs_api.h"
..\\include\\cpl_string.h"
..\\include\\cpl_conv.h"
#pragmacomment(lib,"
..\\lib\\gdal_i.lib"
)
/////////////////////////////////////////////////////////////////////////////
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
//Theoneandonlyapplicationobject
CWinApptheApp;
usingnamespacestd;
///////////////////////
voidMaxNDVI(vector<
CString>
files,CStringmaxNDVfile)
{
//
GDALAllRegister();
vector<
GDALDataset*>
datasets;
//打开文件
for(inti=0;
i<
files.size();
i++)
{
CStringfilename=files[i];
GDALDataset*tmpDataset=(GDALDataset*)GDALOpen(files[i],
GA_ReadOnly);
if(tmpDataset!
=NULL)
datasets.push_back(tmpDataset);
}
else
{
fprintf(stderr,"
GDALOpenfailed-%d\n%s\n"
CPLGetLastErrorNo(),
CPLGetLastErrorMsg());
}
tmpDataset=NULL;
//以后再释放
////读取数据咯,按行来读取
//GDALDir
if(datasets.size()==0)return;
GDALDataset*tmpDataset=datasets[0];
GDALDriver*driver=NULL;
intindex=maxNDVfile.ReverseFind('
.'
);
if(index<
0)
return;
if(index==maxNDVfile.GetLength()-1)
CStringsuffix=maxNDVfile.Right(maxNDVfile.GetLength()-1-index);
suffix.MakeLower();
if(suffix=="
bmp"
driver=GetGDALDriverManager()->
GetDriverByName("
BMP"
elseif(suffix=="
jpg"
JPEG"
tif"
GTiff"
img"
HFA"
bt"
BT"
ecw"
ECW"
fits"
FITS"
gif"
GIF"
hdf"
HDF4"
hdr"
EHdr"
intw=tmpDataset->
GetRasterXSize();
inth=tmpDataset->
GetRasterYSize();
GDALDataset*maxNDV=driver->
Create(maxNDVfile,w,h,1,GDT_Float32,NULL);
intxOff=0;
intyOff=0;
intwidth=w;
intheight=1;
//一行一行地读取
float*>
bufs;
datasets.size();
float*buf=newfloat[width*height];
bufs.push_back(buf);
buf=NULL;
float*newbuf=newfloat[width*height];
GDALRasterBand*newpoband=maxNDV->
GetRasterBand
(1);
for(intj=0;
j<
h;
j++)
GDALDataset*tmpDt=datasets[i];
GDALRasterBand*poband=tmpDt->
float*buf=bufs[i];
xOff=0;
yOff=j;
poband->
RasterIO
(GF_Read,xOff,yOff,width,height,buf,width,height,GDT_Float32,0,0);
tmpDt=NULL;
//在后面再释放,因为很多个指针指向同一一段内存,不能随
便释放内存哦
//////////
//在这可以开始运算咯
for(intk=0;
k<
w;
k++)//对于每个像元
//下面这段代码以后要支持均值,极差,方差
for(intkk=0;
kk<
bufs.size();
kk++)
float*buf=bufs[kk];
if(kk==0)//初始化
newbuf[k]=buf[k];
if(buf[k]>
newbuf[k])//最大的,稍微改下就是最小值,
//////////写入数据
newpoband->
(GF_Write,xOff,yOff,width,height,newbuf,width,height,GDT_Float32,0,0);
deletenewbuf;
newbuf=NULL;
for(i=0;
if(bufs[i]!
deletebufs[i];
bufs.resize(0);
deletemaxNDV;
maxNDV=NULL;
deletedriver;
driver=NULL;
//释放掉内存
if(datasets[i]!
deletedatasets[i];
datasets[i]=NULL;
datasets.resize(0);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GDAL 安装