public void CreateEmptyLdfFile() { Assert.That(_newFileName != null); IGeoDataDriver driver = GeoDataDriver.GetDriverByName("LDF"); Assert.NotNull(driver); ILdfDriver drv = driver as ILdfDriver; Assert.NotNull(drv); int width = 2048; int height = 3390; int bandCount = 10; enumDataType dataType = enumDataType.UInt16; enumInterleave interleave = enumInterleave.BSQ; string version = "LDF"; //string proj4 = "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137"; string mapInfo = "{1,1}:{110,35}:{0.01,0.01}"; bool withHdr = true; ILdfDataProvider prd = drv.Create(_newFileName, width, height, bandCount, dataType, "INTERLEAVE=" + interleave.ToString(), "VERSION=" + version, //"SPATIALREF=" + proj4, "MAPINFO=" + mapInfo, "WITHHDR=" + withHdr.ToString()) as ILdfDataProvider; Assert.NotNull(prd); Assert.That(prd.Width == width && prd.Height == height); Assert.That(prd.BandCount == bandCount); Assert.That(prd.DataType == dataType); ILdfHeader header = prd.Header; Assert.NotNull(header); HdrFile hdr = header.ToHdrFile(); PrintHdrInfo(hdr); Ldf1Header ldfheader = header as Ldf1Header; Assert.NotNull(ldfheader); Assert.That(ldfheader._width == width && ldfheader._height == height); Assert.That(ldfheader.DataType == dataType); Assert.NotNull(prd.SpatialRef); for (int i = 0; i < bandCount; i++) { IRasterBand band = prd.GetRasterBand(i + 1); Assert.NotNull(band); Assert.That(band.Width == width && band.Height == height); Assert.That(band.DataType == dataType); } prd.Dispose(); drv.Dispose(); Assert.True(File.Exists(_newFileName)); FileInfo fInfo = new FileInfo(_newFileName); Assert.True(width * height * bandCount * 2 + header.HeaderSize == fInfo.Length); ISpatialReference spatialRef = prd.SpatialRef; Assert.NotNull(spatialRef); Console.Out.WriteLine(spatialRef.ToString()); }
public void ToLdfFile(string ldfFileName) { ILdfDriver ldfDrv = null; IRasterDataProvider ldfPrd = null; IRasterBand ldfBand = null; IRasterBand mvgBand = null; Ldf1Header ldfHeader = null; try { ldfDrv = GeoDataDriver.GetDriverByName("LDF") as ILdfDriver; if (ldfDrv == null) { return; } ldfPrd = ldfDrv.Create(ldfFileName, _width, _height, 1, enumDataType.Int16); if (ldfPrd == null) { return; } ldfBand = ldfPrd.GetRasterBand(1); if (ldfBand == null) { return; } ldfHeader = MvgHeaderConvertor.MvgHeaderToLdfHeader(_header); if (ldfHeader == null) { return; } //read data by block ,write ldf provider mvgBand = GetRasterBand(1); if (mvgBand == null) { return; } WriteDataFromMvgToLdf(ldfBand, mvgBand); } finally { Disposed(ldfDrv, ldfPrd, ldfBand, null, null, mvgBand); } }