我试图仅在大陆上绘制数据。我之前问了一个问题,我得到了答案here。 现在当我在代码中实现它时,程序将运行而不会出错。
然而,它永远运行。当我使用ctrl + C
强制停止它时,它会追溯到"if not (map.is_land(X[i], Y[i])):"
,所以我觉得这里有些不对劲。但我无法弄清楚。
以下是涉及挑选非大陆数据并将其删除的代码部分:
X, Y = map(Lon,Lat)
ocean = []
for i in range(len(X)):
if not (map.is_land(X[i], Y[i])):
ocean.append(i)
X_new = np.delete(X, ocean)
Y_new = np.delete(Y, ocean)
HDO_new = np.delete(HDO, ocean)
答案 0 :(得分:1)
由于你使用for
循环,程序应该停止,唯一的问题是X
有多大。我只能提出两点建议:
1)在进入for cicle之前尝试打印len(X)
的值,看看有多大
2)尝试使用xrange
而不是range
,如果你使用python 2.x
请记住,使用包含数十万元素的列表似乎很慢。 如果可以的话,最终尝试使用较小的数据样本