python - 在 arcsin [RuntimeWarning] 中遇到无效值
问题描述
我有一个大数据大小的文件,我想用给定的纬度和经度值计算距离。但是,我仅在某些输入文件中遇到以下问题。
RuntimeWarning: invalid value encountered in arcsin
return earth_radius *2 * np.arcsin(np.sqrt(a))
如果我将以下代码行添加到我的程序中,则可以解决该问题。但是,我不希望删除Drive Mode中包含 null 的数据。我能做些什么来克服这样的问题?
distdura = distdura.replace(0, np.nan)
distdura = distdura[distdura['Drive Mode'].notnull()]
如下显示我的程序。
distdura = pd.read_csv(folderdir)
distdura = distdura.sort_values(by = ['AV_ID','timestamp'])
distdura['dist'] = np.concatenate(distdura.groupby(["AV_ID"]).apply(lambda x:haversine(x['Latitude'],x['Longitude'],x['Latitude'].shift(),x['Longitude'].shift())).values)
distdura = distdura[distdura["dist"] < 1]
distdura = distdura[distdura["dist"] > -0.99]
以下是我用于上述代码的 hasrsine 函数。
def haversine(lat1, lon1, lat2, lon2, to_radians = True, earth_radius = 6371):
if to_radians:
lat1,lon1,lat2,lon2 = np.radians([lat1,lon1,lat2,lon2])
a = np.sin((lat2-lat1)/2.0)**2 + np.cos(lat1) * np.cos(lat2) * np.sin((lon2-lon1)/2.0)**2
return earth_radius *2 * np.arcsin(np.sqrt(a))
解决方案
推荐阅读
- reactjs - _this2.props.moveShelf 不是函数
- c# - StaticModel 上没有图像纹理
- javascript - return a promise of an ongoing asynchronous call
- dashboard - 两个数据点之间的 Grafana 差异
- rest - 使用相同的 URI 调用两个不同的 rest 方法
- java - Optimal orchestration of list of network calls and processing tasks in Java
- r - 组合多文件并为每个文件添加唯一 ID
- c - Some questions about struct namespace in C
- javascript - Asp.net/Openlayers4:如何去模糊画布图像?
- linux - LINUX:如何输出 SQL 脚本中使用的表