//1将栅格数据添加到map中显示public static void AddLayerToMap(string filename,string gdbpath, AxMapControl axmapcontrol)   {  IWorkspaceFactory workspacefactory = new FileGDBWorkspaceFactoryClass();  IRasterWorkspaceEx rasterworkspace = workspacefactory.OpenFromFile(gdbpath, 0) as IRasterWorkspaceEx;  IRasterDataset rasterdataset = rasterworkspace.OpenRasterDataset(filename);  IRasterLayer rasterlayer = new RasterLayerClass();  rasterlayer.CreateFromDataset(rasterdataset);  axmapcontrol.Map.AddLayer(rasterlayer as ILayer);  axmapcontrol.Extent = axmapcontrol.FullExtent;  }
//用信封或数据集剪切栅格数据集输入栅格数据集和输出栅格数据集可以采用任何格式。使用“剪辑”地理处理工具的好处在于,即使指定的剪切包络没有将单元格与输入栅格数据集对齐,输出栅格数据集也会自动与输入栅格数据集对齐。要用信封或模板数据集剪辑栅格数据集,请按照下列步骤操作:创建一个剪辑工具类对象。设置所需的工具输入和输出参数。如果使用数据集裁剪,请设置模板数据集参数。如果使用包络剪裁,请设置剪切包络参数。初始化地理处理器,然后执行Clip工具。//看下面的代码示例://初始化Clip工具类。Clip clip = new Clip();//设置参数clip.in_raster= @ “C:\输入\ test.img”;clip.out_raster= @ “C:\输出\ clip_test.img”;//模板数据集; 其范围将用于剪辑输入栅格。//如果使用给定的包络进行裁剪,请将此行注释掉。clip.in_template_dataset= @ “C:\基地\ clip_template.img”;//剪切信封//如果使用给定的数据集进行剪裁,则注释此行。clip.rectangle =“423850 5324600 423900 5324800”;//初始化地理处理器并执行Clip工具。地理处理器地理处理器=新的地理处理器();object outRaster = geoprocessor.Execute(clip,null);//创建一个栅格分类渲染器执行以下步骤来创建栅格分类渲染器:创建分类渲染器。设置渲染器属性。设置符号系统的颜色斜坡。创建类的符号。看下面的代码示例:[C#]public IRasterRenderer ClassifyRenderer(ESRI.ArcGIS.Geodatabase.IRasterDatasetrasterDataset){try{//Create the classify renderer.IRasterClassifyColorRampRenderer classifyRenderer=newRasterClassifyColorRampRendererClass();IRasterRenderer rasterRenderer=(IRasterRenderer)classifyRenderer;//Set up the renderer properties.IRaster raster=rasterDataset.CreateDefaultRaster();rasterRenderer.Raster=raster;classifyRenderer.ClassCount=3;rasterRenderer.Update();//Set the color ramp for the symbology.IAlgorithmicColorRamp colorRamp=new AlgorithmicColorRampClass();colorRamp.Size=3;bool createColorRamp;colorRamp.CreateRamp(out createColorRamp);//Create the symbol for the classes.IFillSymbol fillSymbol=new SimpleFillSymbolClass();for (int i=0; i < classifyRenderer.ClassCount; i++){fillSymbol.Color=colorRamp.get_Color(i);classifyRenderer.set_Symbol(i, (ISymbol)fillSymbol);classifyRenderer.set_Label(i, Convert.ToString(i));}return rasterRenderer;}catch (Exception ex){System.Diagnostics.Debug.WriteLine(ex.Message);return null;}}//创建一个栅格图层执行以下步骤创建栅格图层,设置栅格渲染器,并将其添加到要显示的地图中:从栅格数据集创建栅格图层。您也可以从栅格创建栅格图层。设置栅格渲染器。如果传递空值,则使用默认渲染器。如果图层有效,则将图层添加到地图。看下面的代码示例:[C#]public static void AddRasterLayer(ESRI.ArcGIS.Carto.IActiveView activeView,ESRI.ArcGIS.Geodatabase.IRasterDataset rasterDataset,ESRI.ArcGIS.Carto.IRasterRenderer rasterRenderer){//从栅格数据集创建栅格图层。您也可以从栅格创建栅格图层。ESRI.ArcGIS.Carto.IRasterLayer rasterLayer=new RasterLayerClass();rasterLayer.CreateFromDataset(rasterDataset);//设置栅格渲染器。如果传递空值,则使用默认渲染器。if (rasterRenderer != null){rasterLayer.Renderer=rasterRenderer;}//如果图层有效,则将图层添加到地图。if (rasterLayer != null){ESRI.ArcGIS.Carto.IMap map=activeView.FocusMap;map.AddLayer((ILayer)rasterLayer);}}//识别栅格上的像素值IRaster2.GetPixelValue可用于检索像素空间中给定行和列的像素值。要通过在地图空间中提供x和y坐标来获取像素值,请使用以下代码:[C#]public static void IdentifyPixelValue(IRaster raster, double xMap, double yMap){IRaster2 raster2=(IRaster2)raster;//Get the column and row by giving x,y coordinates in a map space.int col=raster2.ToPixelColumn(xMap);int row=raster2.ToPixelRow(yMap);//Get the value at a given band.double pixelValue=raster2.GetPixelValue(0, col, row);}//创建一个栅格分类渲染器执行以下步骤来创建栅格分类渲染器:创建分类渲染器。设置渲染器属性。设置符号系统的颜色带。创建类的符号。看下面的代码示例:[C#]public IRasterRenderer ClassifyRenderer(ESRI.ArcGIS.Geodatabase.IRasterDatasetrasterDataset){try{//创建分类渲染器。IRasterClassifyColorRampRenderer classifyRenderer=newRasterClassifyColorRampRendererClass();IRasterRenderer rasterRenderer=(IRasterRenderer)classifyRenderer;//设置渲染器属性。IRaster raster=rasterDataset.CreateDefaultRaster();rasterRenderer.Raster=raster;classifyRenderer.ClassCount=3;rasterRenderer.Update();//设置符号系统的颜色带。IAlgorithmicColorRamp colorRamp=new AlgorithmicColorRampClass();colorRamp.Size=3;bool createColorRamp;colorRamp.CreateRamp(out createColorRamp);//创建类的符号。IFillSymbol fillSymbol=new SimpleFillSymbolClass();for (int i=0; i < classifyRenderer.ClassCount; i++){fillSymbol.Color=colorRamp.get_Color(i);classifyRenderer.set_Symbol(i, (ISymbol)fillSymbol);classifyRenderer.set_Label(i, Convert.ToString(i));}return rasterRenderer;}catch (Exception ex){System.Diagnostics.Debug.WriteLine(ex.Message);return null;}}//栅格数据集分块有时你可能想要分割一个栅格信息小瓷砖。ArcGIS 10提供了一个分割栅格地理处理工具来轻松实现此目的。本主题介绍如何使用ArcObjects应用程序编程接口(API)将栅格数据集分割为一组具有指定行和列的较小数据集。[C#]//从源数据集中创建一组具有指定行和列的栅格数据集。// rasterDataset是源栅格数据集。// outputWorkspace是输出文件栅格工作区。// tileWidth是每个tile的列数。// tileHeight是每个tile的行数。public void CreateTilesFromRasterDataset(IRasterDataset rasterDataset, IWorkspaceoutputWorkspace, int tileWidth, int tileHeight){//获取源栅格属性。计算输出图块大小IRasterProps rasterProps=(IRasterProps)rasterDataset.CreateDefaultRaster();double xTileSize=rasterProps.MeanCellSize().X * tileWidth;double yTileSize=rasterProps.MeanCellSize().Y * tileHeight;//计算每个方向所需的瓦片数量。int xTileCount=(int)Math.Ceiling((double)rasterProps.Width / tileWidth);int yTileCount=(int)Math.Ceiling((double)rasterProps.Height / tileHeight);IEnvelope dsExtent=rasterProps.Extent;IEnvelope tileExtent=new EnvelopeClass();ISaveAs saveAs=null;//创建具有指定图块大小的图块for (int i=0; i < xTileCount; i++){for (int j=0; j < yTileCount; j++){rasterProps=(IRasterProps)rasterDataset.CreateDefaultRaster();//重新计算新的范围tileExtent.XMin=dsExtent.XMin + i * xTileSize;tileExtent.XMax=tileExtent.XMin + xTileSize;tileExtent.YMin=dsExtent.YMin + j * yTileSize;tileExtent.YMax=tileExtent.YMin + yTileSize;//设置此图块的原点/范围和大小rasterProps.Height=tileHeight;rasterProps.Width=tileWidth;rasterProps.Extent=tileExtent;//将拼贴保存为输出工作空间作为TIFF文件。可以是其他可写的//格式也是saveAs=(ISaveAs)rasterProps;saveAs.SaveAs("tile_" + i + "_" + j + ".tif", outputWorkspace, "TIFF");}}}

