如何平滑Plotly 3d曲面打印?

2024-04-19 18:53:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用oceansdb模块和Plotly用Python生成地形图。然而,这张地图显示了对地形的粗略解释,我想知道如何在两点之间平滑地图?你知道吗

这是我尝试过的代码:

import plotly.graph_objects as go
import oceansdb
import numpy as np 
from scipy.interpolate import griddata

Xa = np.linspace(29.005,29.405,200)
Ya = np.linspace(-93.6683,-93.2683,200)

db = oceansdb.ETOPO()
dcont = db['topography'].extract(lat=Xa, lon=Ya)
depth = dcont['height']

fig = go.Figure(data=[go.Surface(z=depth, x=Xa, y=Ya)])
fig.show()

我试过scipy.interpolate.griddata平滑情节,但情节没有任何变化。你知道吗


Tags: importgodbasnp地图scipydepth
1条回答
网友
1楼 · 发布于 2024-04-19 18:53:40

我不认为插值是你想要的,因为如果你在噪声点内插值,它仍然是噪声的。scipy.ndimage库有一些很好的平滑算法(我展示的是一个简单的高斯平滑)。你知道吗

import plotly.graph_objects as go
import oceansdb
import numpy as np 
import scipy.ndimage

Xa = np.linspace(29.005,29.405,200)
Ya = np.linspace(-93.6683,-93.2683,200)

db = oceansdb.ETOPO()
dcont = db['topography'].extract(lat=Xa, lon=Ya)
depth = dcont['height']

sigma = [4, 4]
print(sigma)
depthSmooth = scipy.ndimage.filters.gaussian_filter(depth, sigma)

fig = go.Figure(data=[go.Surface(z=depthSmooth, x=Xa, y=Ya)])
fig.show()

您可以更改sigma值来更改平滑程度(越大的sigma意味着平滑程度越高,列表为[sigmax, sigmay])。你知道吗

相关问题 更多 >