GDAL库.docx
- 文档编号:5912021
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:20
- 大小:62.14KB
GDAL库.docx
《GDAL库.docx》由会员分享,可在线阅读,更多相关《GDAL库.docx(20页珍藏版)》请在冰豆网上搜索。
GDAL库
GDAL/ORG库
GDAL(GeospatialDataAbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。
它利用抽象数据模型来表达所支持的各种文件格式。
它还有一系列命令行工具来进行数据转换和处理。
OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。
有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ArgGIS9.2,GoogleEarth和跨平台的GRASSGIS系统。
利用GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对矢量和栅格文件数据的支持。
1.GDAL
GDAL提供对多种栅格数据的支持,包括Arc/InfoASCIIGrid(asc),GeoTiff(tiff),ErdasImagineImages(img),ASCIIDEM(dem)等格式。
GDAL使用抽象数据模型(abstractdatamodel)来解析它所支持的数据格式,抽象数据模型包括数据集(dataset),坐标系统,仿射地理坐标转换(AffineGeoTransform),大地控制点(GCPs),元数据(Metadata),栅格波段(RasterBand),颜色表(ColorTable),子数据集域(SubdatasetsDomain),图像结构域(Image_StructureDomain),XML域(XML:
Domains)。
GDALMajorObject类:
带有元数据的对象。
GDALDdataset类:
通常是从一个栅格文件中提取的相关联的栅格波段集合和这些波段的元数据;GDALDdataset也负责所有栅格波段的地理坐标转换(georeferencingtransform)和坐标系定义。
GDALDriver类:
文件格式驱动类,GDAL会为每一个所支持的文件格式创建一个该类的实体,来管理该文件格式。
GDALDriverManager类:
文件格式驱动管理类,用来管理GDALDriver类。
2.OGR
OGR提供对矢量数据格式的读写支持,它所支持的文件格式包括:
ESRIShapefiles,S-57,SDTS,PostGIS,OracleSpatial,Mapinfomid/mif,MapinfoTAB。
1)OGR体系结构
OGR包括如下几部分:
Geometry:
类Geometry(包括OGRGeometry等类)封装了OpenGIS的矢量数据模型,并提供了一些几何操作,WKB(WellKnowsBinary)和WKT(WellKnownText)格式之间的相互转换,以及空间参考系统(投影)。
SpatialReference:
类OGRSpatialReference封装了投影和基准面的定义。
Feature:
类OGRFeature封装了一个完整feature的定义,一个完整的feature包括一个geometry和geometry的一系列属性。
FeatureDefinition:
类OGRFeatureDefn里面封装了feature的属性,类型、名称及其默认的空间参考系统等。
一个OGRFeatureDefn对象通常与一个层(layer)对应。
Layer:
类OGRLayer是一个抽象基类,表示数据源类OGRDataSource里面的一层要素(feature)。
DataSource:
类OGRDataSource是一个抽象基类,表示含有OGRLayer对象的一个文件或一个数据库。
Drivers:
类OGRSFDriver对应于每一个所支持的矢量文件格式。
类OGRSFDriver由类OGRSFDriverRegistrar来注册和管理。
图-OGR的Geometry模型关系图
图-OpenGIS的简单要素数据模型
由上面两图的对比,可以清楚的看到,OGR的Geometry模型是严格遵循OpenGIS的简单要素数据规范的。
OGR的Geometry模型不仅在继承体系上与OpenGIS的简单要素数据模型一致,在函数接口上也向其靠拢,从基本的获取Geometry对象信息的方法如Dimension()、GeometryType()、SRID()、Envelope()、AsText()、Boundary()等到判定空间未知关系的方法如Equals(anotherGeometry:
Geometry)、Disjoint(anotherGeometry:
Geometry)、Intersects(anotherGeometry:
Geometry)、Touches(anotherGeometry:
Geometry)等都是符合其标准的。
3)OGR的API使用范例:
以下C++示例代码展示使用OGR的API来读取矢量数据。
#include"ogrsf_frmts.h"
intmain()
{
//注册所有的文件格式驱动
OGRRegisterAll();
//打开point.shp文件
OGRDataSource*poDS=OGRSFDriverRegistrar:
:
Open("point.shp",FALSE);
//获取点层
OGRLayer*poLayer=poDS->GetLayerByName("point");
OGRFeature*poFeature;
//重置该层,确保从层的开始读取数据
poLayer->ResetReading();
while((poFeature=poLayer->GetNextFeature())!
=NULL)
{
//获取该层的属性信息
OGRFeatureDefn*poFDefn=poLayer->GetLayerDefn();
intiField;
for(iField=0;iField
{//获取某一个字段的信息
OGRFieldDefn*poFieldDefn=poFDefn->GetFieldDefn(iField);
if(poFieldDefn->GetType()==OFTInteger)
printf("%d,",poFeature->GetFieldAsInteger(iField));
}
OGRGeometry*poGeometry;
//获取feature
poGeometry=poFeature->GetGeometryRef();
//用wkbFlatten宏把wkbPoint25D类型转换为wkbPoint类型
if(poGeometry!
=NULL
&&wkbFlatten(poGeometry->getGeometryType())==wkbPoint)
{
OGRPoint*poPoint=(OGRPoint*)poGeometry;
printf("%.3f,%3.f\n",poPoint->getX(),poPoint->getY());
}
else
printf("nopointgeometry\n");
//销毁feature
OGRFeature:
:
DestroyFeature(poFeature);
}
//销毁数据源,以便关闭矢量文件
OGRDataSource:
:
DestroyDataSource(poDS);
}
2GDALRasterFormats
LongFormatName
Code
Creation
Georeferencing
Maximumfilesize1
Compiledby
default
Arc/InfoASCIIGrid
AAIGrid
Yes
Yes
2GB
Yes
ADRG/ARCDigitilizedRasterGraphics(.gen/.thf)
ADRG
Yes
Yes
--
Yes
Arc/InfoBinaryGrid(.adf)
AIG
No
Yes
--
Yes
AIRSARPolarimetric
AIRSAR
No
No
--
Yes
MagellanBLXTopo(.blx,.xlb)
BLX
Yes
Yes
--
Yes
BathymetryAttributedGrid(.bag)
BAG
No
Yes
2GiB
No,needslibhdf5
MicrosoftWindowsDeviceIndependentBitmap(.bmp)
BMP
Yes
Yes
4GiB
Yes
BSBNauticalChartFormat(.kap)
BSB
No
Yes
--
Yes,canbedisabled
VTPBinaryTerrainFormat(.bt)
BT
Yes
Yes
--
Yes
CEOS(Spotforinstance)
CEOS
No
No
--
Yes
DRDCCOASPSARProcessorRaster
COASP
No
No
--
Yes
TerraSAR-XComplexSARDataProduct
COSAR
No
No
--
Yes
ConvairPolGASPdata
CPG
No
Yes
--
Yes
SpotDIMAP(metadata.dim)
DIMAP
No
Yes
--
Yes
ELASDIPEx
DIPEx
No
Yes
--
Yes
DODS/OPeNDAP
DODS
No
Yes
--
No,needslibdap
FirstGenerationUSGSDOQ(.doq)
DOQ1
No
Yes
--
Yes
NewLabelledUSGSDOQ(.doq)
DOQ2
No
Yes
--
Yes
MilitaryElevationData(.dt0,.dt1,.dt2)
DTED
Yes
Yes
--
Yes
ERMapperCompressedWavelets(.ecw)
ECW
Yes
Yes
No,needsECWSDK
ESRI.hdrLabelled
EHdr
Yes
Yes
Nolimits
Yes
ErdasImagineRaw
EIR
No
Yes
--
Yes
NASAELAS
ELAS
Yes
Yes
--
Yes
ENVI.hdrLabelledRaster
ENVI
Yes
Yes
Nolimits
Yes
Epsilon-Waveletcompressedimages
EPSILON
Yes
No
--
No,needsEPSILONlibrary
ERMapper(.ers)
ERS
Yes
Yes
Yes
EnvisatImageProduct(.n1)
ESAT
No
No
--
Yes
EOSATFASTFormat
FAST
No
Yes
--
Yes
FIT
FIT
Yes
No
--
Yes
FITS(.fits)
FITS
Yes
No
--
No,needslibcfitsio
FujiBASScannerImage
FujiBAS
No
No
--
Yes
GenericBinary(.hdrLabelled)
GENBIN
No
No
--
Yes
OracleSpatialGeoRaster
GEORASTER
Yes
Yes
--
No,needsOracleclientlibraries
GSatFileFormat
GFF
No
No
--
Yes
GraphicsInterchangeFormat(.gif)
GIF
Yes
No
2GB
Yes(internalGIFlibraryprovided)
WMOGRIB1/GRIB2(.grb)
GRIB
No
Yes
2GB
Yes,canbedisabled
GMTCompatiblenetCDF
GMT
Yes
Yes
2GB
No,needslibnetcdf
GRASSRasters
GRASS
No
Yes
--
No,needslibgrass
GoldenSoftwareASCIIGrid
GSAG
Yes
No
--
Yes
GoldenSoftwareBinaryGrid
GSBG
Yes
No
4GiB(32767x32767of4byteseach+56byteheader)
Yes
GoldenSoftwareSurfer7BinaryGrid
GS7BG
No
No
4GiB
Yes
GSCGeogrid
GSC
Yes
No
--
Yes
TIFF/BigTIFF/GeoTIFF(.tif)
GTiff
Yes
Yes
4GiBforclassicalTIFF/NolimitsforBigTIFF
Yes(internallibtiffandlibgeotiffprovided)
NOAA.gtxverticaldatumshift
GTX
Yes
Yes
Yes
GXF-GrideXchangeFile
GXF
No
Yes
4GiB
Yes
HierarchicalDataFormatRelease4(HDF4)
HDF4
Yes
Yes
2GiB
No,needslibdf
HierarchicalDataFormatRelease5(HDF5)
HDF5
No
Yes
2GiB
No,needslibhdf5
HF2/HFZheightfieldraster
HF2
Yes
Yes
-
Yes
ErdasImagine(.img)
HFA
Yes
Yes
Nolimits2
Yes
ImageDisplayandAnalysis(WinDisp)
IDA
Yes
Yes
2GB
Yes
ILWISRasterMap(.mpr,.mpl)
ILWIS
Yes
Yes
--
Yes
IntergraphRaster
INGR
Yes
Yes
2GiB
Yes
USGSAstrogeologyISIScube(Version2)
ISIS2
No
Yes
--
Yes
USGSAstrogeologyISIScube(Version3)
ISIS3
No
Yes
--
Yes
JAXAPALSARProductReader(Level1.1/1.5)
JAXAPALSAR
No
No
--
Yes
JapaneseDEM(.mem)
JDEM
No
Yes
--
Yes
JPEGJFIF(.jpg)
JPEG
Yes
Yes
4GiB(maxdimentions65500x65500)
Yes(internallibjpegprovided)
JPEG-LS
JPEGLS
Yes
No
--
No,needsCharLSlibrary
JPEG2000(.jp2,.j2k)
JPEG2000
Yes
Yes
2GiB
No,needslibjasper
JPEG2000(.jp2,.j2k)
JP2ECW
Yes
Yes
500MB
No,needsECWSDK
JPEG2000(.jp2,.j2k)
JP2KAK
Yes
Yes
Nolimits
No,needsKakadulibrary
JPEG2000(.jp2,.j2k)
JP2MrSID
Yes
Yes
No,needsMrSIDSDK
JPEG2000(.jp2,.j2k)
JP2OpenJPEG
Yes
Yes
No,needsOpenJPEGlibrary(v2)
NOAAPolarOrbiterLevel1bDataSet(AVHRR)
L1B
No
Yes
--
Yes
Erdas7.x.LANand.GIS
LAN
No
Yes
2GB
Yes
FARSITEv.4LCPFormat
LCP
No
Yes
Nolimits
Yes
DaylonLevellerHeightfield
Leveller
No
Yes
2GB
Yes
NADCON.los/.lasDatumGridShift
LOSLAS
No
Yes
Yes
InMemoryRaster
MEM
Yes
Yes
Yes
VexcelMFF
MFF
Yes
Yes
Nolimits
Yes
VexcelMFF2
MFF2(HKV)
Yes
Yes
Nolimits
Yes
MG4EncodedLidar
MG4Lidar
No
Yes
--
No,needsLIDARSDK
Multi-resolutionSeamlessImageDatabase
MrSID
No
Yes
--
No,needsMrSIDSDK
MeteosatSecondGeneration
MSG
No
Yes
No,needsmsglibrary
EUMETSATArchivenative(.nat)
MSGN
No
Yes
Yes
NLAPSDataFormat
NDF
No
Yes
Nolimits
Yes
NITF
NITF
Yes
Yes
10GB
Yes
NetCDF
netCDF
Yes
Yes
2GB
No,needslibnetcdf
NTv2DatumGridShift
NTv2
Yes
Yes
Yes
Northwood/VerticalMapperClassifiedGridFormat.grc/.tab
NWT_GRC
No
Yes
--
Yes
Northwood/VerticalMapperNumericGridFormat.grd/.tab
NWT_GRD
No
Yes
--
Yes
OGDIBridge
OGDI
No
Yes
--
No,needsOGDIlibrary
PCI.auxLabelled
PAux
Yes
No
Nolimits
Yes
PCIGeomaticsDatabaseFile
PCIDSK
Yes
Yes
Nolimits
Yes
PCRaster
PCRaster
Yes
Yes
Yes(internallibcsfprovided)
GeospatialPDF
No
Yes
--
No,needslibpoppler
NASAPlanetaryDataSystem
PDS
No
Yes
--
Yes
PortableNetworkGraphics(.png)
PNG
Yes
No
Yes(internallibpngprovided)
Netpbm(.ppm,.pgm)
PNM
Yes
No
Nolimits
Yes
RObjectDataStore
R
Yes
No
--
Yes
Rasdaman
RASDAMAN
No
No
Nolimits
No(needsraslib)
Rasterlite-RastersinSQLiteDB
Rasterlite
Yes
Yes
--
No(needsOGRSQLitedriver)
SwedishGridRIK(.rik)
RIK
No
Yes
4GB
Yes(internalzlibisusedifnecessary)
RasterMatrixFormat(*.rsw,.mtw)
RMF
Yes
Yes
4GB
Yes
RasterProductFormat/RPF(a.toc)
RPFTOC
No
Yes
--
Yes
RadarSat2XML(product.xml)
RS2
No
Yes
4GB
Yes
IdrisiRaster
RST
Yes
Yes
Nolimits
Yes
SAGAGISBinaryformat
SAGA
Yes
Yes
--
Yes
SARCEOS
SAR_CEOS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GDAL