Skip to content

Instantly share code, notes, and snippets.

@njouanin
Last active March 9, 2024 18:22
Show Gist options
  • Save njouanin/c0ef667af8062a2fa64c98df325fbab7 to your computer and use it in GitHub Desktop.
Save njouanin/c0ef667af8062a2fa64c98df325fbab7 to your computer and use it in GitHub Desktop.
Test backend trawlWatch
from typing import Union
from fastapi import FastAPI
from bloom.container import UseCases
use_cases = UseCases()
app = FastAPI()
def pos_to_dict(row):
return {"timestamp": row["timestamp"],
"speed": row["speed"],
"course": row["course"],
"heading": row["heading"],
"lat": row["lat"],
"lon": row["lon"]}
@app.get("/trajectories")
def vessel_trajectories():
vessel_repo = use_cases.vessel_repository()
vessels = vessel_repo.load_all_vessel_metadata()
resp = []
for v in vessels:
vt = vessel_repo.get_vessel_trajectory(v.get_mmsi())
positions = vt.positions
if not positions.empty:
resp_positions = positions.apply(pos_to_dict, axis=1)
resp.append({"mssi":v.get_mmsi(), "positions": list(resp_positions)})
return resp
@app.get("/trajectories/{mssi}")
def vessel_trajectories(mssi: str):
vessel_repo = use_cases.vessel_repository()
vt = vessel_repo.get_vessel_trajectory("246749000") #v.get_mmsi())
positions = vt.positions
resp_positions = positions.apply(pos_to_dict, axis=1)
return {"mssi":mssi, "positions": list(resp_positions)}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment