如何用R terra包在大型DEM栅格生成高分辨率等高线?
解决
terra::as.contour()处理大型DEM等高线粗糙的问题 问题原因
terra::as.contour()默认参数maxcells = 500000,当输入栅格的单元格总数超过该阈值时,函数会自动对栅格进行降采样,以此提升计算效率,但会丢失等高线细节。你的4000×6000像素DEM总单元格数为24000000,远大于默认阈值,因此生成的等高线被大幅简化。
直接解决方案
调用函数时手动设置maxcells为大于DEM总单元格数的值,禁用自动降采样,基于全分辨率数据生成精细等高线:
# 针对4000×6000的DEM,设置maxcells为24000000(或更大数值) my_line = terra::as.contour(dem, levels=single_elev, maxcells=24000000)
性能平衡建议
全分辨率计算会占用更多内存和计算时间,如果机器性能有限,可以根据需求调整maxcells值,在细节精度和计算效率之间做平衡。例如设置为12000000,将栅格降采样到原分辨率的一半,既能保留较多细节,又能降低计算负载。
内容的提问来源于stack exchange,提问作者Cyril Mory
相关产品推荐
相关产品推荐

