Esempio n. 1
0
        private void RGBCompositeRender(ILayer pLayerR, int bandred, int bandgreen, int bandblue)
        {
            // Get raster input from layer
            IRasterLayer          rasterLayer = (IRasterLayer)pLayerR;
            IRaster               raster      = rasterLayer.Raster;
            IRasterBandCollection bandCol     = (IRasterBandCollection)raster;

            if (bandCol.Count < 3)
            {
                return;
            }

            // Create UniqueValue renderer and QI RasterRenderer
            IRasterRGBRenderer2 rasterRGBRen = new RasterRGBRenderer() as IRasterRGBRenderer2;
            IRasterRenderer     rasterRen    = (IRasterRenderer)rasterRGBRen;

            // Connect the renderer and the raster
            rasterRen.Raster = raster;
            rasterRen.Update();

            rasterRGBRen.RedBandIndex   = bandred;
            rasterRGBRen.GreenBandIndex = bandgreen;
            rasterRGBRen.BlueBandIndex  = bandblue;

            //Update render and refresh layer
            rasterRen.Update();
            rasterLayer.Renderer = (IRasterRenderer)rasterRGBRen;
        }
Esempio n. 2
0
        //分级渲染函数
        private void RasterClassifyRender(IRasterLayer pRasterLayer)
        {
            try
            {
                IColorRamp pColorRamp = (IColorRamp)EnumStyleItem[comboBoxColor.SelectedIndex];

                IRasterClassifyColorRampRenderer pRClassRend = new RasterClassifyColorRampRenderer() as IRasterClassifyColorRampRenderer;
                IRasterRenderer pRRend = pRClassRend as IRasterRenderer;

                IRaster pRaster = pRasterLayer.Raster;
                IRasterBandCollection pRBandCol = pRaster as IRasterBandCollection;
                IRasterBand           pRBand    = pRBandCol.Item(0);
                if (pRBand.Histogram == null)
                {
                    pRBand.ComputeStatsAndHist();
                }
                pRRend.Raster = pRaster;

                pRRend.Update();

                IRgbColor pFromColor = new RgbColor() as IRgbColor;
                pFromColor.Red   = 255;
                pFromColor.Green = 0;
                pFromColor.Blue  = 0;
                IRgbColor pToColor = new RgbColor() as IRgbColor;
                pToColor.Red   = 0;
                pToColor.Green = 0;
                pToColor.Blue  = 255;

                IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRamp() as IAlgorithmicColorRamp;

                //colorRamp = pColorRamp as IAlgorithmicColorRamp;///////
                colorRamp.Size = comboBoxClassValue.SelectedIndex + 1;

                //colorRamp.FromColor = pFromColor;
                //colorRamp.ToColor = pToColor;
                int nClass = comboBoxClassValue.SelectedIndex + 1;
                colorRamp.FromColor = pColorRamp.get_Color(0);
                colorRamp.ToColor   = pColorRamp.get_Color(nClass - 1);
                bool createColorRamp;


                colorRamp.CreateRamp(out createColorRamp);

                IFillSymbol fillSymbol = new SimpleFillSymbol() as IFillSymbol;

                for (int i = 0; i < nClass; i++)
                {
                    fillSymbol.Color = colorRamp.get_Color(i);
                    pRClassRend.set_Symbol(i, fillSymbol as ISymbol);
                    pRClassRend.set_Label(i, pRClassRend.get_Break(i).ToString("0.00"));
                }
                pRasterLayer.Renderer = pRRend;
                m_mapControl.Refresh();
            }
            catch (Exception e)
            {
                MessageBox.Show("创建失败!");
            }
        }
Esempio n. 3
0
        public IRasterRenderer CreateDefaultRasterRenderer(IRaster raster)
        {
            //Get raster dataset
            IRasterBandCollection rasterBandCollection = (IRasterBandCollection)raster;
            IRasterBand           rasterBand           = rasterBandCollection.Item(0);
            IRasterDataset        rasterDataset        = (IRasterDataset)rasterBand;

            //Check for TIFF format
            string format_Renamed = rasterDataset.Format;

            if (format_Renamed.Substring(0, 4) != "TIFF")
            {
                return(null);
            }

            //check for bit depth
            IRasterProps rasterProps = (IRasterProps)rasterBand;

            if (rasterProps.PixelType != rstPixelType.PT_U1)
            {
                return(null);
            }

            //create renderer for 1 bit raster
            //Create a unique value renderer and associate it with raster
            IRasterUniqueValueRenderer rasterUniqueValueRenderer = new RasterUniqueValueRendererClass();
            IRasterRenderer            rasterRenderer            = (IRasterRenderer)rasterUniqueValueRenderer;

            rasterRenderer.Raster = raster;
            rasterRenderer.Update();

            //Define the renderer
            rasterUniqueValueRenderer.HeadingCount = 1;
            rasterUniqueValueRenderer.set_Heading(0, "");
            rasterUniqueValueRenderer.set_ClassCount(0, 2);
            rasterUniqueValueRenderer.Field = "VALUE";
            rasterUniqueValueRenderer.AddValue(0, 0, 0);
            rasterUniqueValueRenderer.AddValue(0, 1, 1);
            rasterUniqueValueRenderer.set_Label(0, 0, "0");
            rasterUniqueValueRenderer.set_Label(0, 1, "1");

            // Define symbology for rendering value 0
            IColor color1 = (IColor)(CreateRGBColor(200, 50, 0)); //Brown color

            ISimpleFillSymbol simpleFillSymbol1 = new SimpleFillSymbolClass();

            simpleFillSymbol1.Color = color1;
            rasterUniqueValueRenderer.set_Symbol(0, 0, (ISymbol)simpleFillSymbol1);

            IColor color2 = new RgbColorClass();

            color2.NullColor = true;

            ISimpleFillSymbol simpleFillSymbol2 = new SimpleFillSymbolClass();

            simpleFillSymbol2.Color = color2;

            rasterUniqueValueRenderer.set_Symbol(0, 1, (ISymbol)simpleFillSymbol2);
            return(rasterRenderer);
        }
Esempio n. 4
0
        private void btnChangeRGBRenderer_Click(object sender, EventArgs e)
        {
            //Only effective to Raster Layer
            IMap   map    = axMapControl1.ActiveView.FocusMap;
            ILayer aLayer = map.get_Layer(0);
            //IRasterLayer rLayer = map.get_Layer(3) as IRasterLayer;
            //IRasterLayer rLayer = (IRasterLayer)aLayer;
            IRasterLayer rLayer = aLayer as IRasterLayer;
            IRaster      raster = rLayer.Raster;

            IRasterBandCollection bandCol = raster as IRasterBandCollection;

            if (bandCol.Count < 3)
            {
                //not meet the requirements
                return;
            }
            IRasterRGBRenderer rgbRen = new RasterRGBRenderer();
            IRasterRenderer    rasRen = rgbRen as IRasterRenderer;

            rasRen.Raster = raster;
            rasRen.Update();
            //change band ro renderer
            rgbRen.RedBandIndex   = 2;
            rgbRen.GreenBandIndex = 1;
            rgbRen.BlueBandIndex  = 0;


            //updtae renderer and refresh layer
            rLayer.Renderer = rgbRen as IRasterRenderer;
            axMapControl1.ActiveView.Refresh();
            axTOCControl1.Update();
        }
Esempio n. 5
0
 private void btn_OkStretch_Click(object sender, EventArgs e)
 {
     try
     {
         string RasterName = cbb_RasterLayersStretch.SelectedItem.ToString();
         rasterlayer = GetRasterLayer(RasterName);
         IRasterStretchColorRampRenderer rasStreRen = new RasterStretchColorRampRendererClass();
         IRasterRenderer rasRen = rasStreRen as IRasterRenderer;
         rasRen.Raster = rasterlayer.Raster;
         rasRen.Update();
         rasStreRen.BandIndex = cbb_BandStretch.SelectedIndex;
         pListRamp            = style.pListRamp;
         rasStreRen.ColorRamp = (IColorRamp)pListRamp[cbbs_ColorStretch.SelectedIndex];
         rasRen.Update();
         rasterlayer.Renderer = rasStreRen as IRasterRenderer;
         IRasterStretch2 stretch = rasStreRen as IRasterStretch2;
         stretch.BackgroundValue = 0;
         stretch.Background      = true;
         stretch.BackgroundColor = RasterRender.GET(255, 255, 255) as IColor;
         axmapcontrol.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
         axtoccontrol.Update();
         axmapcontrol.Extent = rasterlayer.AreaOfInterest;
         this.Close();
     }
     catch (Exception ec)
     {
         MessageBox.Show(ec.Message);
     }
 }
Esempio n. 6
0
        internal static void UsingRasterClassifyRendered1(IRasterLayer irasterLayer_0, int int_0, string string_0)
        {
            bool    flag;
            IRaster raster = irasterLayer_0.Raster;
            IRasterClassifyColorRampRenderer o = new RasterClassifyColorRampRenderer();
            IRasterRenderer renderer2          = o as IRasterRenderer;

            renderer2.Raster = raster;
            o.ClassField     = string_0;
            o.ClassCount     = int_0;
            IClassify classify = new EqualInterval() as IClassify;
            UID       classID  = classify.ClassID;
            IRasterClassifyUIProperties properties = o as IRasterClassifyUIProperties;

            properties.ClassificationMethod = classID;
            renderer2.Update();
            IColorRamp ramp = ColorManage.CreateColorRamp();

            ramp.Size = int_0;
            ramp.CreateRamp(out flag);
            IFillSymbol symbol = new SimpleFillSymbol();

            for (int i = 0; i < o.ClassCount; i++)
            {
                symbol.Color = ramp.get_Color(i);
                o.set_Symbol(i, symbol as ISymbol);
            }
            renderer2.Update();
            irasterLayer_0.Renderer = o as IRasterRenderer;
            Marshal.ReleaseComObject(o);
            o = null;
        }
Esempio n. 7
0
        public void AddAssociatedSurface(AssocSurface assocRow)
        {
            IGroupLayer pAssocGrpLyr = AddAssociatedSurfaceGroupLayer(assocRow.DEM);

            short dTransparency = GCDCore.Properties.Settings.Default.TransparencyAssociatedLayers ? GCDCore.Properties.Settings.Default.AutoTransparencyValue : (short)-1;

            IRasterRenderer rasterRenderer = null;

            switch (assocRow.AssocSurfaceType)
            {
            case AssocSurface.AssociatedSurfaceTypes.InterpolationError:

                if (!GCDCore.Properties.Settings.Default.ApplyComparativeSymbology)
                {
                    rasterRenderer = RasterSymbolization.CreateClassifyRenderer(assocRow.Raster, 11, "Slope");
                }
                break;

            case AssocSurface.AssociatedSurfaceTypes.PointQuality3D:

                if (!GCDCore.Properties.Settings.Default.ApplyComparativeSymbology)
                {
                    rasterRenderer = RasterSymbolization.CreateClassifyRenderer(assocRow.Raster, 11, "Precipitation", true);
                }
                break;

            case AssocSurface.AssociatedSurfaceTypes.PointDensity:
                assocRow.Raster.ComputeStatistics();
                decimal rasterMax = assocRow.Raster.GetStatistics()["max"];

                if (rasterMax <= 2 & rasterMax > 0.25m)
                {
                    rasterRenderer = RasterSymbolization.CreateClassifyRenderer(assocRow.Raster, 11, "Green to Blue", 1.1, true);
                }
                else
                {
                    rasterRenderer = RasterSymbolization.CreateClassifyRenderer(assocRow.Raster, 11, "Green to Blue", true);
                }
                break;

            case AssocSurface.AssociatedSurfaceTypes.GrainSizeStatic:

                rasterRenderer = RasterSymbolization.CreateGrainSizeStatisticColorRamp(assocRow.Raster, ProjectManager.Project.Units.VertUnit);
                break;

            case AssocSurface.AssociatedSurfaceTypes.Roughness:
                rasterRenderer = RasterSymbolization.CreateRoughnessColorRamp(assocRow.Raster);
                break;

            case AssocSurface.AssociatedSurfaceTypes.SlopeDegree:
                rasterRenderer = RasterSymbolization.CreateSlopeDegreesColorRamp(assocRow.Raster);
                break;

            case AssocSurface.AssociatedSurfaceTypes.SlopePercent:
                rasterRenderer = RasterSymbolization.CreateSlopePrecentRiseColorRamp(assocRow.Raster);
                break;
            }

            AddRasterLayer(assocRow.Raster, rasterRenderer, assocRow.Name, pAssocGrpLyr, assocRow.LayerHeader, dTransparency);
        }
