【发布时间】:2019-10-22 16:02:49
【问题描述】:
我正在尝试生成 x、y、z 坐标,以创建理想化的景观以用于 GIS 软件和建模。我是 python 新手,它肯定会显示出来。
为此,我想以规则的网格间隔创建一个由 x、y、z 点组成的网格。 x 表示纬度,y 表示经度,z 表示海拔。
我可以将风景分成几个部分,然后可以将它们缝合在一起:
- 等高的矩形 (z=constant)
- 矩形,其中 z 取决于 x 或 y。例如斜率,其中 z 随着 x 的增加而增加。
我已经使用了meshgrid,它创建了一系列数组。我只需要一起提取每个相应的数组位置,以便导出 x、y、z 数据。
我最终会用一个更大的数据集来做这个,但下面的代码是 16 点。
试运行
import numpy as np
import matplotlib.pyplot as plt
创建以 30 为间距并从 x=313000 开始的坐标,y=6220000,z 恒定为 15
sp=(30)
x=np.arange(313000, 313120, sp)
y=np.arange(6220000,6220120, sp)
z=np.repeat(15,4)
x_mesh, y_mesh, z_mesh=np.meshgrid(x,y,z)
显示网格散点图
plt.scatter(x_mesh, y_mesh, z_mesh)
plt.show
从网格创建坐标
coords=???
print(coords)
将坐标导出到 csv 文件
import csv
with open('coords.csv','w') as f:
out = csv.writer(f, delimiter=',')
out.writerows(zip(*coords))
f.close()
【问题讨论】:
-
当 z 依赖于 x 但 'coords=[]' 部分返回错误时,我也尝试制作一段高程:TypeError: zip 参数 #1 必须支持迭代。我最终发布了第二个问题:link