你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
问题
话题
文章
帮助
登录
注册
ArcGIS Engine
ArcGIS Engine中栅格数据如何获取排序后N%处的值?
环境WIN8+AE10.1+VS2010 如何获取栅格值排序后5%和95%处的值?
1 个回复
刘峥
-
ArcGIS多面手
赞同来自:
【解决办法】:
如果数据呈正态分布,在AE中可以使用接口实现:
通过IRasterBand.Statistics获得IRasterStatistics,其属性有最大值、最小值、期望、标准差等。
然后通过数学公式可以获得指定区间的分界值。
如果栅格数据类型是整形,在AE中可以使用接口实现:
通过IRasterCalcUniqueValues.AddFromRaster方法获得唯一值对象IUniqueValues;
通过IUniqueValues.GetHistogram获得唯一值及频率数组;
由于栅格数据是浮点型的,uniqueValue过大,不能创建属性表,即不能使用IRasterCalcUniqueValues.AddFromRaster方法获得唯一值对象IUniqueValues;
有两种解决方法:
1. 调用arcpy中的arcpy.RasterToNumPyArray()方法把栅格数据转换成二维的矩阵,再用矩阵处理的方法获取统计数据。关于在.NET中调用arcpy的方法可以参考:
http://resources.arcgis.com/en ... 0000/
和
http://blogs.esri.com/esri/arc ... -too/
(将arcpy的命令在arcmap中打包成一个toolbox,然后在engine中通过调用GP工具的方式来调用);
2. 如果精度允许的话可以把像素值乘以一个较大的倍数,再转换成整型的数据,这样数据量变小后应该各个方法都能实现。
要回复问题请先
登录
或
注册
发起人
刘峥
ArcGIS多面手
相关问题
如何优雅的使用ArcGIS知乎?
建设ArcGIS知乎平台的目和意义?
作为Desktop用户对数据的获取比较乏力,可能缺了哪些知识?
ArcGIS知乎社区改进意见征集
有谁知道哪里可以免费获取各省市地图数据呢,包括详细的shape文件数据
苹果系统下可以使用arcgis 吗?
arcgis版本兼容性
请问ArcGIS适合在局域网内用javaweb做二次开发吗?
请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
ArcGIS如何求栅格图像的“质心”
在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
问题状态
最新活动:
2015-04-17 16:40
浏览:
2850
关注:
0
人
1 个回复
刘峥 - ArcGIS多面手
赞同来自:
如果数据呈正态分布,在AE中可以使用接口实现:
通过IRasterBand.Statistics获得IRasterStatistics,其属性有最大值、最小值、期望、标准差等。
然后通过数学公式可以获得指定区间的分界值。
如果栅格数据类型是整形,在AE中可以使用接口实现:
通过IRasterCalcUniqueValues.AddFromRaster方法获得唯一值对象IUniqueValues;
通过IUniqueValues.GetHistogram获得唯一值及频率数组;
由于栅格数据是浮点型的,uniqueValue过大,不能创建属性表,即不能使用IRasterCalcUniqueValues.AddFromRaster方法获得唯一值对象IUniqueValues;
有两种解决方法:
1. 调用arcpy中的arcpy.RasterToNumPyArray()方法把栅格数据转换成二维的矩阵,再用矩阵处理的方法获取统计数据。关于在.NET中调用arcpy的方法可以参考:http://resources.arcgis.com/en ... 0000/
和http://blogs.esri.com/esri/arc ... -too/(将arcpy的命令在arcmap中打包成一个toolbox,然后在engine中通过调用GP工具的方式来调用);
2. 如果精度允许的话可以把像素值乘以一个较大的倍数,再转换成整型的数据,这样数据量变小后应该各个方法都能实现。
要回复问题请先登录或注册