Esempio n. 8
0
        /// <summary>
        /// 唯一值渲染(注意字段类型要一致)
        /// </summary>
        /// <param name="uniqueValue">唯一值列表</param>
        /// <param name="uniqueFiled">字段</param>
        /// <param name="pStyleGalleryItem">颜色带样式</param>
        public void UniqueRenderer <T>(List <T> uniqueValue, string uniqueFiled, IStyleGalleryItem pStyleGalleryItem)
        {
            if (pStyleGalleryItem == null)
            {
                MessageBox.Show(@"Color ramp cannot be empty");
                return;
            }
            IRasterUniqueValueRenderer uniqueValueRenderer = new RasterUniqueValueRendererClass();
            IRasterRenderer            pRasterRenderer     = uniqueValueRenderer as IRasterRenderer;

            pRasterRenderer.Raster = rasterLayer.Raster;
            pRasterRenderer.Update();
            int uniqueCount = uniqueValue.Count;

            if (uniqueCount == 0)
            {
                MessageBox.Show(@"The count of unique value cannot be zero");
                return;
            }
            //设置唯一值渲染属性
            SetUniqueRendererProperty(uniqueValueRenderer, uniqueFiled, uniqueCount);
            IEnumColors enumColors = RenderHelper.GetEnumColors(pStyleGalleryItem, uniqueCount);

            enumColors.Reset();
            //添加唯一值和设置标注符号
            AddValueAndSetLabelSymbol(uniqueValueRenderer, uniqueValue, enumColors);
            rasterLayer.Renderer = pRasterRenderer;
        }
Esempio n. 9
0
        /// <summary>
        /// 浮点类型图层的唯一值渲染
        /// </summary>
        /// <param name="pStyleGalleryItem">颜色带样式</param>
        public void FloatRasterUniqueRenderer(IStyleGalleryItem pStyleGalleryItem)
        {
            if (pStyleGalleryItem == null)
            {
                MessageBox.Show(@"Color ramp cannot be empty");
                return;
            }
            IRasterUniqueValueRenderer uniqueValueRenderer = new RasterUniqueValueRendererClass();
            IRasterRenderer            pRasterRenderer     = uniqueValueRenderer as IRasterRenderer;

            pRasterRenderer.Raster = rasterLayer.Raster;
            pRasterRenderer.Update();
            //必须设置栅格渲染的唯一值,不然只能渲染0值
            SetRasterUniqueValue(uniqueValueRenderer);
            //获取排好序的唯一值
            List <object> uniqueValue = GetFloatSortedUniqueValue();
            int           uniqueCount = uniqueValue.Count;

            if (uniqueCount == 0)
            {
                MessageBox.Show(@"The count of unique value cannot be zero");
                return;
            }
            uniqueValueRenderer.set_ClassCount(0, uniqueCount);
            IEnumColors enumColors = RenderHelper.GetEnumColors(pStyleGalleryItem, uniqueCount);

            enumColors.Reset();
            //添加唯一值和设置标注符号
            AddValueAndSetLabelSymbol(uniqueValueRenderer, uniqueValue, enumColors);
            rasterLayer.Renderer = pRasterRenderer;
        }
Esempio n. 10
0
        /// <summary>
        /// 栅格分级渲染(注意选中字段唯一值个数不能小于设置的唯一值个数)
        /// </summary>
        /// <param name="rasterClassRenderer">分级渲染设置</param>
        /// <param name="pStyleGalleryItem">颜色带样式</param>
        public void ClassRenderer(IRasterClassifyColorRampRenderer rasterClassRenderer,
                                  IStyleGalleryItem pStyleGalleryItem)
        {
            if (pStyleGalleryItem == null)
            {
                MessageBox.Show(@"Color ramp cannot be empty");
                return;
            }
            IRasterRenderer rasterRend = (IRasterRenderer)rasterClassRenderer;

            rasterRend.Raster = rasterLayer.Raster;
            rasterRend.Update();
            IEnumColors enumColors = RenderHelper.GetColorRamp(pStyleGalleryItem, rasterClassRenderer.ClassCount).Colors;

            enumColors.Reset();
            IFillSymbol fillSymbol = new SimpleFillSymbolClass();

            for (int i = 0; i < rasterClassRenderer.ClassCount; i++)
            {
                fillSymbol.Color = enumColors.Next();
                rasterClassRenderer.set_Symbol(i, (ISymbol)fillSymbol);
                string label = Math.Round(rasterClassRenderer.Break[i], 2) + "-"
                               + Math.Round(rasterClassRenderer.Break[i + 1], 2);
                rasterClassRenderer.set_Label(i, label);
            }
            rasterLayer.Renderer = rasterRend;
        }
Esempio n. 11
0
        /// <summary>
        /// Gets the render type of the input raster layer.
        /// </summary>
        /// <param name="rasterLayer"></param>
        /// <returns></returns>
        public static RenderType GetRenderType(IRasterLayer rasterLayer)
        {
            IRasterRenderer rasterRenderer = rasterLayer.Renderer;

            if (rasterRenderer is RasterClassifyColorRampRenderer)
            {
                return(RenderType.Classified);
            }
            else if (rasterRenderer is RasterDiscreteColorRenderer)
            {
                return(RenderType.DiscreteColor);
            }
            else if (rasterRenderer is RasterStretchColorRampRenderer)
            {
                return(RenderType.Stretched);
            }
            else if (rasterRenderer is RasterUniqueValueRenderer)
            {
                return(RenderType.UniqueValues);
            }
            else
            {
                return(RenderType.Unknow);
            }
        }
Esempio n. 12
0
        /// <summary>
        /// 根据单波段拉伸渲染
        /// </summary>
        /// <param name="rasterDataset">栅格数据集</param>
        /// <param name="graypos">第几波段</param>
        /// <param name="stretchType">拉伸方式</param>
        /// <param name="pFromColor">fromColor</param>
        /// <param name="pToColor">toColor</param>
        /// <returns></returns>
        public static IRasterRenderer StretchRenderer(ESRI.ArcGIS.Geodatabase.IRasterDataset rasterDataset, int graypos,
                                                      esriRasterStretchTypesEnum stretchType, IRgbColor pFromColor, IRgbColor pToColor)
        {
            try
            {
                //Create the color ramp.
                IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRampClass();
                colorRamp.Size      = 255;
                colorRamp.FromColor = pFromColor;
                colorRamp.ToColor   = pToColor;
                bool createColorRamp;
                colorRamp.CreateRamp(out createColorRamp);
                //Create a stretch renderer.
                IRasterStretchColorRampRenderer stretchRenderer = new
                                                                  RasterStretchColorRampRendererClass();

                IRasterRenderer rasterRenderer = (IRasterRenderer)stretchRenderer;
                //Set the renderer properties.
                IRaster raster = rasterDataset.CreateDefaultRaster();
                rasterRenderer.Raster = raster;
                rasterRenderer.Update();
                stretchRenderer.BandIndex = graypos;
                stretchRenderer.ColorRamp = colorRamp;
                //Set the stretch type.
                IRasterStretch pRasterStretch = (IRasterStretch)rasterRenderer;
                pRasterStretch.StretchType             = stretchType;
                pRasterStretch.StandardDeviationsParam = 2;
                return(rasterRenderer);
            }
            catch
            {
                return(null);
            }
        }
