void GDALRegister_TSX() { GDALDriver *poDriver; if( GDALGetDriverByName( "TSX" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "TSX" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "TerraSAR-X Product" ); /* poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_tsx.html" ); */ poDriver->pfnOpen = TSXDataset::Open; poDriver->pfnIdentify = TSXDataset::Identify; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_TSX() { if( GDALGetDriverByName( "TSX" ) != NULL ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription( "TSX" ); poDriver->SetMetadataItem( GDAL_DCAP_RASTER, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "TerraSAR-X Product" ); // poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_tsx.html" ); poDriver->SetMetadataItem( GDAL_DCAP_VIRTUALIO, "YES" ); poDriver->pfnOpen = TSXDataset::Open; poDriver->pfnIdentify = TSXDataset::Identify; GetGDALDriverManager()->RegisterDriver( poDriver ); }
void GDALRegister_COASP(void) { GDALDriver *poDriver; if ( GDALGetDriverByName( "COASP" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "COASP" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "DRDC COASP SAR Processor Raster" ); poDriver->SetMetadataItem( GDAL_DMD_EXTENSION, "hdr" ); /* poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_coasp.html"); */ poDriver->pfnIdentify = COASPDataset::Identify; poDriver->pfnOpen = COASPDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
dataset_t create_tile_dataset(GDALDriver& drv, unsigned int tile_xsize, unsigned int tile_ysize) { dataset_t ds(make_dataset(drv.Create("", tile_xsize, tile_ysize, 3, ::GDT_Byte, 0))); if(!ds) { throw std::runtime_error("failed to create output dataset"); } return ds; }
GDALDataset* CreateOutputDataset(char* fileName, int width, int height, int bands) { GDALDriverManager *gdm = GetGDALDriverManager(); if(gdm == NULL) error("GetGDALDriverManager() failed!"); GDALDriver *gd = gdm->GetDriverByName("GTiff"); if(gd == NULL) error("Get GTiff Driver failed!"); char* options[2]; options[0] = "INTERLEAVE=BAND"; options[1] = NULL; GDALDataset *dstDS = gd->Create(fileName, width, height, bands, GDT_Byte, options); return dstDS; }
void GDALRegister_AirSAR() { GDALDriver *poDriver; if( GDALGetDriverByName( "AirSAR" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "AirSAR" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "AirSAR Polarimetric Image" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_airsar.html" ); poDriver->pfnOpen = AirSARDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_FujiBAS() { if( GDALGetDriverByName( "FujiBAS" ) != NULL ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription( "FujiBAS" ); poDriver->SetMetadataItem( GDAL_DCAP_RASTER, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "Fuji BAS Scanner Image" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_various.html#FujiBAS" ); poDriver->pfnOpen = FujiBASDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); }
void GDALRegister_MSG() { GDALDriver *poDriver; if( GDALGetDriverByName( "MSG" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "MSG" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "MSG HRIT Data" ); poDriver->pfnOpen = MSGDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void RegisterOGRGPX() { if (! GDAL_CHECK_VERSION("OGR/GPX driver")) return; GDALDriver *poDriver; if( GDALGetDriverByName( "GPX" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "GPX" ); poDriver->SetMetadataItem( GDAL_DCAP_VECTOR, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "GPX" ); poDriver->SetMetadataItem( GDAL_DMD_EXTENSION, "gpx" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "drv_gpx.html" ); poDriver->SetMetadataItem( GDAL_DMD_CREATIONOPTIONLIST, "<CreationOptionList>" #ifdef WIN32 " <Option name='LINEFORMAT' type='string-select' description='end-of-line sequence' default='CRLF'>" #else " <Option name='LINEFORMAT' type='string-select' description='end-of-line sequence' default='LF'>" #endif " <Value>CRLF</Value>" " <Value>LF</Value>" " </Option>" " <Option name='GPX_USE_EXTENSIONS' type='boolean' description='Whether to write non-GPX attributes in an <extensions> tag' default='NO'/>" " <Option name='GPX_EXTENSIONS_NS' type='string' description='Namespace value used for extension tags' default='ogr'/>" " <Option name='GPX_EXTENSIONS_NS_URL' type='string' description='Namespace URI' default='http://osgeo.org/gdal'/>" "</CreationOptionList>"); poDriver->SetMetadataItem( GDAL_DS_LAYER_CREATIONOPTIONLIST, "<LayerCreationOptionList>" " <Option name='FORCE_GPX_TRACK' type='boolean' description='Whether to force layers with geometries of type wkbLineString as tracks' default='NO'/>" " <Option name='FORCE_GPX_ROUTE' type='boolean' description='Whether to force layers with geometries of type wkbMultiLineString (with single line string in them) as routes' default='NO'/>" "</LayerCreationOptionList>"); poDriver->SetMetadataItem( GDAL_DCAP_VIRTUALIO, "YES" ); poDriver->pfnOpen = OGRGPXDriverOpen; poDriver->pfnCreate = OGRGPXDriverCreate; poDriver->pfnDelete = OGRGPXDriverDelete; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_GRASS() { if( !GDAL_CHECK_VERSION( "GDAL/GRASS57 driver" ) ) return; if( GDALGetDriverByName( "GRASS" ) != NULL ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription( "GRASS" ); poDriver->SetMetadataItem( GDAL_DCAP_RASTER, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "GRASS Rasters (5.7+)" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_grass.html" ); poDriver->pfnOpen = GRASSDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); }
void GDALRegister_DIPEx() { GDALDriver *poDriver; if( GDALGetDriverByName( "DIPEx" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "DIPEx" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "DIPEx" ); poDriver->SetMetadataItem( GDAL_DCAP_VIRTUALIO, "YES" ); poDriver->pfnOpen = DIPExDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_NWT_GRD() { GDALDriver *poDriver; if( GDALGetDriverByName( "NWT_GRD" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "NWT_GRD" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "Northwood Numeric Grid Format .grd/.tab" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_various.html#grd"); poDriver->SetMetadataItem( GDAL_DMD_EXTENSION, "grd" ); poDriver->pfnOpen = NWT_GRDDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
GDALDataset * RasterCreate( const char * pszFormat, const char * pszFilename, char ** papszOptions /*=NULL*/ ) { int nXSize = atoi(CSLFetchNameValue(papszOptions, "XSize")); int nYSize = atoi(CSLFetchNameValue(papszOptions, "YSize")); int nBands = atoi(CSLFetchNameValue(papszOptions, "Bands")); GDALDataType eBandType = GDALGetDataTypeByName(CSLFetchNameValue(papszOptions, "DataType")); char ** papszCreate = NULL; papszCreate = CSLSetNameValue(papszCreate, "BLOCKXSIZE", "256"); papszCreate = CSLSetNameValue( papszCreate, "BLOCKYSIZE", "1" ); GDALDriver * poDriver = GetRasterDriver(pszFormat); GDALDataset * poDS = poDriver->Create( pszFilename, nXSize, nYSize, nBands, eBandType, papszCreate) ; CSLDestroy(papszCreate); return poDS; }
GDALDriver *OGRSFDriverRegistrar::GetDriver( int iDriver ) { /* We must be careful only to return drivers that are actual OGRSFDriver* */ GDALDriverManager* poDriverManager = GetGDALDriverManager(); int nTotal = poDriverManager->GetDriverCount(); int nOGRDriverCount = 0; for(int i=0;i<nTotal;i++) { GDALDriver* poDriver = poDriverManager->GetDriver(i); if( poDriver->GetMetadataItem(GDAL_DCAP_VECTOR) != NULL ) { if( nOGRDriverCount == iDriver ) return poDriver; nOGRDriverCount ++; } } return NULL; }
void RegisterOGRTAB() { if( GDALGetDriverByName( "MapInfo File" ) != NULL ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription( "MapInfo File" ); poDriver->SetMetadataItem( GDAL_DCAP_VECTOR, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "MapInfo File" ); poDriver->SetMetadataItem( GDAL_DMD_EXTENSIONS, "tab mif mid" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "drv_mitab.html" ); poDriver->SetMetadataItem( GDAL_DCAP_VIRTUALIO, "YES" ); poDriver->SetMetadataItem( GDAL_DS_LAYER_CREATIONOPTIONLIST, "<LayerCreationOptionList>" " <Option name='BOUNDS' type='string' description='Custom bounds. Expect format is xmin,ymin,xmax,ymax'/>" "</LayerCreationOptionList>"); poDriver->SetMetadataItem( GDAL_DMD_CREATIONOPTIONLIST, "<CreationOptionList>" " <Option name='FORMAT' type='string-select' description='type of MapInfo format'>" " <Value>MIF</Value>" " <Value>TAB</Value>" " </Option>" " <Option name='SPATIAL_INDEX_MODE' type='string-select' description='type of spatial index' default='QUICK'>" " <Value>QUICK</Value>" " <Value>OPTIMIZED</Value>" " </Option>" " <Option name='BLOCKSIZE' type='int' description='.map block size' min='512' max='32256' default='512'/>" "</CreationOptionList>"); poDriver->SetMetadataItem( GDAL_DMD_CREATIONFIELDDATATYPES, "Integer Real String Date DateTime Time" ); poDriver->pfnOpen = OGRTABDriverOpen; poDriver->pfnIdentify = OGRTABDriverIdentify; poDriver->pfnCreate = OGRTABDriverCreate; poDriver->pfnDelete = OGRTABDriverDelete; poDriver->pfnUnloadDriver = OGRTABDriverUnload; GetGDALDriverManager()->RegisterDriver( poDriver ); }
void GDALRegister_LOSLAS() { if( GDALGetDriverByName( "LOSLAS" ) != NULL ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription( "LOSLAS" ); poDriver->SetMetadataItem( GDAL_DCAP_RASTER, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "NADCON .los/.las Datum Grid Shift" ); poDriver->SetMetadataItem( GDAL_DCAP_VIRTUALIO, "YES" ); poDriver->pfnOpen = LOSLASDataset::Open; poDriver->pfnIdentify = LOSLASDataset::Identify; GetGDALDriverManager()->RegisterDriver( poDriver ); }
void RegisterOGRSOSI() { if( GDALGetDriverByName( "SOSI" ) != NULL ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription( "SOSI" ); poDriver->SetMetadataItem( GDAL_DCAP_VECTOR, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "Norwegian SOSI Standard" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "drv_sosi.html" ); poDriver->pfnOpen = OGRSOSIDriverOpen; #ifdef WRITE_SUPPORT poDriver->pfnCreate = OGRSOSIDriverCreate; #endif poDriver->pfnUnloadDriver = OGRSOSIDriverUnload; GetGDALDriverManager()->RegisterDriver( poDriver ); }
OGRDataSourceH OGR_Dr_CopyDataSource( OGRSFDriverH hDriver, OGRDataSourceH hSrcDS, const char *pszNewName, char **papszOptions ) { VALIDATE_POINTER1( hDriver, "OGR_Dr_CopyDataSource", NULL ); VALIDATE_POINTER1( hSrcDS, "OGR_Dr_CopyDataSource", NULL ); VALIDATE_POINTER1( pszNewName, "OGR_Dr_CopyDataSource", NULL ); GDALDriver* poDriver = (GDALDriver*)hDriver; if( !poDriver->GetMetadataItem( GDAL_DCAP_CREATE ) ) { CPLError( CE_Failure, CPLE_NotSupported, "%s driver does not support data source creation.", poDriver->GetDescription() ); return NULL; } GDALDataset *poSrcDS = (GDALDataset*) hSrcDS; GDALDataset *poODS; poODS = poDriver->Create( pszNewName, 0, 0, 0, GDT_Unknown, papszOptions ); if( poODS == NULL ) return NULL; /* -------------------------------------------------------------------- */ /* Process each data source layer. */ /* -------------------------------------------------------------------- */ for( int iLayer = 0; iLayer < poSrcDS->GetLayerCount(); iLayer++ ) { OGRLayer *poLayer = poSrcDS->GetLayer(iLayer); if( poLayer == NULL ) continue; poODS->CopyLayer( poLayer, poLayer->GetLayerDefn()->GetName(), papszOptions ); } return (OGRDataSourceH)poODS; }
void GDALRegister_LAN() { GDALDriver *poDriver; if( GDALGetDriverByName( "LAN" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "LAN" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "Erdas .LAN/.GIS" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_various.html#LAN" ); poDriver->pfnOpen = LANDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
// Test that GDALWarp() detects error in flush cache template<> template<> void object::test<9>() { GDALDriver* poDriver = new GDALDriver(); poDriver->SetDescription("DatasetWithErrorInFlushCache"); poDriver->pfnCreate = DatasetWithErrorInFlushCache::Create; GetGDALDriverManager()->RegisterDriver( poDriver ); const char* args[] = { "-of", "DatasetWithErrorInFlushCache", NULL }; GDALWarpAppOptions* psOptions = GDALWarpAppOptionsNew((char**)args, NULL); GDALDatasetH hSrcDS = GDALOpen("../gcore/data/byte.tif", GA_ReadOnly); CPLErrorReset(); CPLPushErrorHandler(CPLQuietErrorHandler); GDALDatasetH hOutDS = GDALWarp("/", NULL, 1, &hSrcDS, psOptions, NULL); CPLPopErrorHandler(); GDALClose(hSrcDS); GDALWarpAppOptionsFree(psOptions); ensure(hOutDS == NULL); ensure(CPLGetLastErrorType() != CE_None); GetGDALDriverManager()->DeregisterDriver( poDriver ); delete poDriver; }
void GDALRegister_ISIS2() { GDALDriver *poDriver; if( GDALGetDriverByName( "ISIS2" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "ISIS2" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "USGS Astrogeology ISIS cube (Version 2)" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_various.html#ISIS2" ); poDriver->pfnOpen = ISIS2Dataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
BIGGIFDataset::~BIGGIFDataset() { FlushCache(); if( hGifFile ) DGifCloseFile( hGifFile ); if( fp != NULL ) VSIFCloseL( fp ); if( poWorkDS != NULL ) { CPLString osTempFilename = poWorkDS->GetDescription(); GDALClose( (GDALDatasetH) poWorkDS ); poWorkDS = NULL; GDALDriver *poGTiff = (GDALDriver *) GDALGetDriverByName( "GTiff" ); poGTiff->Delete( osTempFilename ); } }
void GDALRegister_SDE() { if( !GDAL_CHECK_VERSION( "SDE driver" ) ) return; if( GDALGetDriverByName( "SDE" ) != NULL ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription( "SDE" ); poDriver->SetMetadataItem( GDAL_DCAP_RASTER, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "ESRI ArcSDE" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_various.html#SDE" ); poDriver->pfnOpen = SDEDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); }
extern void GDALRegister_RASDAMAN() { GDALDriver *poDriver; if( GDALGetDriverByName( "RASDAMAN" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "RASDAMAN" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "RASDAMAN" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_rasdaman.html" ); poDriver->pfnOpen = RasdamanDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_BAG() { if( !GDAL_CHECK_VERSION("BAG") ) return; if( GDALGetDriverByName("BAG") != nullptr ) return; GDALDriver *poDriver = new GDALDriver(); poDriver->SetDescription("BAG"); poDriver->SetMetadataItem(GDAL_DCAP_RASTER, "YES"); poDriver->SetMetadataItem(GDAL_DMD_LONGNAME, "Bathymetry Attributed Grid"); poDriver->SetMetadataItem(GDAL_DMD_HELPTOPIC, "frmt_bag.html"); poDriver->pfnOpen = BAGDataset::Open; poDriver->pfnIdentify = BAGDataset::Identify; GetGDALDriverManager()->RegisterDriver(poDriver); }
void HazePerfection::createMark(float b) { const char *pszFormat = "GTiff"; const char *markfile = m_markfilename.c_str(); GDALDriver *poDriver = (GDALDriver*)GDALGetDriverByName(pszFormat); markDataset = poDriver->Create(markfile, nXSize, nYSize, 1, GDT_Float32, NULL); markDataset->SetGeoTransform(sGeoTrans); markDataset->SetProjection(hotDataset->GetProjectionRef()); float *pixelData = new float[nXSize*nYSize]; GDALRasterBand *maskBand = maskDataset->GetRasterBand(1); maskBand->RasterIO(GF_Read, 0, 0, nXSize, nYSize, pixelData, nXSize, nYSize, GDT_Float32, 0, 0); for (int i = 1; i < nYSize-1; i++) { for (int j = 1; j < nXSize - 1; j++) pixelData[i*nXSize + j] = b; } GDALRasterBand *markBand = markDataset->GetRasterBand(1); markBand->RasterIO(GF_Write, 0, 0, nXSize, nYSize, pixelData, nXSize, nYSize, GDT_Float32, 0, 0); delete[]pixelData; }
void RegisterOGRREC() { GDALDriver *poDriver; if( GDALGetDriverByName( "REC" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "REC" ); poDriver->SetMetadataItem( GDAL_DCAP_VECTOR, "YES" ); poDriver->SetMetadataItem( GDAL_DMD_EXTENSION, "rec" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "EPIInfo .REC " ); poDriver->pfnOpen = OGRRECDriverOpen; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_GSC() { GDALDriver *poDriver; if( GDALGetDriverByName( "GSC" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "GSC" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "GSC Geogrid" ); // poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, // "frmt_various.html#GSC" ); poDriver->pfnOpen = GSCDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_FAST() { GDALDriver *poDriver; if( GDALGetDriverByName( "FAST" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "FAST" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "EOSAT FAST Format" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_fast.html" ); poDriver->pfnOpen = FASTDataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }
void GDALRegister_DOQ2() { GDALDriver *poDriver; if( GDALGetDriverByName( "DOQ2" ) == NULL ) { poDriver = new GDALDriver(); poDriver->SetDescription( "DOQ2" ); poDriver->SetMetadataItem( GDAL_DMD_LONGNAME, "USGS DOQ (New Style)" ); poDriver->SetMetadataItem( GDAL_DMD_HELPTOPIC, "frmt_various.html#DOQ2" ); poDriver->pfnOpen = DOQ2Dataset::Open; GetGDALDriverManager()->RegisterDriver( poDriver ); } }