关于DEM土方量算的计算方法

最近在写一个关于dem土方计算的功能,网上搜索了下,普遍提到的都是三角网和矩形格网形式进行计算,然后又研究了下arcgis软件的结果,最后发现arcgis中使用的也是格网形式进行了矩形立方计算。

于是开始动手编写代码段,其实实现的代码相当简单最后测试结果与arcgis中结果一致,下面是实现的核心函数代码:

double caculateElevation(DEMHEADERINFO m_demInfo, float *m_lpHeight,int x,int y, double referenceElevation, double &rmax)
{
	double gz=0;

	double s = m_demInfo.lfDx*m_demInfo.lfDy;////获取格网面积
	float mh=0;
	float xyz;
	GetZ(m_demInfo, m_lpHeight, y  , x , xyz);
	//
		if (xyz== m_demInfo.lfNoData)
		{
			rmax = 0;
			return 0;
			mh += 0;
		}
	rmax = abs(xyz- referenceElevation);
	gz = s*(xyz - referenceElevation);
	return gz;   ////返回格网计算的体积
}

实际原理就是把每个格网作为一个独立的立方体来进行考量,思路较为单纯

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