> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canadava.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ASOPs

> Explorez les procédures normalisées d'exploitation de vACA couvrant la sécurité, les listes de vérification, les SOP et les opérations de vol pour les pilotes virtuels

export const Airports = ({airports = [], title = "Canadian Airport Briefings", labels = {}}) => {
  const DEFAULT_LABELS = {
    hub: "Hub",
    regional: "Regional",
    liveLabel: "VATSIM",
    liveTitle: "VATSIM ATIS broadcasting now"
  };
  const mergedLabels = {
    ...DEFAULT_LABELS,
    ...labels
  };
  const [liveIcaos, setLiveIcaos] = useState(() => new Set());
  useEffect(() => {
    let cancelled = false;
    const fetchAtisFeed = async () => {
      try {
        const res = await fetch("https://data.vatsim.net/v3/vatsim-data.json", {
          cache: "no-store"
        });
        if (!res.ok) return;
        const json = await res.json();
        const all = Array.isArray(json.atis) ? json.atis : [];
        const live = new Set();
        for (const a of all) {
          const cs = (a.callsign || "").toUpperCase();
          const m = cs.match(/^([A-Z]{4})(?:_[AD])?_ATIS$/);
          if (m) live.add(m[1]);
        }
        if (!cancelled) setLiveIcaos(live);
      } catch (_) {}
    };
    fetchAtisFeed();
    const interval = setInterval(fetchAtisFeed, 60 * 1000);
    return () => {
      cancelled = true;
      clearInterval(interval);
    };
  }, []);
  const typeKey = type => {
    const t = (type || "").toLowerCase();
    if (t.includes("hub") || t.includes("plaque") || t.includes("focus")) return "hub";
    if (t.includes("regional") || t.includes("régional") || t.includes("capital")) return "regional";
    return "default";
  };
  const typeLabel = k => {
    if (k === "hub") return mergedLabels.hub;
    if (k === "regional") return mergedLabels.regional;
    return "";
  };
  const TypeIcon = ({k}) => {
    const svgProps = {
      width: 14,
      height: 14,
      viewBox: "0 0 24 24",
      fill: "none",
      stroke: "currentColor",
      strokeWidth: 2,
      strokeLinecap: "round",
      strokeLinejoin: "round",
      "aria-hidden": true
    };
    switch (k) {
      case "hub":
        return <svg {...svgProps}>
            <path d="M16 10h4a2 2 0 0 1 0 4h-4l-4 7h-3l2-7H6l-2 2H1l2-4-2-4h3l2 2h5l-2-7h3z" />
          </svg>;
      case "regional":
        return <svg {...svgProps}>
            <path d="M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z" />
          </svg>;
      default:
        return <svg {...svgProps}>
            <rect x="3" y="3" width="18" height="18" rx="2" />
          </svg>;
    }
  };
  const ChevronIcon = () => <svg width={16} height={16} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2} strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
      <polyline points="9 18 15 12 9 6" />
    </svg>;
  return <div className="kb-airports">
      <div className="kb-airports-header">
        <span className="kb-airports-eyebrow">{title}</span>
      </div>
      <div className="kb-airports-list">
        {airports.map((airport, i) => {
    const k = typeKey(airport.type);
    const sublabel = typeLabel(k);
    const isLive = airport.icao && liveIcaos.has(airport.icao.toUpperCase());
    return <a key={`a-${i}`} href={airport.href} className="kb-airports-row" data-type={k}>
              <span className="kb-airports-icon" aria-hidden="true">
                <TypeIcon k={k} />
              </span>
              <div className="kb-airports-text">
                <div className="kb-airports-name">
                  <span className="kb-airports-name-label">{airport.name}</span>
                  {airport.icao && <span className="kb-airports-icao">{airport.icao}</span>}
                  {isLive && <span className="kb-airports-live" title={mergedLabels.liveTitle}>
                      <span className="kb-airports-live-dot" aria-hidden="true" />
                      <span className="kb-airports-live-label">
                        {mergedLabels.liveLabel}
                      </span>
                    </span>}
                </div>
                {airport.description && <div className="kb-airports-description">
                    {airport.description}
                  </div>}
              </div>
              <div className="kb-airports-type-col">
                {sublabel && <span className="kb-airports-sublabel">{sublabel}</span>}
              </div>
              <span className="kb-airports-chevron" aria-hidden="true">
                <ChevronIcon />
              </span>
            </a>;
  })}
      </div>
    </div>;
};

<img className="block dark:hidden" src="https://mintcdn.com/virtualaircanada/XW0ND9ztGm1uFOMi/images/placeholder-light.png?fit=max&auto=format&n=XW0ND9ztGm1uFOMi&q=85&s=ee08ba24e58beaf1e5047269c5797847" alt="ASOPs vACA clair" width="2064" height="1104" data-path="images/placeholder-light.png" />

<img className="hidden dark:block" src="https://mintcdn.com/virtualaircanada/XW0ND9ztGm1uFOMi/images/placeholder-dark.png?fit=max&auto=format&n=XW0ND9ztGm1uFOMi&q=85&s=d1f4fccf56486c4188b97a9d609f23d4" alt="ASOPs vACA sombre" width="2064" height="1104" data-path="images/placeholder-dark.png" />

## Virtual Air Canada Airline

