gpt4 book ai didi

python - 绘制故障线而不将每条线连接在一起

转载 作者:行者123 更新时间:2023-12-02 09:00:36 25 4
gpt4 key购买 nike

我有两个纬度和经度列表,代表构成地质断层的一堆点。我正在尝试制作一张 map (通过 basemap )将这些断层显示为线条,但是,使用 pyplot.plot 函数,这些点将连接相距数英里的断层,而我不希望这样。

plot showing faults along a map connected by lines到目前为止,我所做的只是使点变得相当大,这样它们看起来就像是一堆线,但是当我放大时,它显然是点而不是线。

plot showing fault lines as many points, making it look like lines

了解构成单个断层的这些点相距 50 米也可能很有用。最初,我有一个代码,使用大圆工具确定这些点之间的距离,并创建一个新的距离列表:

f_distance = []
c = 0
for i,j in zip(fault_lat,fault_lon):
while c < (len(fault_lon)-1):
location1 = (fault_lat[c],fault_lon[c])
location2 = (fault_lat[c+1],fault_lon[c+1])
distance = great_circle(location1,location2).meters
f_distance.append(distance)
c+=1

然后,如果该距离小于或等于 50,它将绘制它们并(希望)绘制它们之间的线,否则它将跳过它。

c = 0
for i,j,k in zip(map_q_fault_lon,map_q_fault_lat,q_fault_distance):
if k <= 50:
map.plot(i,j,linestyle = '-',linewidth = 1.00,color = 'black')
c+=1

但遗憾的是它只是给了我一个空白屏幕。无论如何,我可以重新设计它,以便它能够满足我的要求吗?

最佳答案

你已经非常接近了,你只需要将当前点和上一个下一个点传递给plot( )。如果您将过滤循环更改为更像

for ii in range(len(map_q_fault_lon)):
if q_fault_distance[ii] <= 50 and ii > 0:
map.plot(map_q_fault_lon[ii-1:ii+1], map_q_fault_lat[ii-1:ii+1], 'k-', lw=1.0)

您应该会看到所需的过滤。以下是此方法的结果以及一些生成的数据:

enter image description here

关于python - 绘制故障线而不将每条线连接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com