Esempio n. 13
0
        private void StretchRender()
        {
            if (comboBoxBand.SelectedItem == null)
            {
                MessageBox.Show("波段不能为空!");
                return;
            }
            IColorRamp   pColorRamp  = (IColorRamp)EnumStyleItem[comboBoxColor.SelectedIndex];
            IRasterLayer pRasterLayr = m_layer as IRasterLayer;
            IRasterStretchColorRampRenderer pStretchRenderer = new RasterStretchColorRampRendererClass();
            IRasterRenderer pRasterRenderer = (IRasterRenderer)pStretchRenderer;
            IRaster         pRaster         = pRasterLayr.Raster;

            pRasterRenderer.Raster = pRaster;
            pRasterRenderer.Update();
            pStretchRenderer.BandIndex = comboBoxBand.SelectedIndex;
            pStretchRenderer.ColorRamp = pColorRamp;
            IRasterStretch pStretchType = (IRasterStretch)pRasterRenderer;

            pStretchType.StretchType             = esriRasterStretchTypesEnum.esriRasterStretch_StandardDeviations;
            pStretchType.StandardDeviationsParam = Convert.ToDouble(textBoxStandardValue.Text);

            pRasterLayr.Renderer = pRasterRenderer;

            m_mapControl3.Refresh();
        }
Esempio n. 14
0
        public IRasterLayer RasterRenderedLayer(IRasterLayer pRL, bool renderType, int grayBandIndex, int[] rgbBandIndex)
        {
            //实例新的栅格图层
            IRasterLayer   rlayer        = new RasterLayerClass();
            string         fullPath      = pRL.FilePath;
            IRasterDataset rasterDataset = OpenFileRasterDataset(fullPath);

            //单波段
            if (rgbBandIndex == null)
            {
                //如果grayBandIndex=-1
                try
                {
                    //定义拉伸颜色条
                    IRgbColor pFromColor = new RgbColorClass();
                    pFromColor.Red   = this.userControl_Color1.FromColor.R;
                    pFromColor.Green = this.userControl_Color1.FromColor.G;
                    pFromColor.Blue  = this.userControl_Color1.FromColor.B;
                    IRgbColor pToColor = new RgbColorClass();
                    pToColor.Red   = this.userControl_Color1.ToColor.R;
                    pToColor.Green = this.userControl_Color1.ToColor.G;
                    pToColor.Blue  = this.userControl_Color1.ToColor.B;
                    IRasterRenderer render = null;
                    render = BandCombinationShow.StretchRenderer(rasterDataset, grayBandIndex, this.stretchType, pFromColor, pToColor);
                    rlayer.CreateFromDataset(rasterDataset);
                    rlayer.Renderer = render as IRasterRenderer;
                    return(rlayer);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    return(null);
                }
            }
            else//多波段显示
            {
                try
                {
                    //设置彩色合成顺序 生成新的渲染模式
                    IRasterRGBRenderer render = new RasterRGBRendererClass();
                    render.RedBandIndex   = rgbBandIndex[0];
                    render.GreenBandIndex = rgbBandIndex[1];
                    render.BlueBandIndex  = rgbBandIndex[2];

                    IRasterStretch stretchType = (IRasterStretch)render;
                    stretchType.StretchType             = this.stretchType;
                    stretchType.StandardDeviationsParam = 2;


                    rlayer.CreateFromDataset(rasterDataset);
                    rlayer.Renderer = render as IRasterRenderer;
                    return(rlayer);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    return(null);
                }
            }
        }
Esempio n. 15
0
 private void cboColorRamp_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (this.bool_0)
     {
         bool flag;
         this.icolorRamp_0 = this.cboColorRamp.GetSelectStyleGalleryItem().Item as IColorRamp;
         (this.irasterStretchColorRampRenderer_0 as IRasterRendererColorRamp).ColorScheme =
             this.cboColorRamp.Text;
         IRasterStretchColorRampRenderer renderer = this.irasterStretchColorRampRenderer_0;
         IRasterRenderer renderer2 = (IRasterRenderer)renderer;
         if (this.icolorRamp_0 == null)
         {
             IAlgorithmicColorRamp ramp = new AlgorithmicColorRampClass();
             IColor color = new RgbColorClass();
             (color as IRgbColor).Red   = 255;
             (color as IRgbColor).Red   = 0;
             (color as IRgbColor).Green = 0;
             (color as IRgbColor).Blue  = 0;
             IColor color2 = new RgbColorClass();
             (color2 as IRgbColor).Red   = 255;
             (color2 as IRgbColor).Green = 255;
             (color2 as IRgbColor).Blue  = 255;
             ramp.FromColor    = color;
             ramp.ToColor      = color2;
             this.icolorRamp_0 = ramp;
         }
         this.icolorRamp_0.Size = 255;
         this.icolorRamp_0.CreateRamp(out flag);
         renderer.ColorRamp = this.icolorRamp_0;
         renderer2.Update();
     }
 }
