{"id":46568,"date":"2025-09-29T11:23:30","date_gmt":"2025-09-29T09:23:30","guid":{"rendered":"https:\/\/cmm.imgw.pl\/?page_id=46568"},"modified":"2025-11-04T09:58:23","modified_gmt":"2025-11-04T08:58:23","slug":"trajektorie-wsteczne-duplicate-12807-2","status":"publish","type":"page","link":"https:\/\/cmm.imgw.pl\/?page_id=46568","title":{"rendered":"TRAJEKTORIE"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"46568\" class=\"elementor elementor-46568\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-92e22b5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"92e22b5\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5b68755\" data-id=\"5b68755\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f867783 elementor-widget elementor-widget-html\" data-id=\"f867783\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<script type=\"text\/javascript\">\r\n  \/\/ Aktualna data i czas UTC\r\n  var now = new Date();\r\n  var curr_year = now.getUTCFullYear();\r\n  var curr_month = now.getUTCMonth() + 1;\r\n  var curr_date = now.getUTCDate();\r\n  var curr_hour = now.getUTCHours();\r\n  var curr_minutes = now.getUTCMinutes();\r\n\r\n  if (curr_date < 10) curr_date = '0' + curr_date;\r\n  if (curr_month < 10) curr_month = '0' + curr_month;\r\n\r\n  \/\/ Poprzedni dzie\u0144\r\n  var prev = new Date(now);\r\n  prev.setUTCDate(prev.getUTCDate() - 1);\r\n  var prev_year = prev.getUTCFullYear();\r\n  var prev_month = prev.getUTCMonth() + 1;\r\n  var prev_date = prev.getUTCDate();\r\n  if (prev_date < 10) prev_date = '0' + prev_date;\r\n  if (prev_month < 10) prev_month = '0' + prev_month;\r\n\r\n  var modelPathPart = \"trajektorie\/\";\r\n  var productionHour = \"00\";\r\n  var productionDay = curr_date;\r\n  var productionMonth = curr_month;\r\n  var productionYear = curr_year;\r\n\r\n  \/\/ Czas w minutach od p\u00f3\u0142nocy\r\n  var totalMinutes = curr_hour * 60 + curr_minutes;\r\n\r\n  \/\/ Granice czasowe (UTC)\r\n  var t0330 = 3 * 60 + 30;\r\n  var t0930 = 9 * 60 + 30;\r\n  var t1530 = 15 * 60 + 30;\r\n  var t2130 = 21 * 60 + 30;\r\n  var t2100 = 21 * 60;\r\n\r\n  \/\/ Wyb\u00f3r produkcji\r\n  if (totalMinutes >= t0330 && totalMinutes < t0930) {\r\n    productionHour = \"00\";\r\n  } else if (totalMinutes >= t0930 && totalMinutes < t1530) {\r\n    productionHour = \"06\";\r\n  } else if (totalMinutes >= t1530 && totalMinutes < t2130) {\r\n    productionHour = \"12\";\r\n  } else {\r\n    productionHour = \"18\";\r\n    if (totalMinutes < t0330) {\r\n      productionDay = prev_date;\r\n      productionMonth = prev_month;\r\n      productionYear = prev_year;\r\n    }\r\n  }\r\n\r\n  console.log(\"Produkcja:\", productionYear + productionMonth + productionDay + \"_\" + productionHour);\r\n<\/script>\r\n\r\n<div class=\"main-tabs\">\r\n  <div class=\"main-tab-links\">\r\n    <button class=\"main-tablink active\" data-target=\"backward-trajectories\">Trajektorie wsteczne mas powietrza (7 dni)<\/button>\r\n    <button class=\"main-tablink\" data-target=\"pmsl-tracks\">Prognoza trajektorii o\u015brodk\u00f3w wysokiego i niskiego ci\u015bnienia<\/button>\r\n  <\/div>\r\n\r\n  <div id=\"backward-trajectories\" class=\"main-tabcontent active\">\r\n    <div class=\"tab\">\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Bialystok')\">Bia\u0142ystok<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Bydgoszcz')\">Bydgoszcz<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Gdansk')\">Gda\u0144sk<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Gorzow')\">Gorz\u00f3w<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Katowice')\">Katowice<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Kielce')\">Kielce<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Krakow')\">Krak\u00f3w<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Lodz')\">\u0141\u00f3d\u017a<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Lublin')\">Lublin<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Olsztyn')\">Olsztyn<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Opole')\">Opole<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Poznan')\">Pozna\u0144<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Rzeszow')\">Rzesz\u00f3w<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Szczecin')\">Szczecin<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Torun')\">Toru\u0144<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Warszawa')\" id=\"defaultOpen\">Warszawa<\/button>\r\n      <button class=\"tablinks\" onclick=\"wrf(event, 'Wroclaw')\">Wroc\u0142aw<\/button>\r\n    <\/div>\r\n\r\n    <!-- GENEROWANIE OBRAZ\u00d3W DLA KA\u017bDEGO MIASTA -->\r\n    <script>\r\n      const cities = [\r\n        \"Bialystok\", \"Bydgoszcz\", \"Gdansk\", \"Gorzow\", \"Katowice\", \"Kielce\",\r\n        \"Krakow\", \"Lodz\", \"Lublin\", \"Olsztyn\", \"Opole\", \"Poznan\",\r\n        \"Rzeszow\", \"Szczecin\", \"Torun\", \"Warszawa\", \"Wroclaw\"\r\n      ];\r\n\r\n      cities.forEach(city => {\r\n        document.write(`\r\n          <div id=\"${city}\" class=\"tabcontent\">\r\n            <img src=\"wp-content\/uploads\/production\/${modelPathPart}${productionYear}${productionMonth}${productionDay}_${productionHour}_${city}.webp\" alt=\"\">\r\n            <br>\r\n            <img src=\"wp-content\/uploads\/production\/${modelPathPart}${productionYear}${productionMonth}${productionDay}_${productionHour}_${city}_height.webp\" alt=\"\">\r\n          <\/div>\r\n        `);\r\n      });\r\n    <\/script>\r\n  \r\n    <div class=\"bt-section bt-description\">\r\n      Przep\u0142yw powietrza w atmosferze mo\u017ce by\u0107 zr\u00f3\u017cnicowany zale\u017cnie od jej poziomu (izobarycznego, hPa) i zmienia\u0107 si\u0119\r\n      w czasie i przestrzeni. Zale\u017cnie od sytuacji powietrze mo\u017ce przemieszcza\u0107 si\u0119 na znaczne odleg\u0142o\u015bci i w kr\u00f3tkich\r\n      odst\u0119pach czasu lub stagnowa\u0107 nad danym obszarem, np. przy blokadzie wy\u017cowej. <b>Trajektorie wsteczne s\u0105 pomocnym\r\n        narz\u0119dziem do oceny nap\u0142ywu mas powietrza w dniach poprzedzaj\u0105cych analizowany termin<\/b>. Pozwalaj\u0105 ustali\u0107 1)\r\n      sk\u0105d masa powietrza dotar\u0142a nad dany punkt, a \u015bledz\u0105c drog\u0119 jak\u0105 przeby\u0142a \u0142atwiej jest okre\u015bli\u0107 2) nad jakim\r\n      obszarem si\u0119 uformowa\u0142a i jakie by\u0142y jej cechy \u017ar\u00f3d\u0142owe oraz jakim przemianom mog\u0142a ulega\u0107. Ma to znaczenie np. w\r\n      analizie zmian sytuacji synoptycznej i prognozowaniu pogody ale r\u00f3wnie\u017c m.in. w ocenie transportu zanieczyszcze\u0144.\r\n      Trajektorie wsteczne obliczane s\u0105 na podstawie prognoz z 7 dni poprzedzaj\u0105cych start analizy. Miejsce na mapie\r\n      oznaczone liczb\u0105 7 wskazuje lokalizacj\u0119 porcji powietrza 7 dni przed wygenerowaniem symulacji. Linie \u0142\u0105cz\u0105ce\r\n      numery wskazuj\u0105 \u015bcie\u017ck\u0119 przemieszczania si\u0119 porcji powietrza. Analiza obejmuje zmiany na trzech poziomach\r\n      ci\u015bnieniowych atmosfery. Pocz\u0105wszy od najwy\u017cej po\u0142o\u017conego wzgl\u0119dem powierzchni terenu lub morza: 700 hPa (\u015brednio\r\n      na wysoko\u015bci ok 3 000 m n.p.m. - oznaczony lini\u0105 koloru niebieskiego), 850 hPa (ok.1 500 m n.p.m., linia czarna) i\r\n      950 hPa (kilku metr\u00f3w nad poziomem gruntu, linia czerwona).\r\n    <\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n<script>\r\n  \/\/ Funkcja prze\u0142\u0105czania zak\u0142adek\r\n  function wrf(evt, cityName) {\r\n    var i, tabcontent, tablinks;\r\n    tabcontent = document.getElementsByClassName(\"tabcontent\");\r\n    for (i = 0; i < tabcontent.length; i++) {\r\n      tabcontent[i].style.display = \"none\";\r\n    }\r\n    tablinks = document.getElementsByClassName(\"tablinks\");\r\n    for (i = 0; i < tablinks.length; i++) {\r\n      tablinks[i].className = tablinks[i].className.replace(\" active\", \"\");\r\n    }\r\n    document.getElementById(cityName).style.display = \"block\";\r\n    evt.currentTarget.className += \" active\";\r\n  }\r\n\r\n  \/\/ Automatycznie otw\u00f3rz Warszaw\u0119 po za\u0142adowaniu\r\n  document.getElementById(\"defaultOpen\").click();\r\n<\/script>\r\n\r\n\r\n    <style>\r\n      \/* Style the tab *\/\r\n      .tab {\r\n        overflow: hidden;\r\n        border: none;\r\n      }\r\n\r\n      \/* Style the buttons that are used to open the tab content *\/\r\n      .tab button {\r\n        background-color: inherit;\r\n        float: center;\r\n        border: none;\r\n        outline: none;\r\n        cursor: pointer;\r\n        padding: 14px 16px;\r\n        transition: 0.3s;\r\n        margin-left: auto;\r\n        margin-right: auto;\r\n        justify-content: center;\r\n        text-align: center;\r\n        \/* Only round the top corners *\/\r\n        -webkit-border-top-left-radius: 15px;\r\n        -webkit-border-top-right-radius: 15px;\r\n        -moz-border-radius-topleft: 15px;\r\n        -moz-border-radius-topright: 15px;\r\n        border-top-left-radius: 15px;\r\n        border-top-right-radius: 15px;\r\n      }\r\n\r\n      \/* Change background color of buttons on hover *\/\r\n      .tab button:hover {\r\n        background-color: #ddd;\r\n      }\r\n\r\n      \/* Create an active\/current tablink class *\/\r\n      .tab button.active {\r\n        background-color: #ccc;\r\n      }\r\n\r\n      \/* Style the tab content *\/\r\n      .tab {\r\n        text-align: center;\r\n        width: 100%;\r\n      }\r\n\r\n      .tabcontent {\r\n        display: block;\r\n        float: center;\r\n        padding: 6px 12px;\r\n        border: none;\r\n        border-top: none;\r\n        text-align: center;\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: center;\r\n        text-align: center;\r\n      }\r\n\r\n      #backward-trajectories {\r\n        font-family: Arial, sans-serif;\r\n        max-width: 1100px;\r\n        margin: 0 auto;\r\n      }\r\n\r\n      .bt-section {\r\n        margin-bottom: 20px;\r\n        background: #f9f9f9;\r\n        padding: 15px;\r\n        border-radius: 8px;\r\n        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\r\n      }\r\n\r\n      .bt-description {\r\n        margin-top: 15px;\r\n        padding: 10px;\r\n        background-color: #f8f9fa;\r\n        border: 1px solid #dee2e6;\r\n        border-radius: 4px;\r\n        font-size: 14px;\r\n        color: #333;\r\n        line-height: 1.5;\r\n        text-align: justify;\r\n      }\r\n    <\/style>\r\n\r\n    <script>\r\n      function wrf(evt, cityName) {\r\n        \/\/ Declare all variables\r\n        var i, tabcontent, tablinks;\r\n\r\n        \/\/ Get all elements with class=\"tabcontent\" and hide them\r\n        tabcontent = document.getElementsByClassName(\"tabcontent\");\r\n        for (i = 0; i < tabcontent.length; i++) {\r\n          tabcontent[i].style.display = \"none\";\r\n        }\r\n\r\n        \/\/ Get all elements with class=\"tablinks\" and remove the class \"active\"\r\n        tablinks = document.getElementsByClassName(\"tablinks\");\r\n        for (i = 0; i < tablinks.length; i++) {\r\n          tablinks[i].className = tablinks[i].className.replace(\" active\", \"\");\r\n        }\r\n\r\n        \/\/ Show the current tab, and add an \"active\" class to the button that opened the tab\r\n        document.getElementById(cityName).style.display = \"block\";\r\n        evt.currentTarget.className += \" active\";\r\n      }\r\n\r\n      (function () {\r\n        \/\/ Get the element with id=\"defaultOpen\" and click on it\r\n        document.getElementById(\"defaultOpen\").click();\r\n      })();\r\n    <\/script>\r\n\r\n  <\/div>\r\n\r\n  <div id=\"pmsl-tracks\" class=\"main-tabcontent\">\r\n    <div class=\"pt-container\">\r\n\r\n      <!-- Left column with model and start time selection -->\r\n      <div class=\"pt-left-column\">\r\n        <!-- Step 1: Model selection -->\r\n        <div class=\"pt-section\">\r\n          <h3>Model:<\/h3>\r\n          <div id=\"pt-models\" class=\"pt-buttons\"><\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 2: Start time selection -->\r\n        <div class=\"pt-section\">\r\n          <h3>Termin startu:<\/h3>\r\n          <div id=\"pt-terms\" class=\"pt-buttons\"><\/div>\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n      <!-- Right column with image -->\r\n      <div class=\"pt-right-column\">\r\n        <div class=\"pt-section pt-images\">\r\n          <div id=\"pt-images\" class=\"pt-images\">\r\n            <img id=\"pt-image\" src=\"\" alt=\"Trajektorie o\u015brodk\u00f3w ni\u017cu\/wy\u017cu\">\r\n            <div class=\"pt-description\">\r\n              Przewidywanie jaki b\u0119dzie uk\u0142ad o\u015brodk\u00f3w wysokiego i niskiego ci\u015bnienia nad danym obszarem oraz\r\n              trajektorii przemieszczania si\u0119 ich centr\u00f3w maj\u0105 kluczowe znaczenie dla oceny zmiany warunk\u00f3w pogodowych w\r\n              horyzoncie ka\u017cdej prognozy. W znacznym uproszczeniu (pomijaj\u0105c specyficzne uk\u0142ady pogody) mo\u017cna przyj\u0105\u0107,\r\n              \u017ce ulokowanie si\u0119 o\u015brodka niskiego ci\u015bnienia nad Polsk\u0105 wi\u0105za\u0107 si\u0119 b\u0119dzie z pogod\u0105 dynamiczn\u0105, wietrzn\u0105 i\r\n              z opadami, podczas gdy pojawienie si\u0119 uk\u0142adu wy\u017cowego kszta\u0142towa\u0107 b\u0119dzie pogod\u0119 z wi\u0119ksz\u0105 dostaw\u0105\r\n              bezpo\u015bredniego promieniowania s\u0142onecznego i wyst\u0119powaniem wi\u0119kszych kontrast\u00f3w termicznych.<br>\r\n              Analizy numerycznych modeli pogody pozwalaj\u0105 identyfikowa\u0107 i \u015bledzi\u0107 rozw\u00f3j sytuacji barycznej oraz\r\n              przemieszczanie si\u0119 uk\u0142ad\u00f3w w kolejnych krokach prognozy. W prezentowanej prognozie zastosowano proste\r\n              podej\u015bcie polegaj\u0105ce na wykrywaniu lokalnych minim\u00f3w i maksim\u00f3w w polu ci\u015bnienia na poziomie morza (PMSL).\r\n              Ich lokalizacje oznaczane s\u0105 znacznikiem (k\u00f3\u0142ka niebieskie \u2013 centrum lokalnego o\u015brodka wysokiego\r\n              ci\u015bnienia, czerwone \u2013 centrum o\u015brodka niskiego ci\u015bnienia), a nast\u0119pnie \u0142\u0105czone lini\u0105 aby u\u0142atwi\u0107\r\n              interpretacj\u0119 przemieszczania si\u0119 uk\u0142ad\u00f3w. Warto\u015b\u0107 liczbowa oznacza termin w odniesieniu do kroku\r\n              prognozy. Przyk\u0142adowo warto\u015b\u0107 \"0\" nale\u017cy interpretowa\u0107 jako lokalizacj\u0119 w momencie startu, a \"15\" przyj\u0105\u0107\r\n              za lokalizacj\u0119 w 15 godzinie od startu prognozy. Znaczniki opisane przekre\u015bleniem oznaczaj\u0105 pocz\u0105tek i\r\n              koniec ruchu danego lokalnego o\u015brodka w perspektywie horyzontu czasowego ca\u0142ej prognozy. Zale\u017cnie od\r\n              modelu \u2013 b\u0119dzie to od 30 godzin w modelu AROME do 120 godzin w modelu ECMWF AIFS.<br>\r\n              Bywa, \u017ce mniejsze o\u015brodki nie s\u0105 silnie wyra\u017cone w polu ci\u015bnienia \u2013 mog\u0105 wi\u0119c pojawi\u0107 si\u0119 dopiero w\r\n              kt\u00f3rym\u015b kroku prognozy (znacznik pocz\u0105tku b\u0119dzie opisany innym terminem ni\u017c 0) b\u0105d\u017a nie zosta\u0107\r\n              uwzgl\u0119dnione w okresie startu modelu ze wzgl\u0119du na po\u0142o\u017cenie poza obszarem domeny modelu (prowadzonej\r\n              os\u0142ony meteorologicznej). Podobnie w przypadku niekt\u00f3rych uk\u0142ad\u00f3w mo\u017ce doj\u015b\u0107 do \"rozmycia\" pola barycznego\r\n              ju\u017c po kilku godzinach od startu prognozy. Je\u015bli na tym samym obszarze utworzy si\u0119 inny o\u015brodek zyska\r\n              kolejn\u0105 numeracj\u0119, licz\u0105c co 3 godziny pocz\u0105wszy od terminu jego pojawienia si\u0119.<br>\r\n              Przyj\u0119ta metoda najlepiej sprawdza si\u0119 dla modeli globalnych, takich jak GFS i ECMWF IFS, kt\u00f3rych domeny\r\n              obejmuj\u0105 swoim zasi\u0119giem rozleg\u0142y obszar Oceanu Atlantyckiego i cz\u0119\u015b\u0107 Europy oraz dobrze uformowane i\r\n              wyra\u017ane uk\u0142ady baryczne. W przypadku modeli regionalnych, mimo ich wi\u0119kszej rozdzielczo\u015bci terenowej, mo\u017ce\r\n              okaza\u0107 si\u0119, \u017ce zmiany pola ci\u015bnienia atmosferycznego na mniejszych obszarach b\u0119d\u0105 na tyle niewielkie, a\r\n              uk\u0142ady baryczne dyskretne, \u017ce algorytm prognozy nie wychwyci odpowiednio ich odwzorowania b\u0105d\u017a ewolucji w\r\n              kolejnych krokach prognozy. Ze wzgl\u0119du na powy\u017csze interpretacja graficzna mo\u017ce r\u00f3\u017cni\u0107 si\u0119 pomi\u0119dzy\r\n              modelami.\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n    <style>\r\n      #pmsl-tracks {\r\n        font-family: Arial, sans-serif;\r\n        max-width: 1100px;\r\n        margin: 0 auto;\r\n      }\r\n\r\n      .pt-container {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        gap: 20px;\r\n      }\r\n\r\n      .pt-left-column {\r\n        flex: 1;\r\n        min-width: 125px;\r\n        max-width: 225px;\r\n      }\r\n\r\n      .pt-right-column {\r\n        flex: 2;\r\n        min-width: 400px;\r\n      }\r\n\r\n      .pt-section {\r\n        margin-bottom: 20px;\r\n        background: #f9f9f9;\r\n        padding: 15px;\r\n        border-radius: 8px;\r\n        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\r\n      }\r\n\r\n      .pt-section h3 {\r\n        margin-top: 0;\r\n        border-bottom: 1px solid #ddd;\r\n        padding-bottom: 8px;\r\n        color: #333;\r\n      }\r\n\r\n      .pt-buttons {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        gap: 8px;\r\n      }\r\n\r\n      .pt-buttons button {\r\n        padding: 6px 12px;\r\n        border: 1px solid #666;\r\n        border-radius: 6px;\r\n        background: #f5f5f5;\r\n        cursor: pointer;\r\n        transition: all 0.2s;\r\n        font-size: 0.9em;\r\n      }\r\n\r\n      #pt-models.pt-buttons button {\r\n        width: 100%;\r\n      }\r\n\r\n      .pt-buttons button:hover {\r\n        background: #ddd;\r\n      }\r\n\r\n      .pt-buttons button.active {\r\n        background-color: rgba(86, 221, 208, 1);\r\n        color: white;\r\n        border-color: #2E7D32;\r\n      }\r\n\r\n      .pt-section.pt-images {\r\n        min-height: 600px;\r\n      }\r\n\r\n      #pt-images.images {\r\n        min-height: 600px;\r\n      }\r\n\r\n      .pt-images img {\r\n        max-width: 100%;\r\n        margin: 5px auto;\r\n        border: 1px solid #ccc;\r\n        display: block;\r\n        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\r\n      }\r\n\r\n      .pt-description {\r\n        margin-top: 15px;\r\n        padding: 10px;\r\n        background-color: #f8f9fa;\r\n        border: 1px solid #dee2e6;\r\n        border-radius: 4px;\r\n        font-size: 14px;\r\n        color: #333;\r\n        line-height: 1.5;\r\n        text-align: justify;\r\n      }\r\n\r\n      @media (max-width: 768px) {\r\n        .pt-container {\r\n          flex-direction: column;\r\n        }\r\n\r\n        .pt-left-column,\r\n        .pt-right-column {\r\n          max-width: 100%;\r\n          width: 100%;\r\n        }\r\n      }\r\n    <\/style>\r\n    <script>\r\n      const models = [\"alaro_4k0\", \"arome_2k0\", \"icon_2k5\", \"cosmo_2k8\", \"cosmo_7k0\", \"cosmo_14k0\", \"gfs_0p25\", \"ecmwf_ifs_0p10\", \"ecmwf_aifs_0p25\"];\r\n      const terms = [\"00\", \"06\", \"12\", \"18\"];\r\n      const modelDisplayNames = {\r\n        \"alaro_4k0\": \"ALARO 4k0\",\r\n        \"arome_2k0\": \"AROME 2k0\",\r\n        \"icon_2k5\": \"ICON 2k5\",\r\n        \"cosmo_2k8\": \"COSMO 2k8\",\r\n        \"cosmo_7k0\": \"COSMO 7k0\",\r\n        \"cosmo_14k0\": \"COSMO 14k0\",\r\n        \"gfs_0p25\": \"GFS 0.25\u00b0\",\r\n        \"ecmwf_ifs_0p10\": \"ECMWF IFS 0.1\u00b0\",\r\n        \"ecmwf_aifs_0p25\": \"ECMWF AIFS 0.25\u00b0\"\r\n      };\r\n      let selected_model = \"ecmwf_ifs_0p10\";\r\n      let selected_term = \"00\";\r\n\r\n      function renderButtons(containerId, items, onClick, activeItem = null, displayNames = null) {\r\n        const container = document.getElementById(containerId);\r\n        container.innerHTML = \"\";\r\n        items.forEach(item => {\r\n          const btn = document.createElement(\"button\");\r\n\r\n          if (displayNames && displayNames[item]) {\r\n            btn.textContent = displayNames[item];\r\n          } else {\r\n            btn.textContent = item;\r\n          }\r\n\r\n          if (activeItem && item === activeItem) {\r\n            btn.classList.add('active');\r\n          }\r\n\r\n          btn.onclick = () => {\r\n            container.querySelectorAll('button').forEach(b => b.classList.remove('active'));\r\n            btn.classList.add('active');\r\n            onClick(item);\r\n          };\r\n\r\n          container.appendChild(btn);\r\n        });\r\n      }\r\n\r\n      function loadImage() {\r\n        const imageUrl = `\/wp-content\/uploads\/production\/trajektorie_pmsl\/${selected_model}.d${selected_term}.pmsl_tracks.webp`;\r\n        const image = document.getElementById(\"pt-image\");\r\n        image.src = imageUrl;\r\n      }\r\n\r\n      function initializeInterface() {\r\n        renderButtons(\"pt-models\", models, (model) => {\r\n          selected_model = model;\r\n          loadImage();\r\n        }, selected_model, modelDisplayNames);\r\n\r\n        renderButtons(\"pt-terms\", terms, (term) => {\r\n          selected_term = term;\r\n          loadImage();\r\n        }, selected_term);\r\n      }\r\n\r\n      (function () {\r\n        initializeInterface();\r\n        loadImage();\r\n      })();\r\n    <\/script>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  (function () {\r\n    let mainTabLinks = document.getElementsByClassName(\"main-tablink\");\r\n    let mainTabContents = document.getElementsByClassName(\"main-tabcontent\");\r\n\r\n    function showMainTab(targetId) {\r\n      for (let i = 0; i < mainTabContents.length; i++) {\r\n        mainTabContents[i].classList.remove(\"active\");\r\n      }\r\n      for (let j = 0; j < mainTabLinks.length; j++) {\r\n        mainTabLinks[j].classList.remove(\"active\");\r\n      }\r\n\r\n      let target = document.getElementById(targetId);\r\n      if (target) {\r\n        target.classList.add(\"active\");\r\n      }\r\n\r\n      for (let k = 0; k < mainTabLinks.length; k++) {\r\n        if (mainTabLinks[k].getAttribute(\"data-target\") === targetId) {\r\n          mainTabLinks[k].classList.add(\"active\");\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    for (let idx = 0; idx < mainTabLinks.length; idx++) {\r\n      mainTabLinks[idx].addEventListener(\"click\", function (event) {\r\n        event.preventDefault();\r\n        let targetId = this.getAttribute(\"data-target\");\r\n        if (targetId) {\r\n          showMainTab(targetId);\r\n        }\r\n      });\r\n    }\r\n\r\n    if (mainTabLinks.length > 0) {\r\n      let defaultTarget = mainTabLinks[1].getAttribute(\"data-target\");\r\n      if (defaultTarget) {\r\n        showMainTab(defaultTarget);\r\n      }\r\n    }\r\n  })();\r\n<\/script>\r\n\r\n<style>\r\n  .main-tabs {\r\n    width: 100%;\r\n    margin: 0 auto;\r\n  }\r\n\r\n  .main-tab-links {\r\n    display: flex;\r\n    justify-content: center;\r\n    gap: 12px;\r\n    margin-bottom: 16px;\r\n    flex-wrap: wrap;\r\n  }\r\n\r\n  .main-tablink {\r\n    background-color: #f5f5f5;\r\n    border: none;\r\n    outline: none;\r\n    padding: 14px 20px;\r\n    cursor: pointer;\r\n    transition: 0.3s;\r\n    border-radius: 20px 20px 0 0;\r\n    font-weight: 600;\r\n  }\r\n\r\n  .main-tablink.active,\r\n  .main-tablink:hover {\r\n    background-color: #e0e0e0;\r\n  }\r\n\r\n  .main-tabcontent {\r\n    display: none;\r\n    width: 100%;\r\n  }\r\n\r\n  .main-tabcontent.active {\r\n    display: block;\r\n  }\r\n<\/style>\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Trajektorie wsteczne obliczane s\u0105 na podstawie prognoz z siedmiu poprzednich dni. Okre\u015blaj\u0105, sk\u0105d docieraj\u0105 masy powietrza do danego punktu (receptora) na przyk\u0142ad w Polsce dla trzech podstawowych wysoko\u015bci \u2013 poziom\u00f3w ci\u015bnieniowych \u2013 950, 850 i 700 hPa. Pierwszy typ rysunk\u00f3w pokazuje, jak do danego receptora dociera\u0142a trajektoria z zaznaczeniem jej po\u0142o\u017cenia w przestrzeni w ci\u0105gu ostatnich siedmiu dni. Z kolei rysunki drugiego typu prezentuj\u0105 ruch danej cz\u0105stki powietrza w p\u0142aszczy\u017anie pionowej w ca\u0142ym okresie \u201cpodr\u00f3\u017cy\u201d od \u017ar\u00f3d\u0142a, czyli punktu pocz\u0105tkowego trajektorii do receptora.\u00a0\u00a0<\/p>\n","protected":false},"author":11,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"off","ocean_display_header":"off","ocean_header_style":"custom","ocean_center_header_left_menu":"0","ocean_custom_header_template":"2993","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.5.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>TRAJEKTORIE - Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cmm.imgw.pl\/?page_id=46568\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trajektorie wsteczne - CMM - IMGW-PIB\" \/>\n<meta property=\"og:description\" content=\"Trajektorie wsteczne obliczane s\u0105 na podstawie prognoz z siedmiu poprzednich dni. Okre\u015blaj\u0105, sk\u0105d docieraj\u0105 masy powietrza do danego punktu (receptora) na przyk\u0142ad w Polsce dla trzech podstawowych wysoko\u015bci \u2013 poziom\u00f3w ci\u015bnieniowych \u2013 950, 850 i 700 hPa. Pierwszy typ rysunk\u00f3w pokazuje, jak do danego receptora dociera\u0142a trajektoria z zaznaczeniem jej po\u0142o\u017cenia w przestrzeni w ci\u0105gu ostatnich siedmiu dni. Z kolei rysunki drugiego typu prezentuj\u0105 ruch danej cz\u0105stki powietrza w p\u0142aszczy\u017anie pionowej w ca\u0142ym okresie \u201cpodr\u00f3\u017cy\u201d od \u017ar\u00f3d\u0142a, czyli punktu pocz\u0105tkowego trajektorii do receptora.\u00a0\u00a0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cmm.imgw.pl\/?page_id=46568\" \/>\n<meta property=\"og:site_name\" content=\"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Meteoimgw\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-04T08:58:23+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/cmm.imgw.pl\/wp-content\/uploads\/2022\/12\/20221206_06_Warszawa.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2300\" \/>\n\t<meta property=\"og:image:height\" content=\"2000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Trajektorie wsteczne - CMM - IMGW-PIB\" \/>\n<meta name=\"twitter:description\" content=\"Trajektorie wsteczne obliczane s\u0105 na podstawie prognoz z siedmiu poprzednich dni. Okre\u015blaj\u0105, sk\u0105d docieraj\u0105 masy powietrza do danego punktu (receptora) na przyk\u0142ad w Polsce dla trzech podstawowych wysoko\u015bci \u2013 poziom\u00f3w ci\u015bnieniowych \u2013 950, 850 i 700 hPa. Pierwszy typ rysunk\u00f3w pokazuje, jak do danego receptora dociera\u0142a trajektoria z zaznaczeniem jej po\u0142o\u017cenia w przestrzeni w ci\u0105gu ostatnich siedmiu dni. Z kolei rysunki drugiego typu prezentuj\u0105 ruch danej cz\u0105stki powietrza w p\u0142aszczy\u017anie pionowej w ca\u0142ym okresie \u201cpodr\u00f3\u017cy\u201d od \u017ar\u00f3d\u0142a, czyli punktu pocz\u0105tkowego trajektorii do receptora.\u00a0\u00a0\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/cmm.imgw.pl\/wp-content\/uploads\/2022\/12\/20221206_06_Warszawa.png\" \/>\n<meta name=\"twitter:site\" content=\"@IMGW_CMM\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cmm.imgw.pl\/?page_id=46568\",\"url\":\"https:\/\/cmm.imgw.pl\/?page_id=46568\",\"name\":\"TRAJEKTORIE - Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB\",\"isPartOf\":{\"@id\":\"https:\/\/cmm.imgw.pl\/#website\"},\"datePublished\":\"2025-09-29T09:23:30+00:00\",\"dateModified\":\"2025-11-04T08:58:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cmm.imgw.pl\/?page_id=46568#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cmm.imgw.pl\/?page_id=46568\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cmm.imgw.pl\/?page_id=46568#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cmm.imgw.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TRAJEKTORIE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cmm.imgw.pl\/#website\",\"url\":\"https:\/\/cmm.imgw.pl\/\",\"name\":\"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB\",\"description\":\"CMOK-LMM Laboratorium pe\u0142ni pa\u0144stwow\u0105 s\u0142u\u017cb\u0119 hydrologiczno-meteorologiczn\u0105 w zakresie numerycznych prognoz pogody, kt\u00f3rego zadaniem jest konsolidacja kompetencji w obszarze modelowania zjawisk pogodowych oraz dalszego rozwoju numerycznych modeli pogody (NMP).\",\"publisher\":{\"@id\":\"https:\/\/cmm.imgw.pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cmm.imgw.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cmm.imgw.pl\/#organization\",\"name\":\"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB\",\"url\":\"https:\/\/cmm.imgw.pl\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/Meteoimgw\/\",\"https:\/\/twitter.com\/IMGW_CMM\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/cmm.imgw.pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cmm.imgw.pl\/wp-content\/uploads\/2025\/10\/MODELE_LOGO_UNIFIKACJA_v2.png\",\"contentUrl\":\"https:\/\/cmm.imgw.pl\/wp-content\/uploads\/2025\/10\/MODELE_LOGO_UNIFIKACJA_v2.png\",\"width\":1356,\"height\":365,\"caption\":\"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB\"},\"image\":{\"@id\":\"https:\/\/cmm.imgw.pl\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TRAJEKTORIE - Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cmm.imgw.pl\/?page_id=46568","og_locale":"pl_PL","og_type":"article","og_title":"Trajektorie wsteczne - CMM - IMGW-PIB","og_description":"Trajektorie wsteczne obliczane s\u0105 na podstawie prognoz z siedmiu poprzednich dni. Okre\u015blaj\u0105, sk\u0105d docieraj\u0105 masy powietrza do danego punktu (receptora) na przyk\u0142ad w Polsce dla trzech podstawowych wysoko\u015bci \u2013 poziom\u00f3w ci\u015bnieniowych \u2013 950, 850 i 700 hPa. Pierwszy typ rysunk\u00f3w pokazuje, jak do danego receptora dociera\u0142a trajektoria z zaznaczeniem jej po\u0142o\u017cenia w przestrzeni w ci\u0105gu ostatnich siedmiu dni. Z kolei rysunki drugiego typu prezentuj\u0105 ruch danej cz\u0105stki powietrza w p\u0142aszczy\u017anie pionowej w ca\u0142ym okresie \u201cpodr\u00f3\u017cy\u201d od \u017ar\u00f3d\u0142a, czyli punktu pocz\u0105tkowego trajektorii do receptora.\u00a0\u00a0","og_url":"https:\/\/cmm.imgw.pl\/?page_id=46568","og_site_name":"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB","article_publisher":"https:\/\/www.facebook.com\/Meteoimgw\/","article_modified_time":"2025-11-04T08:58:23+00:00","og_image":[{"width":2300,"height":2000,"url":"http:\/\/cmm.imgw.pl\/wp-content\/uploads\/2022\/12\/20221206_06_Warszawa.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_title":"Trajektorie wsteczne - CMM - IMGW-PIB","twitter_description":"Trajektorie wsteczne obliczane s\u0105 na podstawie prognoz z siedmiu poprzednich dni. Okre\u015blaj\u0105, sk\u0105d docieraj\u0105 masy powietrza do danego punktu (receptora) na przyk\u0142ad w Polsce dla trzech podstawowych wysoko\u015bci \u2013 poziom\u00f3w ci\u015bnieniowych \u2013 950, 850 i 700 hPa. Pierwszy typ rysunk\u00f3w pokazuje, jak do danego receptora dociera\u0142a trajektoria z zaznaczeniem jej po\u0142o\u017cenia w przestrzeni w ci\u0105gu ostatnich siedmiu dni. Z kolei rysunki drugiego typu prezentuj\u0105 ruch danej cz\u0105stki powietrza w p\u0142aszczy\u017anie pionowej w ca\u0142ym okresie \u201cpodr\u00f3\u017cy\u201d od \u017ar\u00f3d\u0142a, czyli punktu pocz\u0105tkowego trajektorii do receptora.\u00a0\u00a0","twitter_image":"https:\/\/cmm.imgw.pl\/wp-content\/uploads\/2022\/12\/20221206_06_Warszawa.png","twitter_site":"@IMGW_CMM","twitter_misc":{"Szacowany czas czytania":"1 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cmm.imgw.pl\/?page_id=46568","url":"https:\/\/cmm.imgw.pl\/?page_id=46568","name":"TRAJEKTORIE - Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB","isPartOf":{"@id":"https:\/\/cmm.imgw.pl\/#website"},"datePublished":"2025-09-29T09:23:30+00:00","dateModified":"2025-11-04T08:58:23+00:00","breadcrumb":{"@id":"https:\/\/cmm.imgw.pl\/?page_id=46568#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cmm.imgw.pl\/?page_id=46568"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cmm.imgw.pl\/?page_id=46568#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cmm.imgw.pl\/"},{"@type":"ListItem","position":2,"name":"TRAJEKTORIE"}]},{"@type":"WebSite","@id":"https:\/\/cmm.imgw.pl\/#website","url":"https:\/\/cmm.imgw.pl\/","name":"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB","description":"CMOK-LMM Laboratorium pe\u0142ni pa\u0144stwow\u0105 s\u0142u\u017cb\u0119 hydrologiczno-meteorologiczn\u0105 w zakresie numerycznych prognoz pogody, kt\u00f3rego zadaniem jest konsolidacja kompetencji w obszarze modelowania zjawisk pogodowych oraz dalszego rozwoju numerycznych modeli pogody (NMP).","publisher":{"@id":"https:\/\/cmm.imgw.pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cmm.imgw.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/cmm.imgw.pl\/#organization","name":"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB","url":"https:\/\/cmm.imgw.pl\/","sameAs":["https:\/\/www.facebook.com\/Meteoimgw\/","https:\/\/twitter.com\/IMGW_CMM"],"logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/cmm.imgw.pl\/#\/schema\/logo\/image\/","url":"https:\/\/cmm.imgw.pl\/wp-content\/uploads\/2025\/10\/MODELE_LOGO_UNIFIKACJA_v2.png","contentUrl":"https:\/\/cmm.imgw.pl\/wp-content\/uploads\/2025\/10\/MODELE_LOGO_UNIFIKACJA_v2.png","width":1356,"height":365,"caption":"Laboratorium Modelowania Meteorologicznego CMOK IMGW-PIB"},"image":{"@id":"https:\/\/cmm.imgw.pl\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=\/wp\/v2\/pages\/46568"}],"collection":[{"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=46568"}],"version-history":[{"count":112,"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=\/wp\/v2\/pages\/46568\/revisions"}],"predecessor-version":[{"id":47361,"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=\/wp\/v2\/pages\/46568\/revisions\/47361"}],"wp:attachment":[{"href":"https:\/\/cmm.imgw.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=46568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}