根据LiDAR数据,我用PMF分离了地面和非地面点。现在我想要平整所有地面点(z = 0)但是要保持所有非地面点的距离高于地面。这可以使用LASground -replace_z在LASTools中完成。
想要的结果如下图所示。
答案 0 :(得分:0)
基本上你想将地形Z值“标准化”到地面。 您可以使用地面点创建地面模型 - 例如带有单元格的网格 - 也就是栅格 - 保存地面Z值的插值,然后将所有点减去该值。只需在XY边界框上构建一个网格;下面是一个90 X 100网格的例子:
int nRowCells = 100;
int nColCells = 90;
vector< vector <float> > grid;
for(int i=0; i < nRowCells; ++i)
{
std::vector<coord> row(nColCells, .0f);
grid.push_back( row );
}
然后使用其坐标和单元格分辨率将每个地面点分配给一个单元格。
顺便说一下,在LasTools中,这可以用于“lasheight”模块,如果你进行一些Google操作,你会读到它是如何工作的。