/// <summary>
        /// This create new method implies that this provider has the priority for creating a new file.
        /// An instance of the dataset should be created and then returned.  By this time, the fileName
        /// will already be checked to see if it exists, and deleted if the user wants to overwrite it.
        /// </summary>
        /// <param name="name">The string fileName for the new instance</param>
        /// <param name="driverCode">The string short name of the driver for creating the raster</param>
        /// <param name="xSize">The number of columns in the raster</param>
        /// <param name="ySize">The number of rows in the raster</param>
        /// <param name="numBands">The number of bands to create in the raster</param>
        /// <param name="dataType">The data type to use for the raster</param>
        /// <param name="options">The options to be used.</param>
        /// <returns>An IRaster</returns>
        public IRaster Create(string name, string driverCode, int xSize, int ySize, int numBands, Type dataType, string[] options)
        {
            if (dataType == typeof(short))
            {
                BgdRaster <short> r = new BgdRaster <short>(name, ySize, xSize);
                return(r);
            }
            if (dataType == typeof(int))
            {
                BgdRaster <int> r = new BgdRaster <int>(name, ySize, xSize);
                return(r);
            }
            if (dataType == typeof(float))
            {
                BgdRaster <float> r = new BgdRaster <float>(name, ySize, xSize);
                return(r);
            }
            if (dataType == typeof(double))
            {
                BgdRaster <double> r = new BgdRaster <double>(name, ySize, xSize);
                return(r);
            }
            if (dataType == typeof(byte))
            {
                BgdRaster <byte> r = new BgdRaster <byte>(name, ySize, xSize);
                return(r);
            }

            return(null);
        }
        /// <summary>
        /// This open method is only called if this plugin has been given priority for one
        /// of the file extensions supported in the DialogReadFilter property supplied by
        /// this control.  Failing to provide a DialogReadFilter will result in this plugin
        /// being added to the list of DataProviders being supplied under the Add Other Data
        /// option in the file menu.
        /// </summary>
        /// <param name="fileName">A string specifying the complete path and extension of the file to open.</param>
        /// <returns>An IDataSet to be added to the Map.  These can also be groups of datasets.</returns>
        public virtual IRaster Open(string fileName)
        {
            RasterDataType fileDataType = GetDataType(fileName);

            switch (fileDataType)
            {
            case RasterDataType.SINGLE:
                BgdRaster <float> fRast = new BgdRaster <float> {
                    ProgressHandler = _progressHandler, Filename = fileName
                };
                fRast.Open();
                return(fRast);

            case RasterDataType.DOUBLE:
                BgdRaster <double> dRast = new BgdRaster <double> {
                    ProgressHandler = _progressHandler, Filename = fileName
                };
                dRast.Open();
                return(dRast);

            case RasterDataType.SHORT:
                BgdRaster <short> sRast = new BgdRaster <short> {
                    ProgressHandler = _progressHandler, Filename = fileName
                };
                sRast.Open();
                return(sRast);

            case RasterDataType.INTEGER:
                BgdRaster <int> iRast = new BgdRaster <int> {
                    ProgressHandler = _progressHandler, Filename = fileName
                };
                iRast.Open();
                return(iRast);

            case RasterDataType.BYTE:
                BgdRaster <byte> bRast = new BgdRaster <byte> {
                    ProgressHandler = _progressHandler, Filename = fileName
                };
                bRast.Open();
                return(bRast);

            default:
                return(null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// This open method is only called if this plugin has been given priority for one
        /// of the file extensions supported in the DialogReadFilter property supplied by
        /// this control. Failing to provide a DialogReadFilter will result in this plugin
        /// being added to the list of DataProviders being supplied under the Add Other Data
        /// option in the file menu.
        /// </summary>
        /// <param name="fileName">A string specifying the complete path and extension of the file to open.</param>
        /// <returns>An IDataSet to be added to the Map. These can also be groups of datasets.</returns>
        public virtual IRaster Open(string fileName)
        {
            RasterDataType fileDataType = GetDataType(fileName);
            Raster         raster       = null;

            switch (fileDataType)
            {
            case RasterDataType.BYTE:
                raster = new BgdRaster <byte>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.SHORT:
                raster = new BgdRaster <short>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.INTEGER:
                raster = new BgdRaster <int>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.LONG:
                raster = new BgdRaster <long>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.SINGLE:
                raster = new BgdRaster <float>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.DOUBLE:
                raster = new BgdRaster <double>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.SBYTE:
                raster = new BgdRaster <sbyte>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.USHORT:
                raster = new BgdRaster <ushort>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.UINTEGER:
                raster = new BgdRaster <uint>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.ULONG:
                raster = new BgdRaster <ulong>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;

            case RasterDataType.BOOL:
                raster = new BgdRaster <bool>
                {
                    ProgressHandler = ProgressHandler,
                    Filename        = fileName
                };
                break;
            }

            raster?.Open();
            return(raster);
        }