如何修复ais cog值

8ftvxx2r  于 2021-09-08  发布在  Java
关注(0)|答案(2)|浏览(234)

我目前正在使用ais数据集,该数据集包含mmsi、timestamp、lat、lon、sog、cog等字段。在这里,cog位于地面上,支持的cog值范围为0到360度。但数据集在某些行中包含负值。我想知道是否有任何公式或规则可以将其转换为0-360。因为我正在使用python,如果有人知道如何使用python,我将不胜感激,但任何公式都可以工作。为了方便起见,我附上了一个示例数据集的屏幕截图。

zynd9foi

zynd9foi1#

要将Angular 转换为介于0和360之间,请找到除以360的模数:

df["COG_0_to_360"] = df["COG"]%360

示例:

-10%360 == 350
10%360 == 10
gjmwrych

gjmwrych2#

这是我的最终代码:

def COG_0_To_360(cog):
    cog = np.fmod(cog, 360.0)
    cog = np.where(cog < 0.0, cog + 360.0, cog)
    return np.abs(cog)

df['COG'] = COG_0_To_360(df['COG'])

例子:

values = [-170, -10, -390, -355, 250, -440]
print(COG_0_To_360(values))

[190  350  330  5  250  280]

相关问题