---
jupytext:
  text_representation:
    extension: .md
    format_name: myst
    format_version: 0.12
    jupytext_version: 1.7.1
kernelspec:
  display_name: Python 3
  language: python
  name: python3
platform: ATR
flight_id: ATR-20240903a
takeoff: "2024-09-03 15:00:00Z"
landing: "2024-09-03 18:30:00Z"
departure_airport: GVAC
arrival_airport: GVAC
crew:
  - name: G Seurat
    job: Pilot
  - name: D Duchanoy
    job: Pilot
  - name: M André
    job: Mechanics
  - name: C Lainard
    job: Expé Principal
  - name: G Cayez
    job: Expé 
  - name: Louis Jaffeux
    job: PI
  - name: S Bounissou
    job: LNG
  - name: L Forges
    job: aWALI
  - name: P Coutris
    job: Microphys 1
  - name: A Schwarzenboeck
    job: Microphys 2
  - name: E Francois
    job: RASTA
  - name: F Couvreux
    job: BASTA
categories: [c_atr]
orphan: true
---

{logo}`MAESTRO`

# Flight plan - {front}`flight_id`

```{badges}
```

## Flight plan
* The flight is planned to take off at {front}`takeoff` UTC and land at {front}`landing` UTC.
* Flight track has coordination with HALO.
* Two options possible
    * 1: Standard MAESTRO flight pattern from WP1 to WP2 with takeoff at 15:00 UTC
    * 2: 'Millefeuille' flight pattern (lower-troposphere only, multiple levels) to better sample shallow convection from WP1 to WP3 with takeoff at 18 UTC.
* Slight change in ATR circle location has been requested

```{code-cell} python3
:tags: [hide-input]
from orcestra.flightplan import sal, bco, LatLon, IntoCircle, path_preview, plot_cwv
from datetime import datetime
import intake

cat = intake.open_catalog("https://tcodata.mpimet.mpg.de/internal.yaml")

date_time = datetime(2024, 9, 2, 12, 0, 0)
date_time_str = date_time.strftime('%Y-%m-%d')
flight_time = datetime(2024, 9, 3, 18, 0, 0)

radius = 70e3 # units: km
circle_atr = LatLon(lat=14.5, lon=-22.5, label="circle_atr")
halo_circle = IntoCircle(circle_atr, radius, 360)

airport = sal
wp1 = LatLon(lat=16.204, lon=-22.500, label='wp1')
wp2 = LatLon(lat=13.386, lon=-22.500, label='wp2')
wp3 = LatLon(lat=14.2, lon=-22.500, label='wp3')


path = [airport, wp1, wp2, wp3, wp1, airport]

ds = cat.HIFS(refdate=date_time_str, reftime=date_time.hour).to_dask()
cwv_flight_time = ds["tcwv"].sel(time=flight_time, method = "nearest")

ax = path_preview(path)
path_preview([circle_atr.course(0, radius), halo_circle], ax=ax)  # HACK: Add HALO circle
ax.scatter(circle_atr.lon, circle_atr.lat, color="tab:orange")
ax.text(circle_atr.lon+0.05, circle_atr.lat, color="tab:orange", s='HALO_Circle', bbox=dict(facecolor='white',edgecolor='white', boxstyle='round,pad=0.1'))

ax.set_extent([-24, -20, 13, 17])

plot_cwv(cwv_flight_time)


```
<!-- ![Flight Levels](./LEVELS-ATR-20240903a.jpg) -->

* SAFIRE Flight Plan submitted to Air Traffic Control (ATC)

![Page 1](./SAFIRE-ATR-20240903a.jpg) -->

```{code-cell} python3
:tags: [hide-input]
import pandas as pd
from dataclasses import asdict

pd.DataFrame.from_records(map(asdict, path+[circle_atr])).set_index("label")
```

## Crew

```{crew}
```