/// <summary> /// Copies the fileName /// </summary> /// <param name="fileName"></param> /// <param name="copyValues"></param> public override void Copy(string fileName, bool copyValues) { using (Driver d = _dataset.GetDriver()) { DataType myType = OSGeo.GDAL.DataType.GDT_Int32; if (_band != null) { myType = _band.DataType; } else { GdalRaster <T> r = Bands[0] as GdalRaster <T>; if (r != null) { myType = r.GdalDataType; } } if (copyValues) { d.CreateCopy(fileName, _dataset, 1, Options, GdalProgressFunc, "Copy Progress"); } else { d.Create(fileName, NumColumnsInFile, NumRowsInFile, NumBands, myType, Options); } } }
private static IRaster GetBand(string fileName, Dataset dataset, Band band) { Raster result = null; switch (band.DataType) { case DataType.GDT_Byte: result = new GdalRaster <byte>(fileName, dataset, band); break; case DataType.GDT_CFloat32: case DataType.GDT_CFloat64: case DataType.GDT_CInt16: case DataType.GDT_CInt32: break; case DataType.GDT_Float32: result = new GdalRaster <float>(fileName, dataset, band); break; case DataType.GDT_Float64: result = new GdalRaster <double>(fileName, dataset, band); break; case DataType.GDT_Int16: result = new GdalRaster <short>(fileName, dataset, band); break; case DataType.GDT_UInt16: case DataType.GDT_Int32: result = new GdalRaster <int>(fileName, dataset, band); break; case DataType.GDT_TypeCount: break; case DataType.GDT_UInt32: result = new GdalRaster <long>(fileName, dataset, band); break; case DataType.GDT_Unknown: break; default: break; } if (result != null) { result.Open(); } return(result); }