小编sfl*_*uck的帖子

在 Python 中创建 xyz 高度数据的曲面图

我正在尝试在 python 中创建一座山的表面图,其中我有一些 xyz 数据。最终的结果应该是这个样子的是。该文件的格式如下:

616000.0 90500.0 3096.712
616000.0 90525.0 3123.415
616000.0 90550.0 3158.902
616000.0 90575.0 3182.109
616000.0 90600.0 3192.991
616025.0 90500.0 3082.684
616025.0 90525.0 3116.597
616025.0 90550.0 3149.812
616025.0 90575.0 3177.607
616025.0 90600.0 3191.986
Run Code Online (Sandbox Code Playgroud)

等等。第一列代表x坐标,中间一列代表y坐标,以及z属于xy坐标的高度。

我使用读入数据pandas,然后将列转换为单独的x, y, z NumPy1D 数组。到目前为止,我设法创建了一个简单的 3D 散点图,其中for循环遍历每个 1D 数组的每个索引,但这需要很长时间并且看起来效率很低。

我尝试使用scipy.interpolate.griddataand plt.plot_surface,但对于z数据,我总是得到数据应该在二维数组中的错误,但我无法弄清楚为什么或如何它应该是二维数据。我假设鉴于我有 xyz 数据,应该有一种方法可以简单地从中创建一个表面。有没有简单的方法?

python geography surface topography

6
推荐指数
2
解决办法
2万
查看次数

使用xarray创建netCDF文件,定义变量数据类型

我使用 xarray 创建了一个 netCDF 文件,用于将地形高度信息、表面类型信息等输入到数值天气预报模型中。我设法创建了一个文件,但是,该模型要求不同的变量是不同的数据类型。

我的数据集 bolund_static 如下所示:

<xarray.Dataset>
Dimensions:          (x: 800, y: 200)

Coordinates:
  * y                (y) float64 1.0 3.0 5.0 7.0 9.0 ... 393.0 395.0 397.0 399.0
  * x                (x) float64 1.0 3.0 5.0 ... 1.595e+03 1.597e+03 1.599e+03
Data variables:
    zt               (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0
    vegetation_type  (y, x) float64 -127.0 -127.0 -127.0 ... -127.0 -127.0
    water_type       (y, x) float64 3.0 3.0 3.0 3.0 3.0 ... 3.0 3.0 3.0 …
Run Code Online (Sandbox Code Playgroud)

netcdf python-xarray

3
推荐指数
1
解决办法
2153
查看次数

合并三个numpy数组,保持最大值

我想合并三个 numpy 数组,例如:

a = np.array([[0,0,1],[0,1,0],[1,0,0]])
b = np.array([[1,0,0],[0,1,0],[0,0,1]])
c = np.array([[0,1,0],[0,2,0],[0,1,0]])

a = array([[0, 0, 1],
           [0, 1, 0],
           [1, 0, 0]])

b = array([[1, 0, 0],
           [0, 1, 0],
           [0, 0, 1]])

c = array([[0, 1, 0],
           [0, 2, 0],
           [0, 1, 0]])

Run Code Online (Sandbox Code Playgroud)

期望的结果是覆盖它们,但在多个元素不为 0 的情况下保持最大值,例如在中间。

array([[1, 1, 1],
       [0, 2, 0],
       [1, 1, 1]])
Run Code Online (Sandbox Code Playgroud)

我通过迭代具有多个 if 条件的所有元素来解决这个问题。有没有更紧凑、更漂亮的方法来做到这一点?

python numpy

3
推荐指数
2
解决办法
222
查看次数

标签 统计

python ×2

geography ×1

netcdf ×1

numpy ×1

python-xarray ×1

surface ×1

topography ×1