示例#1
0
 /// <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);
         }
     }
 }
示例#2
0
        /// <summary>
        /// Gdal to DotSpatial at Raster Level
        /// </summary>
        /// <param name="dataset">Gdal Dataset</param>
        /// <param name="bandIndex">Index of Band</param>
        /// <returns>Dotspatial Raster</returns>
        public static DotSpatial.Data.IRaster Gdal2DSRaster(OSGeo.GDAL.Dataset dataset, int bandIndex)
        {
            DotSpatial.Data.IRaster result = null;
            OSGeo.GDAL.Band         band   = dataset.GetRasterBand(bandIndex);
            if (dataset != null)
            {
                switch (band.DataType)
                {
                case OSGeo.GDAL.DataType.GDT_Byte:
                    result = new GdalRaster <byte>(dataset, band);
                    break;

                case OSGeo.GDAL.DataType.GDT_CFloat32:
                case OSGeo.GDAL.DataType.GDT_CFloat64:
                case OSGeo.GDAL.DataType.GDT_CInt16:
                case OSGeo.GDAL.DataType.GDT_CInt32:
                    break;

                case OSGeo.GDAL.DataType.GDT_Float32:
                    result = new GdalRaster <float>(dataset, band);
                    break;

                case OSGeo.GDAL.DataType.GDT_Float64:
                    result = new GdalRaster <double>(dataset, band);
                    break;

                case OSGeo.GDAL.DataType.GDT_Int16:
                    result = new GdalRaster <short>(dataset, band);
                    break;

                case OSGeo.GDAL.DataType.GDT_UInt16:
                case OSGeo.GDAL.DataType.GDT_Int32:
                    result = new GdalRaster <int>(dataset, band);
                    break;

                case OSGeo.GDAL.DataType.GDT_TypeCount:
                    break;

                case OSGeo.GDAL.DataType.GDT_UInt32:
                    result = new GdalRaster <long>(dataset, band);
                    break;

                case OSGeo.GDAL.DataType.GDT_Unknown:
                    break;

                default:
                    break;
                }
            }

            if (result != null)
            {
                (result as DotSpatial.Data.Raster).Open();
            }

            return(result);
        }
示例#3
0
        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);
        }