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()); }
private string BandNameString(ILdfDataProvider fileRaster) { if (fileRaster == null) { return(null); } string[] bandNames = (fileRaster as ILdfDataProvider).Hdr.BandNames; if (bandNames == null || bandNames.Length == 0) { return(null); } string bandNameString = ""; foreach (string b in bandNames) { bandNameString = bandNameString + b + ","; } return(bandNameString.TrimEnd(',')); }