1

我目前正在使用 AIS 数据集,其中包含字段 MMSI、时间戳、LAT、LON、SOG、COG 等。在这里,COG 是在地面上的路线,支持的 COG 值范围为 0 到 360 度。但是数据集在某些行中包含负值。我想知道是否有任何公式或规则可以将其转换为 0-360。由于我正在使用 python,如果有人知道如何在 Python 中进行操作,将不胜感激,但任何公式都可以工作。为方便起见,我附上了示例数据集的屏幕截图。样本 AIS 数据集

4

2 回答 2

1

要将角度转换为 0 到 360 之间,求除以 360 的模数:

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

例子:

-10%360 == 350
10%360 == 10
于 2021-07-09T15:10:28.417 回答
0

这是我的最终代码:

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]
于 2021-07-09T16:44:54.020 回答