Esempio n. 16
0
        /// <summary>
        /// Asigna la simbologia establecida a la capa de probabilidades
        /// </summary>
        /// <param name="pRLayer">Objeto RasterLayer a Simbolizar</param>
        private void AsignarSimbologiaProbabilidad(IRasterLayer pRLayer)
        {
            IRasterUniqueValueRenderer pRUVRenderer = new RasterUniqueValueRendererClass();
            IRasterRenderer            pRRenderer   = pRUVRenderer as IRasterRenderer;
            string sLayerName = pRLayer.Name;
            int    iNumDias   = 0;

            try
            {
                iNumDias = System.Convert.ToInt32(sLayerName.Substring(sLayerName.Length - 1, 1));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            IRgbColor pColor = new RgbColorClass();

            pRRenderer.Raster         = pRLayer.Raster;
            pRRenderer.ResamplingType = rstResamplingTypes.RSP_BilinearInterpolation;
            pRUVRenderer.HeadingCount = 1;
            pRUVRenderer.set_Heading(0, "Probabilidad para " + iNumDias.ToString() + " días");

            pRUVRenderer.set_ClassCount(0, 6);
            AsignarColorAClase(0, "", 255, 255, 255, pRUVRenderer);
            AsignarColorAClase(1, "Muy Baja", 0, 255, 0, pRUVRenderer);
            AsignarColorAClase(2, "Baja", 255, 240, 70, pRUVRenderer);
            AsignarColorAClase(3, "Moderada", 255, 220, 100, pRUVRenderer);
            AsignarColorAClase(4, "Alta", 255, 100, 20, pRUVRenderer);
            AsignarColorAClase(5, "Muy Alta", 255, 0, 0, pRUVRenderer);

            pRUVRenderer.UseDefaultSymbol = false;
            pRRenderer.Update();
            pRLayer.Renderer = pRRenderer;
        }
Esempio n. 17
0
 private void btnRasterOK_Click_1(object sender, EventArgs e)
 {
     try
     {
         IRasterStretchColorRampRenderer rasStreRen = new RasterStretchColorRampRendererClass();
         IRasterRenderer rasRen = rasStreRen as IRasterRenderer;
         rasRen.Raster = rasterlayer.Raster;
         rasRen.Update();
         rasStreRen.BandIndex = cmbBand.SelectedIndex;
         pListRamp            = style.pListRamp;
         rasStreRen.ColorRamp = (IColorRamp)pListRamp[cmbsymRaster.SelectedIndex];
         rasRen.Update();
         rasterlayer.Renderer = rasStreRen as IRasterRenderer;
         IRasterStretch2 stretch = rasStreRen as IRasterStretch2;
         stretch.BackgroundValue = 0;
         stretch.Background      = true;
         stretch.BackgroundColor = RasterRender.GET(255, 255, 255) as IColor;
         //axmapcontrol.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
         axmapcontrol.Refresh();
         axtoccontrol.Update();
         axmapcontrol.Extent = rasterlayer.AreaOfInterest;
     }
     catch (Exception ec)
     {
         MessageBox.Show(ec.Message);
     }
 }
Esempio n. 18
0
 private void cboBand_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (this.bool_0 && (this.cboBand.SelectedIndex != -1))
     {
         bool flag;
         IRasterStretchColorRampRenderer renderer = this.irasterStretchColorRampRenderer_0;
         IRasterRenderer renderer2 = (IRasterRenderer)renderer;
         renderer.BandIndex = this.cboBand.SelectedIndex;
         if (this.icolorRamp_0 == null)
         {
             IAlgorithmicColorRamp ramp = new AlgorithmicColorRampClass();
             IColor color = new RgbColorClass();
             (color as IRgbColor).Red   = 255;
             (color as IRgbColor).Red   = 0;
             (color as IRgbColor).Green = 0;
             (color as IRgbColor).Blue  = 0;
             IColor color2 = new RgbColorClass();
             (color2 as IRgbColor).Red   = 255;
             (color2 as IRgbColor).Green = 255;
             (color2 as IRgbColor).Blue  = 255;
             ramp.FromColor    = color;
             ramp.ToColor      = color2;
             this.icolorRamp_0 = ramp;
         }
         this.icolorRamp_0.Size = 255;
         this.icolorRamp_0.CreateRamp(out flag);
         renderer.ColorRamp = this.icolorRamp_0;
         renderer2.Update();
     }
 }
Esempio n. 19
0
        /// <summary>
        /// 拉伸渲染raster图层
        /// </summary>
        /// <params name="pRLayer">raster图层</params>
        /// <remarks></remarks>
        public void UsingRasterStretchColorRampRender(IRasterLayer pRLayer)
        {
            //获得图层
            IRaster pRaster = default(IRaster);

            pRaster = pRLayer.Raster;

            //创建渲染并转换到栅格渲染
            IRasterStretchColorRampRenderer pStretchRen = default(IRasterStretchColorRampRenderer);

            pStretchRen = new RasterStretchColorRampRenderer();
            IRasterRenderer pRasRen = default(IRasterRenderer);

            pRasRen = (IRasterRenderer)pStretchRen;

            //栅格渲染赋值和更新
            pRasRen.Raster = pRaster;
            pRasRen.Update();

            //定义起止颜色
            IRgbColor pFromColor = new RgbColorClass();

            pFromColor.Red   = 0;
            pFromColor.Green = 255;
            pFromColor.Blue  = 0;

            IRgbColor pToColor = new RgbColorClass();

            pToColor.Red   = 255;
            pToColor.Green = 0;
            pToColor.Blue  = 0;

            //创建颜色条
            IAlgorithmicColorRamp pRamp = new AlgorithmicColorRamp();

            pRamp.Size      = 255;
            pRamp.FromColor = pFromColor;
            pRamp.ToColor   = pToColor;
            bool bOK;

            pRamp.CreateRamp(out bOK);

            //插入颜色条和选择渲染波段
            pStretchRen.BandIndex = 0;
            pStretchRen.ColorRamp = pRamp;

            //用新的设置更新渲染并赋值给图层
            pRasRen.Update();
            pRLayer.Renderer = (IRasterRenderer)pStretchRen;

            //释放内存
            pRLayer     = null;
            pRaster     = null;
            pStretchRen = null;
            pRasRen     = null;
            pRamp       = null;
            pToColor    = null;
            pFromColor  = null;
        }
Esempio n. 20
0
        public void InitRasterRendererObject(List <FieldInfo> pFieldInfo, IRasterRenderer pRenderer)
        {
            flag = true;

            IRasterStretchColorRampRenderer pBreakRenderer = pRenderer as IRasterStretchColorRampRenderer;

            flag = false;
        }