Procédures normalisées d'exploitation (ASOPs)

<Info>Pour la simulation de vol uniquement - Ne **PAS** utiliser pour le vol réel</Info>

## Liens rapides

<CardGroup cols={2}>
  <Card title="Guide de démarrage" icon="flag-checkered" href="/fr/get-started">
    Informations essentielles pour les nouveaux pilotes
  </Card>

  <Card title="Essentiels du pilote" icon="book-atlas" href="/fr/essentials">
    Connaissances de base pour tous les pilotes vACA
  </Card>
</CardGroup>

## Table des matières

<CardGroup cols={2}>
  <Card title="Aperçu général" icon="book-open" href="/fr/aops/overview/executive-overview">
    Objectifs clés et introduction aux ASOPs de Virtual Air Canada Airline
  </Card>

  <Card title="Gouvernance et responsabilités" icon="scale-balanced" href="/fr/aops/overview/governance">
    Base réglementaire, contrôle opérationnel et hiérarchie des manuels
  </Card>

  <Card title="Culture de sécurité et CRM" icon="shield" href="/fr/aops/overview/safety-culture">
    Gestion des ressources de l'équipage et modèle de gestion des menaces et des erreurs
  </Card>

  <Card title="SOP du poste de pilotage" icon="gauge-high" href="/fr/aops/standard-procedures/flight-deck-sops">
    Procédures normalisées pour les opérations de vol normales
  </Card>

  <Card title="Procédures anormales et d'urgence" icon="triangle-exclamation" href="/fr/aops/standard-procedures/emergency-procedures">
    Procédures pour la gestion des situations anormales et des urgences
  </Card>

  <Card title="Opérations en cabine" icon="person-seat" href="/fr/aops/standard-procedures/cabin-operations">
    Procédures et protocoles de sécurité en cabine
  </Card>

  <Card title="Opérations au sol et sécurité sur l'aire de trafic" icon="plane-arrival" href="/fr/aops/standard-procedures/ground-handling">
    Procédures pour des opérations au sol sécuritaires
  </Card>

  <Card title="Performance et masse/centrage" icon="weight-scale" href="/fr/aops/standard-procedures/performance">
    Calculs de performance et masse et centrage de l'aéronef
  </Card>

  <Card title="Hiver et conditions météo défavorables" icon="snowflake" href="/fr/aops/standard-procedures/winter-operations">
    Opérations en conditions hivernales et météo défavorable
  </Card>

  <Card title="Sûreté et marchandises dangereuses" icon="lock" href="/fr/aops/additional-resources/security">
    Protocoles de sûreté et gestion des marchandises dangereuses
  </Card>
</CardGroup>

## Aperçus des aéroports canadiens

<Airports
  title="Aperçus des aéroports canadiens"
  labels={{ hub: "Plaque tournante", regional: "Régional", liveTitle: "ATIS VATSIM en cours de diffusion" }}
  airports={[
{ type: "hub", icao: "CYYZ", name: "Toronto Pearson", href: "/fr/aops/airports/toronto-pearson", description: "Aéroport le plus achalandé du Canada, cinq pistes" },
{ type: "hub", icao: "CYUL", name: "Montréal-Trudeau", href: "/fr/aops/airports/montreal-trudeau", description: "ATC bilingue, deux pistes parallèles" },
{ type: "hub", icao: "CYVR", name: "Vancouver", href: "/fr/aops/airports/vancouver-international", description: "Sur l'île Sea Island, brouillard côtier et relief" },
{ type: "hub", icao: "CYYC", name: "Calgary", href: "/fr/aops/airports/calgary-international", description: "Prairie en altitude, vents chinook" },
{ type: "regional", icao: "CYOW", name: "Ottawa", href: "/fr/aops/airports/ottawa", description: "Capitale nationale, ATC bilingue" },
{ type: "regional", icao: "CYEG", name: "Edmonton", href: "/fr/aops/airports/edmonton", description: "Grand froid, pistes sécantes" },
{ type: "regional", icao: "CYHZ", name: "Halifax", href: "/fr/aops/airports/halifax", description: "Porte transatlantique gros-porteurs, brouillard côtier" }
]}
/>

## Ressources supplémentaires

<CardGroup cols={2}>
  <Card title="Gestion de la fatigue" icon="bed" href="/fr/aops/additional-resources/fatigue-management">
    Limitations de service de l'équipage et gestion du risque de fatigue
  </Card>

  <Card title="Formation et maintien des compétences" icon="graduation-cap" href="/fr/aops/additional-resources/training">
    Exigences de formation et normes de maintien des compétences
  </Card>

  <Card title="Surveillance des données et rapports" icon="chart-line" href="/fr/aops/additional-resources/data-monitoring">
    Surveillance des données de vol et procédures de rapport
  </Card>

  <Card title="Politique environnementale" icon="leaf" href="/fr/aops/additional-resources/environmental-policy">
    Atténuation du bruit et considérations environnementales
  </Card>

  <Card title="Glossaire et acronymes" icon="book" href="/fr/aops/additional-resources/glossary">
    Liste complète des termes et acronymes de l'aviation
  </Card>

  <Card title="Historique des révisions" icon="clock-rotate-left" href="/fr/aops/additional-resources/revision-history">
    Historique des versions et modifications du document
  </Card>
</CardGroup>
