public static OutputBand <double> NewDoubleBand(GdalBand gdalBand, PixelBand pixelBand) { RasterBandWriter <double> rasterBandWriter = RasterBandWriters.NewDoubleWriter(gdalBand); switch (pixelBand.TypeCode) { case TypeCode.Byte: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <byte, double>(pixelBand, Convert.ToDouble))); case TypeCode.SByte: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <sbyte, double>(pixelBand, Convert.ToDouble))); case TypeCode.UInt16: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <ushort, double>(pixelBand, Convert.ToDouble))); case TypeCode.Int16: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <short, double>(pixelBand, Convert.ToDouble))); case TypeCode.UInt32: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <uint, double>(pixelBand, Convert.ToDouble))); case TypeCode.Int32: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <int, double>(pixelBand, Convert.ToDouble))); case TypeCode.Single: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <float, double>(pixelBand, Convert.ToDouble))); case TypeCode.Double: return(new OutputBand <double>(rasterBandWriter, new PixelBandGetter <double, double>(pixelBand, Convert.ToDouble))); default: throw new ArgumentException("pixelBand.TypeCode is not byte, sbyte, ushort, short, uint, int, float, double"); } }
public static IOutputBand NewOutputBand(DataType dataType, GdalBand gdalBand, PixelBand pixelBand) { switch (dataType) { case DataType.GDT_Byte: return(NewByteBand(gdalBand, pixelBand)); case DataType.GDT_Int16: return(NewShortBand(gdalBand, pixelBand)); case DataType.GDT_Int32: return(NewIntBand(gdalBand, pixelBand)); case DataType.GDT_Float32: return(NewFloatBand(gdalBand, pixelBand)); case DataType.GDT_Float64: return(NewDoubleBand(gdalBand, pixelBand)); default: throw new ArgumentException("dataType is not byte, short, int, float, double"); } }
public static OutputBand <int> NewIntBand(GdalBand gdalBand, PixelBand pixelBand) { RasterBandWriter <int> rasterBandWriter = RasterBandWriters.NewIntWriter(gdalBand); switch (pixelBand.TypeCode) { case TypeCode.Byte: return(new OutputBand <int>(rasterBandWriter, new PixelBandGetter <byte, int>(pixelBand, Convert.ToInt32))); case TypeCode.SByte: return(new OutputBand <int>(rasterBandWriter, new PixelBandGetter <sbyte, int>(pixelBand, Convert.ToInt32))); case TypeCode.UInt16: return(new OutputBand <int>(rasterBandWriter, new PixelBandGetter <ushort, int>(pixelBand, Convert.ToInt32))); case TypeCode.Int16: return(new OutputBand <int>(rasterBandWriter, new PixelBandGetter <short, int>(pixelBand, Convert.ToInt32))); case TypeCode.UInt32: return(new OutputBand <int>(rasterBandWriter, new PixelBandGetter <uint, int>(pixelBand, Convert.ToInt32))); case TypeCode.Int32: return(new OutputBand <int>(rasterBandWriter, new PixelBandGetter <int, int>(pixelBand, Convert.ToInt32))); default: throw new ArgumentException("pixelBand.TypeCode is not byte, sbyte, ushort, short, uint, int"); } }
public static InputBand <short> NewShortBand(GdalBand gdalBand, PixelBand pixelBand) { RasterBandReader <short> rasterBandReader = RasterBandReaders.NewShortReader(gdalBand); switch (pixelBand.TypeCode) { case TypeCode.UInt16: return(new InputBand <short>(rasterBandReader, new PixelBandSetter <ushort, short>(pixelBand, Convert.ToUInt16))); case TypeCode.Int16: return(new InputBand <short>(rasterBandReader, new PixelBandSetter <short, short>(pixelBand, Convert.ToInt16))); case TypeCode.UInt32: return(new InputBand <short>(rasterBandReader, new PixelBandSetter <uint, short>(pixelBand, Convert.ToUInt32))); case TypeCode.Int32: return(new InputBand <short>(rasterBandReader, new PixelBandSetter <int, short>(pixelBand, Convert.ToInt32))); case TypeCode.Single: return(new InputBand <short>(rasterBandReader, new PixelBandSetter <float, short>(pixelBand, Convert.ToSingle))); case TypeCode.Double: return(new InputBand <short>(rasterBandReader, new PixelBandSetter <double, short>(pixelBand, Convert.ToDouble))); default: throw new ArgumentException("pixelBand.TypeCode is not ushort, short, uint, int, float, double"); } }
public static InputBand <double> NewDoubleBand(GdalBand gdalBand, PixelBand pixelBand) { RasterBandReader <double> rasterBandReader = RasterBandReaders.NewDoubleReader(gdalBand); switch (pixelBand.TypeCode) { case TypeCode.Double: return(new InputBand <double>(rasterBandReader, new PixelBandSetter <double, double>(pixelBand, Convert.ToDouble))); default: throw new ArgumentException("pixelBand.TypeCode is not double"); } }
public static OutputBand <byte> NewByteBand(GdalBand gdalBand, PixelBand pixelBand) { RasterBandWriter <byte> rasterBandWriter = RasterBandWriters.NewByteWriter(gdalBand); switch (pixelBand.TypeCode) { case TypeCode.Byte: return(new OutputBand <byte>(rasterBandWriter, new PixelBandGetter <byte, byte>(pixelBand, Convert.ToByte))); case TypeCode.SByte: return(new OutputBand <byte>(rasterBandWriter, new PixelBandGetter <sbyte, byte>(pixelBand, Convert.ToByte))); default: throw new ArgumentException("pixelBand.TypeCode is not byte or sbyte"); } }
public static InputBand <float> NewFloatBand(GdalBand gdalBand, PixelBand pixelBand) { RasterBandReader <float> rasterBandReader = RasterBandReaders.NewFloatReader(gdalBand); switch (pixelBand.TypeCode) { case TypeCode.Single: return(new InputBand <float>(rasterBandReader, new PixelBandSetter <float, float>(pixelBand, Convert.ToSingle))); case TypeCode.Double: return(new InputBand <float>(rasterBandReader, new PixelBandSetter <double, float>(pixelBand, Convert.ToDouble))); default: throw new ArgumentException("pixelBand.TypeCode is not float or double"); } }
/// <summary> /// Computes the size in bytes for a pixel band's data type. /// </summary> /// <returns> /// A <see cref="System.Int32"/> /// </returns> /// <exception cref="System.ArgumentException">Thrown if /// <paramref name="typeCode"/> is not Byte, SByte, Int16, UInt16, /// Int32, UInt32, Single or Double. /// </exception> public static int ComputeSize() { return(PixelBand.ComputeSize(System.Type.GetTypeCode(typeof(T)))); }