Esempio n. 21
0
        public void createSSTrst(ILayer layer)
        {
            IRasterClassifyColorRampRenderer pRClassRend  = new RasterClassifyColorRampRenderer() as IRasterClassifyColorRampRenderer;
                        IRasterRenderer      pRRend       = pRClassRend as IRasterRenderer;

            IRasterLayer rstLayer = layer as IRasterLayer;
             
                        IRaster pRaster = rstLayer.Raster;
                        IRasterBandCollection pRBandCol = pRaster as IRasterBandCollection;
                        IRasterBand           pRBand    = pRBandCol.Item(0);

                        if(pRBand.Histogram == null)
                         {
                                pRBand.ComputeStatsAndHist();
                            
            }
                        pRRend.Raster          = pRaster;
                        pRClassRend.ClassCount = 10;
                        pRRend.Update();
             
                        IRgbColor pFromColor = new RgbColor() as IRgbColor;

                        pFromColor.Red   = 0;
                        pFromColor.Green = 0;
                        pFromColor.Blue  = 255;
                        IRgbColor pToColor = new RgbColor() as IRgbColor;

                        pToColor.Red   = 255;
                        pToColor.Green = 0;
                        pToColor.Blue  = 0;
             
                        IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRamp() as IAlgorithmicColorRamp;

                        colorRamp.Size      = 10;
                        colorRamp.FromColor = pFromColor;
                        colorRamp.ToColor   = pToColor;          
                        bool createColorRamp;
             
                        colorRamp.CreateRamp(out createColorRamp);

             
                        IFillSymbol fillSymbol = new SimpleFillSymbol() as IFillSymbol;

                        for(int i = 0; i < pRClassRend.ClassCount; i++)
                         {
                                fillSymbol.Color = colorRamp.get_Color(i);
                                pRClassRend.set_Symbol(i, fillSymbol as ISymbol);
                                pRClassRend.set_Label(i, pRClassRend.get_Break(i).ToString("0.00"));
                            
            }
                        rstLayer.Renderer = pRRend;

            axMapControl1.AddLayer(rstLayer);

            this.axMapControl1.ActiveView.Refresh();
            this.axTOCControl1.Update();
        }
Esempio n. 22
0
        public static void classifyRender(IRasterLayer rastlayer, string classMethod, int count, IColorRamp ramp)
        {
            try
            {
                IRasterBand band = GetBand(rastlayer);
                if (band.Histogram == null)
                {
                    band.ComputeStatsAndHist();
                }
                IRasterClassifyColorRampRenderer rasClassifyRender = new RasterClassifyColorRampRendererClass();
                IRasterRenderer rasRender = rasClassifyRender as IRasterRenderer;
                rasRender.Raster = rastlayer.Raster;
                rasRender.Update();

                int       numClasses = count;
                IClassify classify   = null;

                switch (classMethod)
                {
                case "等间距分级":
                    classify = new EqualIntervalClass();
                    break;

                case "自然断点分级":
                    classify = new NaturalBreaksClass();
                    break;
                }
                classify.Classify(ref numClasses);

                double[] Classes = classify.ClassBreaks as double[];
                UID      pUid    = classify.ClassID;
                IRasterClassifyUIProperties rasClassifyUI = rasClassifyRender as IRasterClassifyUIProperties;
                rasClassifyUI.ClassificationMethod = pUid;
                rasClassifyRender.ClassField       = "Value";
                rasClassifyRender.ClassCount       = count;
                rasRender.Update();
                IColor            pColor;
                ISimpleFillSymbol pSym;

                for (int j = 0; j < count; j++)
                {
                    pColor     = ramp.get_Color(j * (ramp.Size - 1) / (count - 1));
                    pSym       = new SimpleFillSymbolClass();
                    pSym.Color = pColor;
                    rasClassifyRender.set_Symbol(j, (ISymbol)pSym);
                    rasClassifyRender.set_Break(j, rasClassifyRender.get_Break(j));
                }
                rasRender.Update();

                rastlayer.Renderer = rasClassifyRender as IRasterRenderer;
            }
            catch
            {
                XtraMessageBox.Show("唯一值数量已达到限制(65536)");
            }
        }
Esempio n. 23
0
 private void method_0()
 {
     if (((this.irasterLayer_1 != null) &&
          ((this.ibasicMap_0 == null) || this.irasterLayer_1.Renderer.CanRender(this.irasterLayer_1.Raster))) &&
         (this.irasterLayer_1.Raster != null))
     {
         int count = 1;
         if (this.irasterLayer_1.Raster is IRasterBandCollection)
         {
             count = (this.irasterLayer_1.Raster as IRasterBandCollection).Count;
         }
         this.listBox1.Items.Clear();
         if (count == 3)
         {
             this.listBox1.Items.Add("Stretched");
             this.listBox1.Items.Add("RGB");
         }
         else
         {
             this.listBox1.Items.Add("Stretched");
             this.listBox1.Items.Add("分类");
         }
         if (this.iuserControl_0 != null)
         {
             (this.iuserControl_0 as UserControl).Visible = false;
         }
         IRasterRenderer renderer = this.irasterLayer_1.Renderer;
         if (renderer is IRasterStretchColorRampRenderer)
         {
             this.listBox1.SelectedIndex = 0;
             this.iuserControl_0         = this.rasterStretchedRenderPage_0;
             this.rasterClassifiedRenderPage_0.Visible = false;
             this.rasterStretchedRenderPage_0.Visible  = true;
             this.rasterRGBRendererPage_0.Visible      = false;
         }
         else if (renderer is IRasterClassifyColorRampRenderer)
         {
             this.listBox1.SelectedIndex = 1;
             this.iuserControl_0         = this.rasterClassifiedRenderPage_0;
             this.rasterClassifiedRenderPage_0.Visible = true;
             this.rasterStretchedRenderPage_0.Visible  = false;
             this.rasterRGBRendererPage_0.Visible      = false;
         }
         else if (renderer is IRasterRGBRenderer)
         {
             this.listBox1.SelectedIndex = 1;
             this.iuserControl_0         = this.rasterRGBRendererPage_0;
             this.rasterClassifiedRenderPage_0.Visible = false;
             this.rasterStretchedRenderPage_0.Visible  = false;
             this.rasterRGBRendererPage_0.Visible      = true;
         }
         else if (!(renderer is IRasterUniqueValueRenderer))
         {
         }
     }
 }
Esempio n. 24
0
        public static IRasterRenderer CreateSlopePrecentRiseColorRamp(Raster gRaster)
        {
            try
            {
                // Open file raster dataset and ensure that statistics and histograms are present (absence of histograms will cause Renderer.Update() to crash)
                IRasterDataset rasterDataset = ArcMapUtilities.GetRasterDataset(gRaster);
                ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection pRastBands     = (ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection)rasterDataset;
                ESRI.ArcGIS.DataSourcesRaster.IEnumRasterBand       enumRasterBand = (ESRI.ArcGIS.DataSourcesRaster.IEnumRasterBand)pRastBands.Bands;
                rasterDataset.PrecalculateStats(0);
                ESRI.ArcGIS.DataSourcesRaster.IRasterBand pRastBand = enumRasterBand.Next();
                pRastBand.ComputeStatsAndHist();

                IRasterClassifyColorRampRenderer classifyRenderer = new RasterClassifyColorRampRendererClass();
                IRasterRenderer rasterRenderer = (IRasterRenderer)classifyRenderer;
                IRaster         raster         = rasterDataset.CreateDefaultRaster();

                rasterRenderer.Raster       = raster;
                classifyRenderer.ClassCount = 10;
                rasterRenderer.Update();
                classifyRenderer.Break[0] = 0;
                classifyRenderer.Label[0] = "0 to 3.5%";
                classifyRenderer.Break[1] = 3.5;
                classifyRenderer.Label[1] = "3.5% to 8.75%";
                classifyRenderer.Break[2] = 8.75;
                classifyRenderer.Label[2] = "8.75% to 15%";
                classifyRenderer.Break[3] = 15;
                classifyRenderer.Label[3] = "15% to 25%";
                classifyRenderer.Break[4] = 25;
                classifyRenderer.Label[4] = "25% to 45%";
                classifyRenderer.Break[5] = 45;
                classifyRenderer.Label[5] = "45% to 70%";
                classifyRenderer.Break[6] = 70;
                classifyRenderer.Label[6] = "70% to 100%";
                classifyRenderer.Break[7] = 100;
                classifyRenderer.Label[7] = "100% to 175%";
                classifyRenderer.Break[8] = 175;
                classifyRenderer.Label[8] = "175% to 565%";
                classifyRenderer.Break[9] = 565;
                classifyRenderer.Label[9] = "> 565%";
                List <RgbColor> lColors    = CreateSlopeColorRamp();
                IFillSymbol     fillSymbol = new SimpleFillSymbolClass();
                for (int i = 0; i < classifyRenderer.ClassCount; i++)
                {
                    fillSymbol.Color           = lColors[i];
                    classifyRenderer.Symbol[i] = (ISymbol)fillSymbol;
                }

                return(rasterRenderer);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                return(null);
            }
        }
