mirror of
https://github.com/PlaneQuery/OpenAirframes.git
synced 2026-04-23 19:46:09 +02:00
921cbefb6e
git-subtree-dir: af-klm-fleet git-subtree-mainline:85a3db4dd0git-subtree-split:b1dd01c27e
230 lines
5.3 KiB
Markdown
Executable File
230 lines
5.3 KiB
Markdown
Executable File
# ✈️ AF-KLM Fleet Catalog
|
|
|
|
Open source, community-maintained catalog of **Air France** and **KLM** fleets with real-time tracking of aircraft properties, WiFi connectivity, and historical changes.
|
|
|
|
---
|
|
|
|
## 📊 Fleet Overview
|
|
|
|
| Airline | Total | 📶 WiFi | 🛜 High-Speed | % Starlink |
|
|
|---------|-------|---------|---------------|------------|
|
|
| 🇫🇷 Air France | 220 | 220 (100%) | 41 | **19%** |
|
|
| 🇳🇱 KLM | 117 | 94 (80%) | 0 | **0%** |
|
|
| **Combined** | **337** | **314 (93%)** | **41** | **12%** |
|
|
|
|
|
|
> 🛜 **High-Speed** = Starlink satellite internet (50+ Mbps)
|
|
> 📶 **WiFi** = Any WiFi connectivity (low-speed or high-speed)
|
|
|
|
*Last updated: 2026-02-04*
|
|
|
|
---
|
|
|
|
## 🛫 Fleet Breakdown
|
|
|
|
### 🇫🇷 Air France (AF)
|
|
|
|
| Aircraft Type | Count |
|
|
|---------------|-------|
|
|
| A220-300 PASSENGER | 46 |
|
|
| 777-300ER | 43 |
|
|
| A350-900 | 41 |
|
|
| A320 | 29 |
|
|
| 777-200-200ER | 18 |
|
|
| A321 | 12 |
|
|
| 787-9 | 10 |
|
|
| A330-200 | 8 |
|
|
| A320 (SHARKLETS) | 6 |
|
|
| A318 | 4 |
|
|
| A319 | 3 |
|
|
| **Total** | **220** |
|
|
|
|
### 🇳🇱 KLM (KL)
|
|
|
|
| Aircraft Type | Count |
|
|
|---------------|-------|
|
|
| 737-800 | 29 |
|
|
| 777-300ER | 15 |
|
|
| 787-10 | 15 |
|
|
| 777-200-200ER | 14 |
|
|
| A321NEO | 12 |
|
|
| 787-9 | 12 |
|
|
| A330-200 | 5 |
|
|
| A330-300 | 5 |
|
|
| 737-900 | 5 |
|
|
| 737-700 | 5 |
|
|
| **Total** | **117** |
|
|
|
|
|
|
|
|
---
|
|
|
|
## 📋 Detailed Configuration
|
|
|
|
### 🇫🇷 Air France — Detailed Configuration
|
|
|
|
| Aircraft | Config | Seats | Count | 🛜 Starlink |
|
|
|----------|--------|-------|-------|-------------|
|
|
| 777-200-200ER | `J028W032Y268` | 328 | 18 | - |
|
|
| 777-300ER | `J014W028Y430` | 472 | 12 | - |
|
|
| 777-300ER | `J048W048Y273` | 369 | 8 | - |
|
|
| 777-300ER | `P004J058W028Y206` | 296 | 14 | 1/14 (7%) |
|
|
| 777-300ER | `P004J060W044Y204` | 312 | 9 | 1/9 (11%) |
|
|
| 787-9 | `J030W021Y228` | 279 | 10 | - |
|
|
| A220-300 PASSENGER | `Y148` | 148 | 46 | 12/46 (26%) |
|
|
| A318 | `Y131` | 131 | 4 | - |
|
|
| A319 | `C072Y071` | 143 | 2 | - |
|
|
| A319 | `Y142` | 142 | 1 | - |
|
|
| A320 | `C108Y066` | 174 | 22 | 2/22 (9%) |
|
|
| A320 | `Y178` | 178 | 7 | - |
|
|
| A320 (SHARKLETS) | `C108Y066` | 174 | 6 | - |
|
|
| A321 | `C082Y130` | 212 | 8 | - |
|
|
| A321 | `Y212` | 212 | 4 | - |
|
|
| A330-200 | `J036W021Y167` | 224 | 8 | 1/8 (13%) |
|
|
| A350-900 | `J034W024Y266` | 324 | 20 | 10/20 (50%) |
|
|
| A350-900 | `J048W032Y210` | 290 | 1 | 1/1 (100%) |
|
|
| A350-900 | `J048W032Y212` | 292 | 20 | 13/20 (65%) |
|
|
|
|
### 🇳🇱 KLM — Detailed Configuration
|
|
|
|
| Aircraft | Config | Seats | Count | 🛜 Starlink |
|
|
|----------|--------|-------|-------|-------------|
|
|
| 737-700 | `C036M106` | 142 | 5 | - |
|
|
| 737-800 | `C036M150` | 186 | 29 | - |
|
|
| 737-900 | `C056M132` | 188 | 5 | - |
|
|
| 777-200-200ER | `C035W024M229` | 288 | 12 | - |
|
|
| 777-200-200ER | `C035W032M219` | 286 | 2 | - |
|
|
| 777-300ER | `C035W024M322` | 381 | 15 | - |
|
|
| 787-10 | `C038W028M252` | 318 | 15 | - |
|
|
| 787-9 | `C030W021M224` | 275 | 12 | - |
|
|
| A321NEO | `C030M197` | 227 | 12 | - |
|
|
| A330-200 | `C018M246` | 264 | 5 | - |
|
|
| A330-300 | `C030M262` | 292 | 5 | - |
|
|
|
|
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Update the Catalog
|
|
|
|
```bash
|
|
# Set your API key
|
|
export AFKLM_API_KEY=your_api_key_here
|
|
|
|
# Update Air France
|
|
node fleet-update.js --airline AF
|
|
|
|
# Update KLM
|
|
node fleet-update.js --airline KL
|
|
|
|
# Preview changes without saving
|
|
node fleet-update.js --airline KL --dry-run
|
|
|
|
# Regenerate this README with latest stats
|
|
node generate-readme.js
|
|
```
|
|
|
|
### Using the Data
|
|
|
|
```javascript
|
|
// Load Air France fleet
|
|
const response = await fetch('https://raw.githubusercontent.com/.../airlines/AF.json');
|
|
const fleet = await response.json();
|
|
|
|
// Find all Starlink aircraft
|
|
const starlink = fleet.aircraft.filter(a => a.connectivity.wifi === 'high-speed');
|
|
console.log(`${starlink.length} aircraft with Starlink`);
|
|
|
|
// Get aircraft by type
|
|
const a350s = fleet.aircraft.filter(a => a.aircraft_type.full_name?.includes('A350'));
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 Data Structure
|
|
|
|
```
|
|
af-klm/
|
|
├── airlines/
|
|
│ ├── AF.json # Air France fleet
|
|
│ └── KL.json # KLM fleet
|
|
├── schema/
|
|
│ └── aircraft.schema.json
|
|
├── fleet-update.js # Update script
|
|
└── generate-readme.js # This stats generator
|
|
```
|
|
|
|
### Aircraft Schema
|
|
|
|
```json
|
|
{
|
|
"registration": "F-HTYA",
|
|
"aircraft_type": {
|
|
"iata_code": "359",
|
|
"manufacturer": "Airbus",
|
|
"model": "A350",
|
|
"full_name": "AIRBUS A350-900"
|
|
},
|
|
"cabin": {
|
|
"physical_configuration": "J034W024Y266",
|
|
"total_seats": 324,
|
|
"classes": { "business": 34, "premium_economy": 24, "economy": 266 }
|
|
},
|
|
"connectivity": {
|
|
"wifi": "high-speed",
|
|
"wifi_provider": "Starlink",
|
|
"satellite": true
|
|
},
|
|
"tracking": {
|
|
"first_seen": "2025-01-15",
|
|
"last_seen": "2026-02-04",
|
|
"total_flights": 1250
|
|
},
|
|
"history": [
|
|
{
|
|
"timestamp": "2026-01-20",
|
|
"property": "connectivity.wifi",
|
|
"old_value": "low-speed",
|
|
"new_value": "high-speed",
|
|
"source": "airline_api"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🤝 Contributing
|
|
|
|
### Daily Updates
|
|
|
|
Community members are encouraged to run the update script daily:
|
|
|
|
1. Fork this repo
|
|
2. Set your `AFKLM_API_KEY`
|
|
3. Run `node fleet-update.js --airline AF` and `--airline KL`
|
|
4. Run `node generate-readme.js` to update stats
|
|
5. Submit a PR
|
|
|
|
### API Key
|
|
|
|
Get a free API key at [developer.airfranceklm.com](https://developer.airfranceklm.com)
|
|
|
|
---
|
|
|
|
## 📋 Schema Version
|
|
|
|
Current: **1.0.0**
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
Under MIT License
|
|
|
|
---
|
|
|
|
Made with ✈️ by the aviation community
|