【AE】【栅格操作】相关推荐

  1. C#+AE 栅格裁剪

    AE的栅格裁剪有很多种:矩形.圆形等等的规则图形,在这里就不细说了.而就实际的需求来讲,用不规则图形进行栅格的裁剪操作是最多的,而这个不规则图形往往就是一个矢量文件或是一个栅格图像.而栅格裁剪相关的内 ...

  2. 002_【SAP精英之路】-SAP GUI的快捷复制粘贴和栅格操作

    一.鼠标粘贴复制 定制布局键() ●在GUI的可选中区域,按下鼠标左键,从左至右.或从右至左划一下,这就将划中的内容复制到剪切板中,在需要输入的区域,用鼠标点中进入,按下右键,剪切板中的内容就复制到输 ...

  3. 什么是栅格系统?Bootstrap执行栅格操作

    栅格系统简介 栅格系统英文为"grid systems",也有人翻译为"网格系统",它是指将页面布局划分为等宽的列,然后通过列数的定义来模块化页面布局. Boo ...

  4. ae制h5文字动画_AE文字拉伸动画如何制作

    国庆愉快,鹿友们都出去玩了吧,我还在家里试效果呢,来看问题吧: 原视频的帧数比较多,由于公众号只能上传300帧以内的动图,所以我删减了视频前面一部分内容转成动图大家看看吧: 图片源于网络 如侵请联删 ...

  5. 失传千年AE特效真经(三)

    不同图层效果简介与实操 AE简介与认识(1):失传千年AE特效真经(一) AE基础操作(2):     失传千年AE特效真经(二) AE图层简介与操作(3): 失传千年AE特效真经(三) AE蒙版简介 ...

  6. 失传千年AE特效真经(二)

    AE界面简洁与流程步骤实操 AE简介与认识(1):失传千年AE特效真经(一) AE基础操作(2):     失传千年AE特效真经(二) AE图层简介与操作(3): 失传千年AE特效真经(三) AE蒙版 ...

  7. ae表达式修复_AE中常见表达式错误修改解决方法

    在运用他人AE工程文件的过程中,会遇到表达式错误和素材丢失的情况素材丢失好解决–用自己的素材进行替换即可,不赘述. 表达式错误如何修改? 打开文件经常出现这样的提示: 产生原因: 当前使用的软件版本大 ...

  8. 失传千年AE特效真经(四)

    蒙版的简介与实战 AE简介与认识(1):失传千年AE特效真经(一) AE基础操作(2):     失传千年AE特效真经(二) AE图层简介与操作(3): 失传千年AE特效真经(三) AE蒙版简介与实战 ...

  9. 失传千年AE特效真经(一)

    AE简介与认识(1):失传千年AE特效真经(一) AE基础操作(2):     失传千年AE特效真经(二) AE图层简介与操作(3): 失传千年AE特效真经(三) AE蒙版简介与实战(4):失传千年A ...

  10. 失传千年AE特效真经(五)

    动画与关键帧 AE简介与认识(1):失传千年AE特效真经(一) AE基础操作(2):     失传千年AE特效真经(二) AE图层简介与操作(3): 失传千年AE特效真经(三) AE蒙版简介与实战(4 ...

最新文章

  1. AI每日看点 | 吉利收购飞行汽车公司;传华为暂停向高通支付专利费;高通拒绝博通收购邀约
  2. C++ main函数中参数argc和argv
  3. xps数据怎么导出为txt_使用ExportAsFixedFormat方法将数据导出到PDF或XPS.docx
  4. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第2章-一类多智能体系统的领导-跟随一致性
  5. BTS3410G参数
  6. java解密方法,java加密,解密方法
  7. C语言学习之购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。
  8. 诗与远方:无题(七十五)
  9. bzoj 3872 [ Poi 2014 ] Ant colony —— 二分
  10. Altera PLL失锁的原因
  11. MinGW-w64的安装及配置教程
  12. 软件收集-建筑工程资料软件
  13. class类型重定义
  14. 【科技文献检索】CNKI中国知网检索
  15. oracle排除非数字,oracle字段中找出字段中含有非数字的方法!!!
  16. android app闪退的原因分析,打开一个app就闪退解决方法
  17. 酒仙网IPO被终止:曾拟募资10亿 红杉与东方富海是股东
  18. Cocos2d-x 实现地图滚动,解释缝隙产生的原因以及解决方案
  19. 计算机一级如何启动ie浏览器,ie,详细教您怎么解决ie浏览器打不开的问题
  20. 2023四川大学图书情报档案专业考研初试介绍(2023.1.02已更新)

热门文章

  1. 超五类网线和超六类网线的区别
  2. 酷家乐服务网格与Serverless落地情况
  3. MySQL根据输入的查询条件排序
  4. 缓存数据一致性-解决方案
  5. 《非暴力沟通》阅读总结
  6. 学科前沿:基因启动子甲基化与宫颈癌发展的关系 | 文献科普
  7. Intel连遭打击,未来或回归wintel联盟
  8. html5文档加载前调用函数,html调用javascript外部文件显示函数未定义
  9. 用php打印出日历_php简单日历实现程序代码
  10. java cmyk转rgb_图片 CMYK转RGB 代码