Esempio n. 25
0
        public static bool UniqueValueRenderer(IColorRamp colorRamp, IRasterLayer rasterLayer, string renderfiled = "Value")
        {
            try
            {
                IRasterUniqueValueRenderer uniqueValueRenderer = new RasterUniqueValueRendererClass();
                IRasterRenderer            pRasterRenderer     = uniqueValueRenderer as IRasterRenderer;
                pRasterRenderer.Raster = rasterLayer.Raster;
                pRasterRenderer.Update();
                IUniqueValues           uniqueValues     = new UniqueValuesClass();
                IRasterCalcUniqueValues calcUniqueValues = new RasterCalcUniqueValuesClass();
                calcUniqueValues.AddFromRaster(rasterLayer.Raster, 0, uniqueValues);//iBand=0
                IRasterRendererUniqueValues renderUniqueValues = uniqueValueRenderer as IRasterRendererUniqueValues;
                renderUniqueValues.UniqueValues = uniqueValues;
                uniqueValueRenderer.Field       = renderfiled;
                colorRamp.Size = uniqueValues.Count;

                uniqueValueRenderer.HeadingCount = 1;
                uniqueValueRenderer.set_Heading(0, "All Data Value");
                uniqueValueRenderer.set_ClassCount(0, uniqueValues.Count);
                bool pOk;
                colorRamp.CreateRamp(out pOk);
                IRasterRendererColorRamp pRasterRendererColorRamp = uniqueValueRenderer as IRasterRendererColorRamp;
                pRasterRendererColorRamp.ColorRamp = colorRamp;
                for (int i = 0; i < uniqueValues.Count; i++)
                {
                    uniqueValueRenderer.AddValue(0, i, uniqueValues.get_UniqueValue(i));
                    uniqueValueRenderer.set_Label(0, i, uniqueValues.get_UniqueValue(i).ToString());
                    IFillSymbol fs = new SimpleFillSymbol();
                    //fs.Color = colorRamp.get_Color(i);
                    IColor color = new RgbColorClass();
                    if ((Convert.ToByte(uniqueValues.get_UniqueValue(i)) == 255) || (Convert.ToByte(uniqueValues.get_UniqueValue(i)) == 0))
                    {
                        color.NullColor    = true;
                        color.Transparency = 0;
                        fs.Color           = color;
                    }
                    else
                    {
                        IRgbColor rgbColor = color as IRgbColor;
                        rgbColor.Red   = 0;
                        rgbColor.Green = 255;
                        rgbColor.Blue  = 0;
                        fs.Color       = rgbColor as IColor;
                    }
                    uniqueValueRenderer.set_Symbol(0, i, fs as ISymbol);
                }
                pRasterRenderer.Update();
                rasterLayer.Renderer = pRasterRenderer;
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
 private void method_4(IColorRamp icolorRamp_1,
                       IRasterClassifyColorRampRenderer irasterClassifyColorRampRenderer_1, int int_0, ITable itable_0,
                       string string_0, string string_1)
 {
     try
     {
         bool flag;
         if (string_0.Length > 0)
         {
             irasterClassifyColorRampRenderer_1.ClassField = string_0;
         }
         if (string_1.Length > 0)
         {
             irasterClassifyColorRampRenderer_1.NormField = string_1;
         }
         IRasterRenderer renderer = (IRasterRenderer)irasterClassifyColorRampRenderer_1;
         renderer.Raster = this.irasterLayer_0.Raster;
         irasterClassifyColorRampRenderer_1.ClassCount = int_0;
         renderer.Update();
         this.bool_0 = false;
         this.cboClassifyNum.SelectedIndex = irasterClassifyColorRampRenderer_1.ClassCount - 1;
         this.bool_0       = true;
         icolorRamp_1.Size = irasterClassifyColorRampRenderer_1.ClassCount;
         icolorRamp_1.CreateRamp(out flag);
         IEnumColors colors = icolorRamp_1.Colors;
         ISymbol     symbol = null;
         for (int i = 0; i < irasterClassifyColorRampRenderer_1.ClassCount; i++)
         {
             string            str;
             IColor            color   = colors.Next();
             ISimpleFillSymbol symbol2 = new SimpleFillSymbolClass
             {
                 Color = color,
                 Style = esriSimpleFillStyle.esriSFSSolid
             };
             symbol = symbol2 as ISymbol;
             irasterClassifyColorRampRenderer_1.set_Symbol(i, symbol);
             if (i == (irasterClassifyColorRampRenderer_1.ClassCount - 1))
             {
                 str = irasterClassifyColorRampRenderer_1.get_Break(i).ToString("0.####");
             }
             else
             {
                 str = irasterClassifyColorRampRenderer_1.get_Break(i).ToString("0.####") + " - " +
                       irasterClassifyColorRampRenderer_1.get_Break(i + 1).ToString("0.####");
             }
             irasterClassifyColorRampRenderer_1.set_Label(i, str);
         }
     }
     catch (Exception exception)
     {
         Logger.Current.Error("", exception, "");
     }
 }
Esempio n. 27
0
        private IColorRamp GetCurrentColorRamp()
        {
            IRasterLayer pRasterLayr = m_layer as IRasterLayer;
            IRasterStretchColorRampRenderer pStretchRenderer = new RasterStretchColorRampRendererClass();
            IRasterRenderer pRasterRenderer = (IRasterRenderer)pStretchRenderer;
            IRaster         pRaster         = pRasterLayr.Raster;

            pRasterRenderer.Raster = pRaster;
            pRasterRenderer.Update();
            pStretchRenderer.BandIndex = comboBoxBand.SelectedIndex;
            return(pStretchRenderer.ColorRamp);
        }
Esempio n. 28
0
        /// <summary>
        /// 获取拉伸标注
        /// </summary>
        /// <param name="rasterLayer">图层</param>
        /// <returns></returns>
        public static string[] GetStretchLabels(IRasterLayer rasterLayer)
        {
            IRasterStretchColorRampRenderer rasterStretchColorRampRenderer = new RasterStretchColorRampRendererClass();
            IRasterRenderer rasterRenderer = rasterStretchColorRampRenderer as IRasterRenderer;

            rasterRenderer.Raster = rasterLayer.Raster;
            rasterRenderer.Update();
            string[] labels = new string[2];
            labels[0] = rasterStretchColorRampRenderer.LabelHigh;
            labels[1] = rasterStretchColorRampRenderer.LabelLow;
            return(labels);
        }
Esempio n. 29
0
        public void SetRasterNoDataColor()
        {
            try
            {
                if (m_pLyr == null)
                {
                    return;
                }
                ILayer pLayer = m_pLyr;

                if (!(pLayer is IRasterLayer) && !(pLayer is IRasterCatalogLayer))
                {
                    return;
                }

                //获得当前图层的符号
                IRasterRenderer pRasterRender = null;
                if (pLayer is IRasterLayer)
                {
                    IRasterLayer pRasterLayer = pLayer as IRasterLayer;
                    pRasterRender = pRasterLayer.Renderer;
                }
                else if (pLayer is IRasterCatalogLayer)
                {
                    IRasterCatalogLayer pRasterCatalogLayer = pLayer as IRasterCatalogLayer;
                    pRasterRender = pRasterCatalogLayer.Renderer;
                }
                else
                {
                    return;
                }

                if (pRasterRender == null)
                {
                    return;
                }
                IRasterDisplayProps pRasterDisplayProps = pRasterRender as IRasterDisplayProps;
                if (pRasterDisplayProps == null)
                {
                    return;
                }

                //获得当前的颜色值 并设置
                IColor pColor = ConvertColorToIColor(this.colorNoData.SelectedColor);
                pColor.Transparency = (byte)this.sliderTransparency.Value;

                pRasterDisplayProps.NoDataColor = pColor;
            }
            catch
            {
            }
        }
Esempio n. 30
0
        public static IRasterRenderer CreateGrainSizeStatisticColorRamp(GCDConsoleLib.Raster gRaster, UnitsNet.Units.LengthUnit eUnits)
        {
            try
            {
                // Open file raster dataset and ensure that statistics and histograms are present (absence of histograms will cause Renderer.Update() to crash)
                IRasterDataset rasterDataset = ArcMapUtilities.GetRasterDataset(gRaster);
                ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection pRastBands     = (ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection)rasterDataset;
                ESRI.ArcGIS.DataSourcesRaster.IEnumRasterBand       enumRasterBand = (ESRI.ArcGIS.DataSourcesRaster.IEnumRasterBand)pRastBands.Bands;
                rasterDataset.PrecalculateStats(0);
                ESRI.ArcGIS.DataSourcesRaster.IRasterBand pRastBand = enumRasterBand.Next();
                pRastBand.ComputeStatsAndHist();

                IRasterClassifyColorRampRenderer classifyRenderer = new RasterClassifyColorRampRendererClass();
                IRasterRenderer rasterRenderer = (IRasterRenderer)classifyRenderer;
                IRaster         raster         = rasterDataset.CreateDefaultRaster();

                rasterRenderer.Raster       = raster;
                classifyRenderer.ClassCount = 5;
                rasterRenderer.Update();
                classifyRenderer.Break[0] = 0;
                classifyRenderer.Label[0] = "Fines, Sand (0 to 2 mm)";
                classifyRenderer.Break[1] = UnitsNet.Length.From(2, UnitsNet.Units.LengthUnit.Millimeter).As(eUnits);
                classifyRenderer.Label[1] = "Fine Gravel (2 mm to 16 mm)";
                classifyRenderer.Break[2] = UnitsNet.Length.From(16, UnitsNet.Units.LengthUnit.Millimeter).As(eUnits);
                classifyRenderer.Label[2] = "Coarse Gravel (16 mm to 64 mm)";
                classifyRenderer.Break[3] = UnitsNet.Length.From(64, UnitsNet.Units.LengthUnit.Millimeter).As(eUnits);
                classifyRenderer.Label[3] = "Cobbles (64 mm to 256 mm)";
                classifyRenderer.Break[4] = UnitsNet.Length.From(256, UnitsNet.Units.LengthUnit.Millimeter).As(eUnits);
                classifyRenderer.Label[4] = "Boulders (> 256 mm)";

                List <RgbColor> lColors = new List <RgbColor>();
                lColors.Add(CreateRGBColor(194, 82, 60));
                lColors.Add(CreateRGBColor(240, 180, 17));
                lColors.Add(CreateRGBColor(123, 237, 0));
                lColors.Add(CreateRGBColor(27, 168, 124));
                lColors.Add(CreateRGBColor(11, 44, 122));

                IFillSymbol fillSymbol = new SimpleFillSymbol();
                for (int i = 0; i < classifyRenderer.ClassCount; i++)
                {
                    fillSymbol.Color           = lColors[i];
                    classifyRenderer.Symbol[i] = (ISymbol)fillSymbol;
                }

                return(rasterRenderer);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
                return(null);
            }
        }