【gdal】創建GeoTiff柵格數據


 1 //定義轉換參數
 2 private readonly double[] d_transform = { 69.999999999999972, 0.01, 0.0, 44.999999999999979, 0.0, -0.01 };
 3 //定義坐標系統
 4 private readonly string d_project = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]";
 5   
 6 //gdal注冊
 7 Gdal.AllRegister();
 8 driver = Gdal.GetDriverByName("GTiff");      
 9 Dataset ds = driver.Create(filePath, xSize, ySize, 1, DataType.GDT_Float32, new string[] { });
10 ds.SetGeoTransform(d_transform); //影像轉換參數
11 ds.SetProjection(d_project); //投影
12 //壓縮方式,設置后重新讀取發現並沒有這個metadata參數,具體情況未知
13 ds.SetMetadataItem("COMPRESSION", "LZW", "IMAGE_STRUCTURE");
14 //初始化數組
15 ds.GetRasterBand(1).WriteRaster(0, 0, xSize, ySize, buffer, xSize, ySize, 0, 0);
16 ds.GetRasterBand(1).FlushCache();
17 ds.FlushCache();
18 ds.Dispose();
19 
20 //其中buffer為float類型數組,長度為[xSize*ySize];

 

ds.SetMetadataItem("COMPRESSION", "LZW", "IMAGE_STRUCTURE");
這個參數設置后重新讀取發現並沒有這個metadata參數,有知道的煩請留言
重新獲取可以通過
string[] metadata = ds.GetMetadata("IMAGE_STRUCTURE");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM