EY231 - May 23, 2023: Etihad Airways (ETD9MN) from Abu Dhabi to Islamabad (2023)

May 23, 2023
This is not the most recent flight. Click here for the EY231 flight plan.

perched
The flight landed. It arrived1 days ago (4h 51min delayed).
Abu Dhabi
OUCH / OWN

7h 12m
2.035 km / 1.256 mi

Islamabad
ISB / DESCRIPTION

TERMINAL:3
GATE:38

Match 19:53UTC+04
+53minutes

Arrival 03:06PKT
+291minutes
" : ""}EY231 - May 23, 2023: Etihad Airways (ETD9MN) from Abu Dhabi to Islamabad (4)`; if (activeHex on marker) { liveMap.removeLayer(marker[activeHex]); } const m = L.marker(activeMarker.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: activeHex, opacity: lp[3] ? 0.9 : 0,6 }).addTo(liveMap).on('click', onPlaneClick); marker[activeHex] = m; document.getElementById(`mi-${activeHex}`).style.transform = `rotate(${lp[2]}deg)`; active marker = null; } activeHex = null; liveTrack = null; liveMarker = null; estTrack = null; document.getElementById('liveMapContainer').style.display = 'none';} /** * Recalculates the new position of a marker based on the elapsed time and its previous state. * @param {Object} liveMap */async function updateCalc(liveMap) { if (recalcInProg || liveMap.getZoom() < 6) { return; } recalcInProg = true; for (const [key, prevPos] of Object.entries(lastPos)) { if (key at marker && prevPos[3] >= 50 && !prevPos[6]) { const speed = prevPos[3] || 0; const range = Date.now() - prevPos[4]; const dist = speed * range / 1000 / 3600 * 1852; if (dist < 50) { continue; } // calculate the next position const lat1 = toRad(prevPos[0]); const lon1 = toRad(prevPos[1]); const brng = toRad(prevPos[2]); const lat2 = Math.asin(sin(lat1) * cos(dist / r_earth) + cos(lat1) * sin(dist / r_earth) * cos(brng)); const lon2 = lon1 + Math.atan2(sin(brng) * sin(dist / r_earth) * cos(lat1), cos(dist / r_earth) - sin(lat1) * sin(lat2)); const lat2d = toDeg(lat2); const lon2d = toDeg(lon2); lastPos[key] = [lat2d, lon2d, prevPos[2], prevPos[3], Date.now(), prevPos[5], prevPos[6], prevPos[7]]; marker[key].setLatLng([lat2d, lon2d]); if (liveTrack && activeMarker == key) { const l = liveTrack.getLatLngs(); l.push(L.latLng(lat2d, lon2d, prevPos[5])); try { liveTrack.setLatLngs(l); } catch (e) { /* Catch the error silently. */ } if (activeDest) { const tn = L.latLng(lat2d, lon2d); liveMap.removeLayer(estTrack); const arcOptions = { color: "lightgray", noClip: true, vertices: 100 }; estTrack = t.lng < tn.lng ? L.Polyline.Arc(activeDest, tn, arcOptions) : L.Polyline.Arc(tn, activeDest, arcOptions); estTrack.addTo(liveMap); tracks.push(estTrack); } } } } recalcInProg = false;}/** * Fetches data from a specific URL, handles errors, and returns the JSON response. * @param {string} url */async function getData(url) { url = `${url}?${Math.floor(Date.now() / 5000)}`; const response = await fetch(url, { headers: { Authorization: auth_token } }); if (!response.ok) { handleFetchErrors(response); return null; } if (sf === "") { document.getElementById("liveUpdErr").style.display = 'none'; document.getElementById("liveUpdNotFound").style.display = 'none'; } return response.json();}/** * Handle errors during the fetch call * @param {Object} response */function handleFetchErrors(response) { if (sf !== "") return; const liveUpdErr = document.getElementById("liveUpdErr"); const liveUpdNotFound = document.getElementById("liveUpdNotFound"); const liveMapContainer = document.getElementById("liveMapContainer"); if (response.status !== 404) { refreshsActive = false; liveUpdNotFound.style.display = 'none'; liveUpdErr.style.display = 'block'; liveMapContainer.style.display = 'none'; document.getElementById("liveUpdErrCode").innerText = response.status; } else { liveUpdErr.style.display = 'none'; liveMapContainer.style.display = 'none'; liveUpdNotFound.style.display = 'block'; }}async function updateMap(liveMap, fromZoom, clickHex) { if (documentIsHidden()) return; const bounds = liveMap.getBounds(); const url = constructURL(bounds, liveMap.getZoom()); if (updateInProgressOrTooSoon(fromZoom)) return; recalcInProg = true; lastUpdate = Date.now(); updateInProg = true; const ld = await getData(url); if (!ld) { updateInProg = false; turn back; } processMapData(liveMap, ld, fromZoom, clickHex);}function documentIsHidden() { return typeof document.hidden !== "undefined" && document.hidden;}function constructURL(bounds, zoom) { const widthText = screenWidth > 1000 ? "large small"; return `/en/live/map/${Math.floor(bounds['_northEast'].lat * 1e5)}/${Math.floor(bounds['_southWest'].lat * 1e5)}/` + ` ${Math.floor(bounds['_southWest'].lng * 1e5)}/${Math.floor(bounds['_northEast'].lng * 1e5)}/${zoom}/${widthText}`;} function updateInProgressOrTooSoon(fromZoom) { if (updateInProg) { return true; } const freq = fromZoom ? minZoomFreq : minRefreshFreq; return Date.now() - lastUpdate < freq;}function processMapData(liveMap, ld, fromZoom, clickHex) { newMarker = {}; arcs = []; curArc = []; arcCol = ""; previous coord = []; document.getElementById("nr_flights_disp").innerText = ld["f"]; document.getElementById("nr_flights_tot").innerText = ld["t"]; const st = screenWidth / ld["f"] > 5; const redraw = st !== hadTitles; for (const entry in ld["m"]) { const e = ld["m"][entr]; handleMarker(liveMap, e, redraw, st); } hadTitles = st; removeUnusedMarkers(liveMap); updateInProg = false; recalcInProg = false; firstUpd = false; if (clickHex) { marker[clickHex].fire('click'); }}function handleMarker(liveMap, e, redraw, st) { if (e[4] == null || e[5] == null) { return; } const currentPos = L.latLng(e[4], e[5]); if (redraw && e[0] on marker) { liveMap.removeLayer(marker[e[0]]); delete bookmark[e[0]]; } if (e[0] in the marker) { updateExistingMarker(e, currentPos); } else { createNewMarker(liveMap, e, currentPos, st); }}function updateExistingMarker(e, currentPos) { const m = marker[e[0]]; m.setLatLng(currentPos); lastPos[e[0]] = [e[4], e[5], e[2], e[6], Date.now(), e[7], e[8], e[9]] ; newMarker[e[0]] = true; document.getElementById("mi-" + e[0]).style.transform = "rotate(" + e[2] + "deg)";}function createNewMarker(liveMap, e, currentPos, st) { const htmlc = (is it? "

" + e[9] + "

" : "") + "EY231 - May 23, 2023: Etihad Airways (ETD9MN) from Abu Dhabi to Islamabad (5)"; const m = L.marker(currentPos, { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: e[0], opacidade: e[3] ? 0,9 : 0,6 }).addTo(liveMap).on('click', onPlaneClick); marcador[e[0]] = m; newMarker[e[0]] = true; lastPos[e[0]] = [e[4] , e[5], e[2], e[6], Date.now(), e[7], e[8], e[9]]; document.getElementById("mi-" + e[0 ]).style.transform = "rotate(" + e[2] + "deg)";}function removeUnusedMarkers(liveMap) { for (const m no marcador) { if (!(m in newMarker) && m != activeHex ) { liveMap.removeLayer(marker[m]); deletar marcador[m]; } }}function onPlaneClick(e) { if (sf != "") { return; } updateInProg = true; const liveMap = e.target. _map; const hex = e.target.options.alt; if (hex == activeHex) { return; } updateTrack(liveMap, `/${lang}/live/track_hex/${hex}`, hex, e); }function onMoveend(e) { localStorage.setItem('livemapCenter', JSON.stringify(e.target.getCenter())); localStorage.setItem('livemapZoom', e.target.getZoom()); updateMap(e. sourceTarget, false); } function onZoomed(e) { updateMap(e.sourceTarget, true) }// Defina uma função utilitária para criar uma função de marcador createMarker(latLng, iconClass, htmlContent, alt, opacity) { return L.marker(latLng , { icon: L.divIcon({ className: iconClass, html: htmlContent }), alt: alt, opacity: opacity, }).on('click', onPlaneClick);}// Defina variáveis ​​DOM e armazene-as em um mapa para melhorar o desempenhoconst domElements = new Map();domElements.set("liveFlnr", document.getElementById("liveFlnr"));domElements.set("liveAirline", document.getElementById("liveAirline"));domElements.set ("liveHex", document.getElementById("liveHex"));domElements.set("liveCallsign", document.getElementById("liveCallsign"));domElements.set("liveReg", document.getElementById("liveReg")) ;domElements.set("liveRegBlock", document.getElementById("liveRegBlock"));domElements.set("liveDep", document.getElementById("liveDep"));domElements.set("liveDepFlag", document.getElementById(" liveDepFlag"));domElements.set("liveDepTime", document.getElementById("liveDepTime"));domElements.set("liveDepDelay", document.getElementById("liveDepDelay"));domElements.set("liveArr", document .getElementById("liveArr"));domElements.set("liveArrFlag", document.getElementById("liveArrFlag"));domElements.set("liveArrTime", document.getElementById("liveArrTime"));domElements.set(" liveArrDelay", document.getElementById("liveArrDelay"));domElements.set("liveLink", document.getElementById("liveLink"));domElements.set("liveAlt", document.getElementById("liveAlt"));domElements .set("liveSpeed", document.getElementById("liveSpeed"));domElements.set("liveTrack", document.getElementById("liveTrack"));domElements.set("planePic", document.getElementById("planePic" ));domElements.set("liveType", document.getElementById("liveType"));domElements.set("liveTypeBlock", document.getElementById("liveTypeBlock"));domElements.set("liveMapContainer", document.getElementById ("liveMapContainer")); function updateTrack(liveMap, url, hex, e) { let prevCoord = null; deixe prevCoordFull = nulo; getData(url).then(function (ld) { if (!ld) { return; } const hadNoHex = hex === ""; if (hex === "" && url.includes("hex")) { hex = ld[0]; } else if (hex === "") { hex = ld[1]; } if (activeMarker && hex !== activeHex) { // Redefinir marcador antigo const lp = lastPos[activeHex] ; const htmlc = (tinhaTítulos?"

" + lp[7] + "

" : "") + "EY231 - May 23, 2023: Etihad Airways (ETD9MN) from Abu Dhabi to Islamabad (6)"; liveMap.removeLayer(marker[activeHex]); const m = L.marker(activeMarker.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: activeHex , opacidade: lp[3] ? 0,9 : 0,6 }).addTo(liveMap).on('click', onPlaneClick); marcador[activeHex] = m; document.getElementById("mi-" + activeHex).style.transform = "rotate(" + lp[2] + "deg)"; activeMarker = m; } // Definir novo marcador if (hex !== activeHex && e) { const lp = lastPos[hex]; const htmlc = (hadTitles ? "

" + lp[7] + "

" : "") + "EY231 - May 23, 2023: Etihad Airways (ETD9MN) from Abu Dhabi to Islamabad (7)"; const m = L.marker(e.target.getLatLng(), { icon: L.divIcon({ className: 'flt-marker', html: htmlc }), alt: hex, opacidade: ld[3] ? 0.9 : 0.6 }).addTo(liveMap).on('click', onPlaneClick); marcador[hex] = m; liveMap.removeLayer(e.target); activeMarker = m; } refreshsActive = true; recalcInProg = true; arcos = []; curArc = []; arcCol = ""; prevCoord = []; track = ld[23]; if (sf === "") { if (ld[0] !== "") { domElements .get("liveFlnr").href = `/${lang}/live/flight_details/${ld[10]}`; domElements.get("liveFlnr").innerText = ld[0]; } else { domElements .get("liveFlnr").innerText = ""; domElements.get("liveFlnr").href = ""; } if (ld[21]) { domElements.get("liveAirline").innerText = ld[21 ]; } else { domElements.get("liveAirline").innerText = ""; } domElements.get("liveHex").innerText = ld[1]; if (ld[2] !== "" && ld[ 2] !== ld[0]) { domElements.get("liveCallsign").innerText = ld[2]; } else { domElements.get("liveCallsign").innerText = ""; } if (ld[3 ] !== "") { domElements.get("liveReg").href = `/${lang}/planes/${ld[3]}`; domElements.get("liveRegBlock").style.display = "bloco"; domElements.get("liveReg").innerText = ld[3]; } else { domElements.get("liveReg").innerText = "NA"; domElements.get("liveRegBlock").style.display = "nenhum"; domElements.get("liveReg").href = ""; } if (ld[4] !== "NA") { domElements.get("liveDep").innerText = ld[5]; domElements.get("liveDepFlag").src = "/staticfiles/" + ld[6].toLowerCase() + ".svg"; domElements.get("liveDep").href = `/${lang}/airport/${ld[5]}/${ld[4]}`; domElements.get("liveDepTime").innerText = ld[11]; if (ld[19] && ld[19] !== "+0") { domElements.get("liveDepDelay").innerText = ld[19]; } else { domElements.get("liveDepDelay").innerText = ""; } } else { domElements.get("liveDep").innerText = "NA"; domElements.get("liveDepTime").innerText = ""; domElements.get("liveDepDelay").innerText = ""; } if (ld[7] !== "NA") { domElements.get("liveArr").innerText = ld[8]; domElements.get("liveArrFlag").src = "/staticfiles/" + ld[9].toLowerCase() + ".svg"; domElements.get("liveArr").href = `/${lang}/airport/${ld[8]}/${ld[7]}`; domElements.get("liveArrTime").innerText = ld[12]; if (ld[20] && ld[20] !== "+0") { domElements.get("liveArrDelay").innerText = ld[20]; } else { domElements.get("liveArrDelay").innerText = ""; } } else { domElements.get("liveArr").innerText = "NA"; domElements.get("liveArrTime").innerText = ""; domElements.get("liveArrDelay").innerText = ""; } if (ld[10] !== null) { domElements.get("liveLink").href = `/${lang}/live/flight_details/${ld[10]}`; domElements.get("liveLink").style.display = "bloquear"; } else { domElements.get("liveLink").style.display = "nenhum"; } const lt = track[track.length - 1]; domElements.get("liveAlt").innerText = lt[3] + " ft"; domElements.get("liveSpeed").innerText = lt[5] + " kts"; domElements.get("liveTrack").innerText = lt[4] + "°"; if (ld[18] !== "") { domElements.get("planePic").src = ld[18]; domElements.get("planePic").style.display = "bloco"; } else { domElements.get("planePic").style.display = "nenhum"; } if (ld[22]) { domElements.get("liveType").innerText = ld[22]; domElements.get("liveTypeBlock").style.display = "bloco"; } else { domElements.get("liveTypeBlock").style.display = "nenhum"; domElements.get("liveType").innerText = "NA"; } } if (ld[13] !== null && ld[14] !== null && track.length > 0 && Math.abs(ld[13] - track[0][1] / 1e5) > 1 && Math.abs(ld[14] - track[0][2] / 1e5) > 1) { arcs.push([[[ld[13], ld[14]], [track[0][1] / 1e5, track[0][2] / 1e5]], "lightgray", verdadeiro]); } anteriorCoord = null; anteriorCoordFull = nulo; lp = nulo; for (const entr in track) { const p = track[entr]; if (p[1] === nulo || p[2] === nulo) { continue; } deixe col = "verde"; if (prevCoord && (Math.abs(prevCoord[0] - p[1] / 1e5) > 1 || Math.abs(prevCoord[1] - p[2] / 1e5) > 1)) { arcs.push( [curArc, arcCol, false]); arcoCol = ""; arcs.push([[[prevCoord[0], prevCoord[1]], L.latLng(p[1] / 1e5, p[2] / 1e5, p[3])], "lightgray", true]) ; curArc = [L.latLng(p[1] / 1e5, p[2] / 1e5, p[3])]; } else if (arcCol !== col) { if (curArc.length > 0) { arcs.push([curArc, arcCol, false]); } if (prevCoord) { curArc = [prevCoord]; } else { curArc = []; } arcoCol = col; } prevCoordFull = [p[1] / 1e5, p[2] / 1e5, p[4], p[5], Date.now(), p[3], false, p[9]]; prevCoord = L.latLng(p[1] / 1e5, p[2] / 1e5, p[3]); curArc.push(prevCoord); if (p[4] !== 0) { lastTrack = p[4]; } } if (curArc.length > 0) { arcs.push([curArc, arcCol]); } if (ld[15] !== null && ld[16] !== null && prevCoord && (Math.abs(prevCoord.lat - ld[15]) > 0.1 || Math.abs(prevCoord.lng - ld [16]) > 0.1)) { arcs.push([[prevCoord, [ld[15], ld[16]]], "lightgray", true]); activeDest = L.latLng(ld[15], ld[16]); } for (const idx in tracks) { tracks[idx].remove(); } faixas = []; for (idx const em arcos) { const a = arcos[idx]; if (a[2]) { if (a[0][0][1] > a[0][1][1]) { const temp = a[0][0]; a[0][0] = a[0][1]; a[0][1] = temperatura; } p = L.Polyline.Arc(a[0][0], a[0][1], { color: a[1], noClip: true, vertices: 100 }); estTrack = p; } else { p = L.hotline(a[0], { paleta: { 0: 'lightgray', 0.1: 'green', 0.5: 'yellow', 0.7: 'laranja', 1: 'red' }, min : 0, max: 36000, outlineWidth: 0, peso: 4, noClip: true }); trilha ao vivo = p; } p.addTo(liveMap); faixas.push(p); } if (prevCoordFull) { lastPos[hex] = prevCoordFull; } if (prevCoord) { if (e) { const i = e.sourceTarget; i.setLatLng(prevCoord); marcador ativo = i; if (lastTrack) { document.getElementById("mi-" + hex).style.transform = "rotate(" + lastTrack + "deg)"; } if (!refreshs && !viewSet) { liveMap.setView(prevCoord, 8); } } else { if (!activeMarker) { activeMarker = L.marker(prevCoord, { icon: L.icon({ iconUrl: "/img/plane-icon_active.svg?20221124", iconSize: liveMap._zoom > 7 ? tamanhos [0] : tamanhos[1] }), rotationAngle: prevCoordFull[2], rotationOrigin: "centro centro", opacidade: 0,8, título: hex }).addTo(liveMap); } else { activeMarker.setLatLng(prevCoord); } } if (e || hadNoHex) { // Apenas define a atualização no primeiro clique ou para trilhas de vôo ao vivo (nenhum hex fornecido então) if (trackRefresh) { window.clearInterval(trackRefresh); } if (ld[17]) { trackRefresh = window.setInterval(function () { if (refreshsActive) { updateTrack(liveMap, url, hex, null); } }, 5000); } } } if (!refreshs && !viewSet) { liveMap.setView(prevCoord, 8); } if (sf === "") { domElements.get("liveMapContainer").style.display = 'bloco'; } ativoHex = hex; atualizarInProg = false; recalcInProg = falso; });} function buildLiveMap(liveMap,activeHex) { const osmUrl = 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'; const osmAttrib = '© OpenStreetMap'; const osm = new L.TileLayer(osmUrl, { atribuição: osmAttrib }); liveMap.attributionControl.setPrefix(''); liveMap.addLayer(osm); updateMap(liveMap, false, activeHex); liveMap.on('zoomend', onZoomed); liveMap.on('moveend', onMoveend); } function buildTrackMap(liveMap, url) { const osmUrl = 'https://a.tile.openstreetmap.org/{z}/{x}/{y}.png'; const osmAttrib = '© OpenStreetMap'; const osm = new L.TileLayer(osmUrl, { atribuição: osmAttrib }); liveMap.attributionControl.setPrefix(''); liveMap.addLayer(osm); updateTrack(liveMap, url, "", null); } loadScript("/js/leaflet.js?20220411" ,function() { // configura o mapa map = new L.map('map-flight',{twoFingerZoom: true,sleep:false,minZoom:0} ); // cria a camada de mosaico com a atribuição correta map.fitBounds([[24.43306,54.65111],[33.5490833,72.82565]]); viewSet = true; dep=[24.43306,54.65111]; arr=[33.5490833,72.82565]; sf = "107378300"; buildTrackMap(mapa,"/en/live/track/107378300"); L.marker(dep).addTo(mapa); L.marker(arr).addTo(mapa); });
full screen map

CIA AÉREA

NAME
Etihad Airways airline

IATA / ICAO
EY / ETD

COUNTRY
United Arab Emirates
airline information

PLANE

MODEL
A6-AEB Airbus A321

ICAO IDENTIFIER
8963AA

SEAT CONFIGURATION
174 seats
16 business158 Economy

FIRST FLIGHT
May 2014
9 years ago
airplane information

GENERAL INFORMATION OF THE ROUTE

FREQUENCY:

daily
Sun, Mon, Tue, Wed, Thu, Fri, Sat

DISTANCE
2.035 km2264 miles

FLIGHT TIME
3 hours 16 minutes

FLIGHTS / WEEK
23 flights

PUNCTUALITY
4 flights/week delayed
81% punctual performance

SEATS / WEEK
179 seats/flight
17,449 seats/week
route information

CO2 EMISSIONS

Economy
702kg

Business
1.244kg
Top Articles
Latest Posts
Article information

Author: Rev. Porsche Oberbrunner

Last Updated: 05/28/2023

Views: 6204

Rating: 4.2 / 5 (73 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Rev. Porsche Oberbrunner

Birthday: 1994-06-25

Address: Suite 153 582 Lubowitz Walks, Port Alfredoborough, IN 72879-2838

Phone: +128413562823324

Job: IT Strategist

Hobby: Video gaming, Basketball, Web surfing, Book restoration, Jogging, Shooting, Fishing

Introduction: My name is Rev. Porsche Oberbrunner, I am a zany, graceful, talented, witty, determined, shiny, enchanting person who loves writing and wants to share my knowledge and understanding with you.