2013-10-06 111 views
1

我想從UTM(WGS84)重新投影HDF到正弦曲線(WGS84),所以我嘗試使用GDALAutoCreateWarpedVRT來完成它。代碼如下:GDAL GDALAutoCreateWarpedVRT在C中的重投項目

hSrcDS = (GDALDataset*)GDALOpen("HJ1ACCD1.hdf", GA_ReadOnly); 
const char *pszSrcWKT = NULL; 
char* pszDstWKT = NULL; 
//pszSrcWKT = ProjectionStr; 
pszSrcWKT=GDALGetProjectionRef(hSrcDS); 
CPLAssert(pszSrcWKT != NULL &&strlen(pszSrcWKT) > 0); 

OGRSpatialReference oSRS; 
oSRS.SetSinusoidal(0,0,0); 
oSRS.SetWellKnownGeogCS("WGS84"); 
oSRS.exportToWkt(&pszDstWKT); 

GDALWarpOptions*psWarpOptions = GDALCreateWarpOptions(); 
psWarpOptions->dfWarpMemoryLimit=500*1024*1024; 

hDstDS=(GDALDataset*)(GDALDataset*)GDALAutoCreateWarpedVRT(hSrcDS,pszSrcWKT,pszDstWKT,GRA_Bilinear ,20,psWarpOptions); 
GDALDriver *poDriverTiff; 
poDriverTiff=GetGDALDriverManager()->GetDriverByName("GTIFF"); 
poDriverTiff->CreateCopy("d:\\toto.tif",(GDALDataset*)hDstDS,false,NULL,NULL,NULL); 

當我設置oSRS.SetSinusoidal(0,0,0),結果似乎不錯,但分辨率翻倍(從30到60)。這太奇怪了。

回答