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