吴程锴的第三次上机作业:Dragon绘制与地形可视化

需积分: 0 0 下载量 121 浏览量 更新于2024-08-05 收藏 387KB PDF 举报
"本次资源是吴程锴同学的18029100040号第三次上机作业,主要包括两个部分:Dragon绘制和地形可视化。作业涉及到Python编程、数据处理以及三维可视化技术,使用了Mayavi和NumPy等库进行实现。" 在第一个作业中,吴程锴同学完成了Dragon的绘制。这部分代码首先导入了mayavi、os.path和tarfile库,用于处理和渲染3D模型。代码从'dragon.tar.gz'压缩文件中提取数据到'dragon_data'目录下,然后通过mlab.pipeline.surface()函数加载并渲染名为'dragon_recon/dragon_vrip.ply'的PLY文件,这是一种常见的3D模型文件格式。渲染完成后,使用shutil.rmtree()删除了解压的文件夹,以保持工作环境的整洁。 1.1代码的关键步骤如下: 1. 打开tar.gz压缩文件 2. 创建或跳过'dragon_data'目录 3. 提取所有内容到'dragon_data' 4. 加载并渲染PLY文件 5. 显示渲染结果 6. 删除'dragon_data'目录 1.2的结果是成功渲染出Dragon模型,并通过mlab.show()展示。 第二个作业涉及地形可视化的实现。在此部分,代码导入了zipfile、numpy和mayavi库,用于读取、处理和可视化地形数据。代码从'5.1.6N36W113.hgt.zip'压缩文件中读取高度数据,将其转换为numpy数组并进行形状调整。对数据进行切片和填充,将-32768的无效值替换为数据集中最小的非负值。最后,使用mlab.figure()创建一个新的图形窗口,并用mlab.surf()函数渲染地形数据,设置了特定的颜色映射和图形大小。 2.1代码的主要流程如下: 1. 读取ZIP文件中的'HGT'文件 2. 将二进制数据转换为numpy数组 3. 调整数据数组的形状 4. 对数据进行切片和异常值处理 5. 创建新的Mayavi图形窗口 6. 渲染地形数据并设置视觉效果 2.2的结果应该是成功地以三维地形图的形式展示了指定区域的地形数据。 这两部分作业体现了Python在数据处理和科学计算方面的应用,同时展示了Mayavi库在3D图形和可视化上的强大功能。