没有合适的资源?快使用搜索试试~ 我知道了~
首页Arcengine 栅格多图层运算方法汇总
资源详情
资源评论
资源推荐
AE 中关于 Raster 的理解
时间:2012-2-13 上午 10:56:08作者:未知来源:网络转载查看:127评论:0
raster 是在重投影、重采样后内存中存在的短暂的数据表达。对 raster 的修改并不
能够影响现有的数据源。虽然是存储在内存中,但是我们可以通过方法来永久保存这
个 raster 对象。
如我们可以使用:ISaveAs 接口 或者 IRasterBandCollection接口 来进行保存
raster 对象;
创建 raster 对象的方法:
1,从现有的 RasterLayer 中派生出 raster 对象 IRasterLayer::Raster;
2,从 rasterdataset 对象中创建 raster 对象;
IRasterDataset::CreateDefaultRaster方法;--本方法是创建默认的 raster,
最多具有 3 个 rasterdataset
中的波段 band。
IRasterDataset2::CreateRaster 方法;--本方法是创建空 raster 对象的方法,
所创建的 raster 属性都是空值 0。
IRasterDataset2::CreateFullRaster 方法;--本方法创建的 raster 对象,会包
含所有的波段 band。
当创建完空的 raster 对象后,就需要对 raster 对象设置长、宽 extent 等属性,使用
IRasterProps(设置)接口;
使用获取 Raster 对象的 raster 属性信息 使用 IRasterDefaultProps(只读)接口
来查看;
使用 IRasterAnalysisProps 接口来设置 raster 分析时的属性;
名词解释:
PixelBlock :字面上理解为“像素块”。顾名思义 PixelBlock 是多个像素点组成的块,
它的大小可以是整个 raster, 当然也可以是 raster 中的某一个区域(要随定义块的大
小而定行数、列数而确定);利用这个 PixelBlock我们可以读取 PixelBlock 上的所
有像素点值(通过 SafeArray 来获取)。我们也可以理解使用 PixelBlock 可以从原
有的 raster 或 rasterband 中截取一个区域,组成新的 raster 或者 rasterband。
Planes :可以把它理解为是波段。如一个 raster 有 3 个波段,那么 Planes 的数
量就是 3;
SafeArray:返回某一波段中 pixelBlock 的所有像素数组;
GetVal:而 GetVal 是可以返回特点波段上,特定行、列上的数值;
AE 栅格计算器操作,关于复杂运算~
话说今天有人问我关于影像Raster计算问题..给偶了一串很长的公式,问我要怎么
方便计算..像10-(ALayer*BLayer)/CLayer+DLayer*0.11+tan(ELayer)*cos
(FLayer)。偶就跟他说用SpatialAnalysis中的RasterCalculator的方式去计算就o
k了ㄚ。可是对方跟偶说是要动态的,要去设计窗口给user作.图层不一定。好吧..
就想说之前有作过透过MathOp的方式来设计这串公式。之前偷是透过MathOp这
个function搞Times乘Plus加,当然也有Tan,Cos等三角函数...由于MathOp的参
数都是两个GeoDataSet的对象,针对于10参数的话..一种就是建一个const为10的
Raster资料..再去加减..
或是透过IPixelBlock的方式去计算影像的数据..搞的规模很庞大..搞的天昏地案日
月无光.搞的一个头两个大...程序就越写越多.function就越搞越杂..写个漏漏长的几
千行程序后发现....发现....
底下是很笨很笨的下去慢慢算..
DimpMathOpAsIMathOp
SetpMathOp=NewRasterMathOps
DimpResultDatasetAsIGeoDataset
SetpResultDataset=NewRasterDataset
SetpResultDataset=pMathOp.Times(pRMLayer.Raster,pKMLayer.Raster)
SetpResultDataset=pMathOp.Div(pResultDataset,pSLayer.Raster)
SetpResultDataset=pMathOp.ATan(pResultDataset)
然后针对那些参数的加减乘除..
PublicFunctionRasterParamCalc(pResultDatasetAsIGeoDataset,ctypeAsString,fnum
AsDouble)AsIGeoDataset
DimpTmpLayerAsIRasterLayer
SetpTmpLayer=NewRasterLayer
pTmpLayer.CreateFromRasterpResultDataset
DimpRasPropsAsIRasterProps
SetpRasProps=pTmpLayer.Raster
DimpPBAsIPixelBlock3
DimpPntAsIPnt
SetpPnt=NewPnt
pPnt.SetCoordspRasProps.Width,pRasProps.Height
SetpPB=pTmpLayer.Raster.CreatePixelBlock(pPnt)
IfpPBIsNothingThen
MsgBox"影像数据无法取得 PixelBlock.."
ExitFunction
EndIf
'DimpRawPixelsAsIRawPixels
pPnt.X=0
pPnt.Y=0
pTmpLayer.Raster.ReadpPnt,pPB
DimvAsVariant
v=pPB.PixelData(0)
Dimm,nAsInteger
Form=0TopPB.Width-1
剩余10页未读,继续阅读
pwrc0
- 粉丝: 2
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论16