{"id":227,"date":"2026-09-06T13:20:48","date_gmt":"2026-09-06T11:20:48","guid":{"rendered":"http:\/\/meteoevreux.ddns.net\/wpsite\/?page_id=227"},"modified":"2026-09-17T17:57:17","modified_gmt":"2026-09-17T15:57:17","slug":"227-2","status":"publish","type":"page","link":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/227-2\/","title":{"rendered":"Donn\u00e9es depuis 2016"},"content":{"rendered":"<style>.ws40-report-wrap{--r-accent:#1f7a8c;--r-head:#27496d;--r-line:#e6e9ee;--r-zebra:#f6f8fa;--r-hover:#eaf2f8;--r-muted:#8c8f94;--r-ink:#1d2327;background:#fff;border:1px solid var(--r-line);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.05);overflow:hidden;color:var(--r-ink);margin:0 0 16px}\n.ws40-report-wrap>.ws40-report__head{position:relative;margin:0 !important;padding:15px 20px 13px 24px;font-size:16px;font-weight:600;border-bottom:1px solid var(--r-line)}\n.ws40-report-wrap>.ws40-report__head::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--r-accent)}\n.ws40-report-wrap .ws40-report{overflow-x:auto}\n.ws40-report-wrap .ws40-report .ws40-report__head{margin:0 0 4px !important;padding:13px 20px 0;font-size:13.5px;font-weight:600;color:var(--r-ink)}\n.ws40-report-wrap .ws40-report__bulletin{margin:0 !important;padding:14px 20px 14px 23px;background:#fbfcfd;border-left:3px solid var(--r-accent);border-bottom:1px solid var(--r-line);line-height:1.6}\n.ws40-report-wrap .ws40-report__t{width:100%;border-collapse:collapse}\n.ws40-report-wrap .ws40-report__t thead th{background:var(--r-head);color:#fff;font-weight:600;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;padding:10px 14px !important;border-bottom:0 !important;white-space:nowrap}\n.ws40-report-wrap .ws40-report__t tbody td{padding:9px 14px !important;border-bottom:1px solid var(--r-line) !important;font-variant-numeric:tabular-nums}\n.ws40-report-wrap .ws40-report__t tbody td:first-child{font-weight:600;color:var(--r-ink)}\n.ws40-report-wrap .ws40-report__t th:first-child,.ws40-report-wrap .ws40-report__t td:first-child{padding-left:20px !important}\n.ws40-report-wrap .ws40-report__t th:last-child,.ws40-report-wrap .ws40-report__t td:last-child{padding-right:20px !important}\n.ws40-report-wrap .ws40-report__t tbody tr:nth-child(even) td{background:var(--r-zebra)}\n.ws40-report-wrap .ws40-report__t tbody tr:hover td{background:var(--r-hover)}\n.ws40-report-wrap .ws40-report__t tbody tr:last-child td{border-bottom:0 !important}\n.ws40-report-wrap .ws40-report__counts{padding:14px 20px;border-top:1px solid var(--r-line);background:#fbfcfd}\n.ws40-report-wrap .ws40-report__counts>div:first-child{font-size:12px !important;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--r-muted);margin:0 0 8px !important}\n.ws40-report-wrap .ws40-report__counts ul{list-style:none !important;margin:0 !important;padding:0 !important;display:flex;flex-wrap:wrap;gap:8px}\n.ws40-report-wrap .ws40-report__counts li{display:inline-flex;align-items:baseline;gap:7px;border:1px solid var(--r-line);background:#fff;border-radius:999px;padding:6px 12px;font-size:12.5px;color:#3c434a}\n.ws40-report-wrap .ws40-report__counts li strong{color:var(--r-accent);font-size:14px}\n.ws40-report-wrap .ws40-report__legend{padding:12px 20px 16px;font-size:11.5px;color:var(--r-muted);font-style:italic}\n.ws40-report-wrap .ws40-report--empty{padding:18px 20px;color:var(--r-muted)}\n.ws40-report-wrap .ws40-explorer{padding:16px 18px}<\/style><div class=\"ws40-report-wrap\"><style>.ws40-explorer{--exp-line:#e2e4e7;--exp-line2:#c3c4c7;--exp-muted:#646970;--exp-hint:#8c8f94;--exp-info:#2271b1;--exp-info-bg:#f0f6fc;--exp-info-line:#9ec2e6;font-size:14px;color:#1d2327}\n.ws40-explorer .exp-lbl{font-size:12px;color:var(--exp-muted);margin:0 0 6px}\n.ws40-explorer .exp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}\n.ws40-explorer .exp-chip{border:1px solid var(--exp-line2);background:#fff;color:#1d2327;border-radius:6px;padding:6px 11px;font-size:12px;cursor:pointer;line-height:1.2}\n.ws40-explorer .exp-chip.on{border-color:var(--exp-info-line);background:var(--exp-info-bg);color:var(--exp-info)}\n.ws40-explorer .exp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}\n.ws40-explorer .exp-grid label{display:block;font-size:12px;color:var(--exp-muted);margin-bottom:4px}\n.ws40-explorer .exp-grid input,.ws40-explorer .exp-grid select{width:100%;padding:7px 9px;border:1px solid var(--exp-line2);border-radius:6px;background:#fff;color:#1d2327;font:inherit}\n.ws40-explorer .exp-status{font-size:13px;color:var(--exp-muted);margin:6px 0 8px;min-height:18px}\n.ws40-explorer .exp-tbl-wrap{overflow-x:auto}\n.ws40-explorer table.exp-tbl{width:100%;border-collapse:collapse;font-size:13px}\n.ws40-explorer table.exp-tbl th{text-align:right;padding:8px;border-bottom:2px solid var(--exp-line2);font-weight:600;white-space:nowrap}\n.ws40-explorer table.exp-tbl td{text-align:right;padding:7px 8px;border-bottom:1px solid var(--exp-line);white-space:nowrap}\n.ws40-explorer table.exp-tbl th:first-child,.ws40-explorer table.exp-tbl td:first-child{text-align:left}\n.ws40-explorer table.exp-tbl th.exp-sort{cursor:pointer}\n.ws40-explorer .exp-when{color:var(--exp-hint);font-size:11px;margin-left:6px}\n.ws40-explorer table.exp-tbl th.exp-sort{cursor:pointer;user-select:none}\n.ws40-explorer .exp-range{font-size:12px;color:var(--exp-muted);margin:0 0 6px}\n.ws40-explorer .exp-pager{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:12px;font-size:13px;color:#3c434a}\n.ws40-explorer .exp-pager-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}\n.ws40-explorer .exp-pager button{font:inherit;border:1px solid var(--exp-line2);background:#fff;border-radius:6px;padding:6px 11px;cursor:pointer;color:#1d2327}\n.ws40-explorer .exp-pager button:disabled{opacity:.45;cursor:default}\n.ws40-explorer .exp-pageinfo{padding:0 6px;color:var(--exp-muted)}\n.ws40-explorer .exp-pp-wrap{font-size:12px;color:var(--exp-muted)}\n.ws40-explorer .exp-pp{font:inherit;padding:5px 8px;border:1px solid var(--exp-line2);border-radius:6px;background:#fff;color:#1d2327;margin-left:6px}\n.ws40-explorer .exp-note{color:var(--exp-hint);font-size:12px;margin-top:8px}\n.ws40-explorer .exp-cal-wrap{overflow-x:auto;padding-bottom:6px}\n.ws40-explorer table.exp-cal{border-collapse:separate;border-spacing:2px;font-size:11px}\n.ws40-explorer table.exp-cal th{font-weight:400;color:var(--exp-muted);padding:0 2px;text-align:center;min-width:24px}\n.ws40-explorer table.exp-cal th.exp-cal-m{text-align:left;padding-right:8px;white-space:nowrap;color:#1d2327}\n.ws40-explorer table.exp-cal td.exp-cc{width:24px;height:24px;min-width:24px;text-align:center;border-radius:3px;background:#f0f0f1;cursor:default;font-size:10px;line-height:24px;padding:0}\n.ws40-explorer table.exp-cal td.exp-cc.x{background:transparent}\n.ws40-explorer table.exp-cal td.exp-cc.rh{box-shadow:inset 0 0 0 2px #1d2327}\n.ws40-explorer table.exp-cal td.exp-cc.rl{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 3px #1d2327}\n.ws40-explorer table.exp-cal td.exp-ct{padding:0 0 0 8px;text-align:left;white-space:nowrap;color:var(--exp-muted);font-size:11px}\n.ws40-explorer .exp-cal-detail{min-height:20px;font-size:13px;margin:8px 0}\n.ws40-explorer .exp-cal-legend{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--exp-muted);margin-top:6px}\n.ws40-explorer .exp-cal-bar{height:10px;width:200px;border-radius:3px}\n.ws40-explorer .exp-cal-ctl{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}\n.ws40-explorer .exp-cal-ctl select,.ws40-explorer .exp-cal-ctl input[type=number]{padding:6px 8px;border:1px solid var(--exp-line2);border-radius:6px;background:#fff;color:#1d2327;font:inherit}\n.ws40-explorer .exp-cal-ctl input[type=number]{width:80px}\n.ws40-explorer .exp-cal-ctl label.exp-cal-chk{display:flex;align-items:center;gap:6px;margin:0;padding-bottom:8px;align-self:flex-end}\n.ws40-explorer .exp-cal-ctl label.exp-cal-chk input{width:auto;margin:0}<\/style><script>(function(){\n  function init(root){\n    if(root.getAttribute('data-ws40-init')) return;\n    root.setAttribute('data-ws40-init','1');\n    var cfg; try{ cfg=JSON.parse(root.getAttribute('data-config')); }catch(e){ return; }\n    var T=cfg.i18n;\n    var controls=root.querySelector('.ws40-exp-controls');\n    var statusEl=root.querySelector('.ws40-exp-status');\n    var resultEl=root.querySelector('.ws40-exp-result');\n\n    var st={preset:'table',metrics:{},from:cfg.min,to:cfg.max,top:cfg.top[0].key,topDir:cfg.top[0].dir,sort:'date',dir:'desc',page:1,perPage:100,year:0,cvar:'tmax',cmode:'val',thr:null,pal:false,cal:null};\n    var PP=[50,100,200,500];\n    ((cfg.initial&&cfg.initial.length)?cfg.initial:['tmin','tavg','tmax','rain']).forEach(function(k){st.metrics[k]=true;}); \/\/ DT-100\n\n    function esc(s){return String(s).replace(\/[&<>\"]\/g,function(c){return{'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c];});}\n    function selMetrics(){var o=[];cfg.groups.forEach(function(g){g.metrics.forEach(function(m){if(st.metrics[m.key])o.push(m.key);});});return o;}\n    function noMetricModes(){return st.preset==='index'||st.preset==='dd'||st.preset==='top'||st.preset==='calendar';}\n\n    function buildControls(){\n      var h='';\n      h+='<div class=\"exp-lbl\">'+esc(T.reportType)+'<\/div><div class=\"exp-chips exp-presets\">';\n      cfg.presets.forEach(function(p){h+='<button type=\"button\" class=\"exp-chip'+(p.id===st.preset?' on':'')+'\" data-p=\"'+p.id+'\">'+esc(p.label)+'<\/button>';});\n      h+='<\/div>';\n      h+='<div class=\"exp-grid\"><div><label>'+esc(T.from)+'<\/label><input type=\"date\" class=\"exp-from\" min=\"'+cfg.min+'\" max=\"'+cfg.max+'\" value=\"'+st.from+'\"><\/div>';\n      h+='<div><label>'+esc(T.to)+'<\/label><input type=\"date\" class=\"exp-to\" min=\"'+cfg.min+'\" max=\"'+cfg.max+'\" value=\"'+st.to+'\"><\/div>';\n      h+='<div class=\"exp-ctx\"><\/div><\/div>';\n      h+='<div class=\"exp-metrics-row\"><div class=\"exp-lbl\">'+esc(T.metrics)+'<\/div><div class=\"exp-chips exp-metrics\"><\/div><\/div>';\n      controls.innerHTML=h;\n\n      controls.querySelectorAll('.exp-presets .exp-chip').forEach(function(b){b.onclick=function(){st.preset=b.getAttribute('data-p');st.sort='date';st.dir='desc';st.page=1;buildControls();load();};});\n      controls.querySelector('.exp-from').onchange=function(){st.from=this.value;st.page=1;load();};\n      controls.querySelector('.exp-to').onchange=function(){st.to=this.value;st.page=1;load();};\n      var gr=controls.querySelector('.exp-grid');if(st.preset==='calendar'){gr.querySelectorAll('div')[0].style.display='none';gr.querySelectorAll('div')[1].style.display='none';}\n      buildMetrics();\n      buildCtx();\n    }\n\n    function buildMetrics(){\n      var row=controls.querySelector('.exp-metrics-row');\n      row.style.display=noMetricModes()?'none':'block';\n      var host=controls.querySelector('.exp-metrics');\n      var h='';\n      cfg.groups.forEach(function(g){g.metrics.forEach(function(m){\n        h+='<button type=\"button\" class=\"exp-chip'+(st.metrics[m.key]?' on':'')+'\" data-m=\"'+m.key+'\">'+((m.label===g.label)?esc(m.label):(esc(g.label)+' \u00b7 '+esc(m.label)))+'<\/button>';\n      });});\n      host.innerHTML=h;\n      host.querySelectorAll('.exp-chip').forEach(function(b){b.onclick=function(){var k=b.getAttribute('data-m');st.metrics[k]=!st.metrics[k];st.page=1;buildMetrics();load();};});\n    }\n\n    function buildCtx(){\n      var ctx=controls.querySelector('.exp-ctx');\n      if(st.preset==='top'){\n        var opts=cfg.top.map(function(o){return '<option value=\"'+o.key+'|'+o.dir+'\"'+(o.key===st.top?' selected':'')+'>'+esc(o.label)+'<\/option>';}).join('');\n        ctx.innerHTML='<label>'+esc(T.rankBy)+'<\/label><select class=\"exp-top\">'+opts+'<\/select>';\n        ctx.querySelector('.exp-top').onchange=function(){var p=this.value.split('|');st.top=p[0];st.topDir=p[1];load();};\n      }else if(st.preset==='calendar'){buildCalCtx(ctx);\n      }else{ctx.innerHTML='';}\n    }\n\n    function qs(){\n      var p={station_id:cfg.station,from:st.from,to:st.to,mode:st.preset,metrics:selMetrics().join(','),page:st.page,per_page:st.perPage,sort:st.sort,dir:st.dir,top_metric:st.top,top_dir:st.topDir,year:st.year};\n      return Object.keys(p).map(function(k){return encodeURIComponent(k)+'='+encodeURIComponent(p[k]);}).join('&');\n    }\n\n    var reqId=0;\n    function load(){\n      if(!noMetricModes() && selMetrics().length===0){statusEl.textContent='';resultEl.innerHTML='<p class=\"exp-note\">'+esc(T.noMetrics)+'<\/p>';return;}\n      var mine=++reqId;\n      statusEl.textContent=T.loading;resultEl.innerHTML='';\n      fetch(cfg.rest+'?'+qs(),{headers:{'Accept':'application\/json'}}).then(function(r){return r.json();}).then(function(d){\n        if(mine!==reqId)return;\n        if(!d||!d.ok){statusEl.textContent='';resultEl.innerHTML='<p class=\"exp-note\">'+esc(T.empty)+'<\/p>';return;}\n        render(d);\n      }).catch(function(){if(mine!==reqId)return;statusEl.textContent='';resultEl.innerHTML='<p class=\"exp-note\">'+esc(T.error)+'<\/p>';});\n    }\n\n    function table(head,body){return '<div class=\"exp-tbl-wrap\"><table class=\"exp-tbl\"><thead><tr>'+head+'<\/tr><\/thead><tbody>'+body+'<\/tbody><\/table><\/div>';}\n    function th(label,align,cls,data){return '<th'+(align==='l'?' style=\"text-align:left\"':'')+(cls?' class=\"'+cls+'\"':'')+(data?' '+data:'')+'>'+esc(label)+'<\/th>';}\n\n    function render(d){\n      statusEl.textContent=(typeof d.days==='number'?(d.days+' '+T.days+' \u00b7 '):'')+(d.label||'');\n      if(d.mode==='table')return renderTable(d);\n      if(d.mode==='summary')return renderSummary(d);\n      if(d.mode==='extremes')return renderExtremes(d);\n      if(d.mode==='index')return renderIndex(d);\n      if(d.mode==='dd')return renderDD(d);\n      if(d.mode==='top')return renderTop(d);\n      if(d.mode==='calendar')return renderCalendar(d);\n    }\n\n    function renderTable(d){\n      var cols=d.columns||[];\n      var rows=d.rows||[];\n      var arrow=function(k){return (k===d.sort)?(d.dir==='asc'?' \\u25B2':' \\u25BC'):'';};\n      var head='<th class=\"exp-sort\" style=\"text-align:left\" data-s=\"date\">'+esc(T.date)+arrow('date')+'<\/th>';\n      cols.forEach(function(c){head+='<th class=\"exp-sort\" data-s=\"'+c.key+'\">'+esc(c.label)+arrow(c.key)+'<\/th>';});\n      var body=rows.map(function(r){\n        var tds='<td>'+esc(r.d)+'<\/td>';\n        cols.forEach(function(c){var cell=r.c[c.key];tds+='<td>'+(cell?esc(cell.s):'\\u2014')+'<\/td>';});\n        return '<tr>'+tds+'<\/tr>';\n      }).join('');\n\n      var s=d.total>0?((d.page-1)*d.perPage+1):0;\n      var e=d.total>0?(s+rows.length-1):0;\n      var ppOpts=PP.map(function(n){return '<option value=\"'+n+'\"'+(n===d.perPage?' selected':'')+'>'+n+'<\/option>';}).join('');\n      var pager='<div class=\"exp-pager\">'\n        +'<div class=\"exp-pager-nav\">'\n        +'<button type=\"button\" class=\"exp-first\"'+(d.page<=1?' disabled':'')+'>'+esc(T.first)+'<\/button>'\n        +'<button type=\"button\" class=\"exp-prev\"'+(d.page<=1?' disabled':'')+'>'+esc(T.prev)+'<\/button>'\n        +'<span class=\"exp-pageinfo\">'+esc(T.pageOf.replace('%1$d',d.page).replace('%2$d',d.pages))+'<\/span>'\n        +'<button type=\"button\" class=\"exp-next\"'+(d.page>=d.pages?' disabled':'')+'>'+esc(T.next)+'<\/button>'\n        +'<button type=\"button\" class=\"exp-last\"'+(d.page>=d.pages?' disabled':'')+'>'+esc(T.last)+'<\/button>'\n        +'<\/div>'\n        +'<label class=\"exp-pp-wrap\">'+esc(T.perPage)+' <select class=\"exp-pp\">'+ppOpts+'<\/select><\/label>'\n        +'<\/div>';\n      var rangeLine='<div class=\"exp-range\">'+esc(T.rangeOf.replace('%1$d',s).replace('%2$d',e).replace('%3$d',d.total))+'<\/div>';\n\n      resultEl.innerHTML=rangeLine+table(head,body)+pager;\n\n      resultEl.querySelectorAll('th.exp-sort').forEach(function(h){h.onclick=function(){\n        var k=h.getAttribute('data-s');\n        if(k===st.sort){st.dir=(st.dir==='asc'?'desc':'asc');}else{st.sort=k;st.dir='desc';}\n        st.page=1;load();\n      };});\n      var go=function(sel,fn){var b=resultEl.querySelector(sel);if(b)b.onclick=function(){if(b.disabled)return;fn();load();};};\n      go('.exp-first',function(){st.page=1;});\n      go('.exp-prev',function(){st.page=Math.max(1,d.page-1);});\n      go('.exp-next',function(){st.page=Math.min(d.pages,d.page+1);});\n      go('.exp-last',function(){st.page=d.pages;});\n      var pp=resultEl.querySelector('.exp-pp');if(pp)pp.onchange=function(){st.perPage=parseInt(this.value,10);st.page=1;load();};\n    }\n\n    function renderSummary(d){\n      var head=th(T.param,'l')+th(T.meanTot)+th(T.min)+th(T.max);\n      var body=(d.rows||[]).map(function(r){return '<tr><td>'+esc(r.label)+'<\/td><td>'+esc(r.main)+'<\/td><td>'+esc(r.min)+'<\/td><td>'+esc(r.max)+'<\/td><\/tr>';}).join('');\n      resultEl.innerHTML=table(head,body);\n    }\n\n    function renderExtremes(d){\n      var head=th(T.param,'l')+th(T.maximum)+th(T.minimum);\n      var body=(d.rows||[]).map(function(r){\n        var mx=esc(r.max)+(r.maxW?'<span class=\"exp-when\">'+esc(r.maxW)+'<\/span>':'');\n        var mn=r.min?(esc(r.min)+(r.minW?'<span class=\"exp-when\">'+esc(r.minW)+'<\/span>':'')):'\\u2014';\n        return '<tr><td>'+esc(r.label)+'<\/td><td>'+mx+'<\/td><td>'+mn+'<\/td><\/tr>';\n      }).join('');\n      resultEl.innerHTML=table(head,body);\n    }\n\n    function renderIndex(d){\n      var head=th(T.condition,'l')+th(T.count);\n      var body=(d.rows||[]).map(function(r){return '<tr><td>'+esc(r.label)+'<\/td><td style=\"font-weight:600\">'+esc(r.count)+'<\/td><\/tr>';}).join('');\n      resultEl.innerHTML=table(head,body);\n    }\n\n    function renderDD(d){\n      var head=th(T.ddBase+' '+d.base+' '+esc(d.baseUnit||'\\u00b0C'),'l')+th(T.total);\n      var body='<tr><td>'+esc(T.hdd)+'<\/td><td style=\"font-weight:600\">'+esc(d.hdd)+'<\/td><\/tr>'+\n               '<tr><td>'+esc(T.cdd)+'<\/td><td style=\"font-weight:600\">'+esc(d.cdd)+'<\/td><\/tr>';\n      resultEl.innerHTML=table(head,body);\n    }\n\n    function renderTop(d){\n      var head=th(T.rank,'l')+th(T.date,'l')+th(d.metricLabel);\n      var body=(d.rows||[]).map(function(r){return '<tr><td>'+esc(r.rank)+'<\/td><td>'+esc(r.when)+'<\/td><td style=\"font-weight:600\">'+esc(r.s)+'<\/td><\/tr>';}).join('');\n      resultEl.innerHTML=table(head,body);\n    }\n\n    \/* ---- Calendar (DT-110) ---- *\/\n    var CLASSIC=[[0,[60,120,190]],[0.2,[0,220,200]],[0.4,[90,230,40]],[0.6,[250,225,0]],[0.8,[255,140,0]],[1,[215,10,10]]];\n    var CBLIND=[[0,[68,1,84]],[0.25,[59,82,139]],[0.5,[33,145,140]],[0.75,[94,201,98]],[1,[253,231,37]]];\n    var RAINP=[[0,[245,248,252]],[0.5,[120,180,235]],[1,[20,70,170]]];\n    function grad(stops,t){\n      t=Math.max(0,Math.min(1,t));\n      for(var i=1;stops.length>i;i++){\n        if(stops[i][0]>=t){var a=stops[i-1],b=stops[i],u=(t-a[0])\/((b[0]-a[0])||1);\n          return [0,1,2].map(function(j){return Math.round(a[1][j]+(b[1][j]-a[1][j])*u);});}\n      }\n      return stops[stops.length-1][1];\n    }\n    function rgb(c){return 'rgb('+c[0]+','+c[1]+','+c[2]+')';}\n    function ink(c){return (0.299*c[0]+0.587*c[1]+0.114*c[2])>150?'#1d2327':'#fff';}\n    function isF(u){return \/F\/.test(u||'');}\n    function defThr(v,u){\n      if(v==='tmax')return isF(u)?86:30;\n      if(v==='tmin')return isF(u)?32:0;\n      return \/in\/.test(u||'')?0.04:1;\n    }\n    function buildCalCtx(ctx){\n      var c=st.cal;\n      var yrs='';\n      if(c){for(var y=c.maxYear;y>=c.minYear;y--){yrs+='<option value=\"'+y+'\"'+(y===c.year?' selected':'')+'>'+y+'<\/option>';}}\n      var vars=[['tmax',T.calTmax],['tmin',T.calTmin],['rain',T.calRain]].map(function(o){return '<option value=\"'+o[0]+'\"'+(o[0]===st.cvar?' selected':'')+'>'+esc(o[1])+'<\/option>';}).join('');\n      var modes=[['val',T.calValues],['norm',T.calNorm],['thr',T.calThr]].map(function(o){\n        var dis=(o[0]==='norm'&&st.cvar==='rain')?' disabled':'';\n        return '<option value=\"'+o[0]+'\"'+(o[0]===st.cmode?' selected':'')+dis+'>'+esc(o[1])+'<\/option>';}).join('');\n      var unit=c?c.units[st.cvar]:'';\n      if(st.thr===null)st.thr=defThr(st.cvar,unit);\n      var h='<label>'+esc(T.calYear)+'<\/label><select class=\"exp-cy\">'+yrs+'<\/select>';\n      ctx.innerHTML=h;\n      var row=document.createElement('div');row.className='exp-cal-ctl';row.style.gridColumn='1\/-1';\n      row.innerHTML='<label>'+esc(T.calVar)+' <select class=\"exp-cv\">'+vars+'<\/select><\/label>'\n        +'<label>'+esc(T.calMode)+' <select class=\"exp-cm\">'+modes+'<\/select><\/label>'\n        +(st.cmode==='thr'?'<label>'+esc(T.calThr)+' <input type=\"number\" class=\"exp-ct\" step=\"any\" value=\"'+st.thr+'\"> '+esc(unit)+'<\/label>':'')\n        +'<label class=\"exp-cal-chk\"><input type=\"checkbox\" class=\"exp-cp\"'+(st.pal?' checked':'')+'> '+esc(T.calPalette)+'<\/label>';\n      ctx.parentNode.appendChild(row);\n      ctx.querySelector('.exp-cy').onchange=function(){st.year=parseInt(this.value,10);load();};\n      row.querySelector('.exp-cv').onchange=function(){st.cvar=this.value;st.thr=null;if(st.cvar==='rain'&&st.cmode==='norm')st.cmode='val';redrawCal();};\n      row.querySelector('.exp-cm').onchange=function(){st.cmode=this.value;redrawCal();};\n      var ti=row.querySelector('.exp-ct');if(ti)ti.onchange=function(){var v=parseFloat(this.value);if(!isNaN(v)){st.thr=v;paintCal();}};\n      row.querySelector('.exp-cp').onchange=function(){st.pal=this.checked;paintCal();};\n    }\n    function redrawCal(){\n      var old=controls.querySelector('.exp-cal-ctl');if(old)old.parentNode.removeChild(old);\n      buildCalCtx(controls.querySelector('.exp-ctx'));paintCal();\n    }\n    function renderCalendar(d){\n      var first=!st.cal;\n      st.cal=d;st.year=d.year;\n      var old=controls.querySelector('.exp-cal-ctl');if(old)old.parentNode.removeChild(old);\n      buildCalCtx(controls.querySelector('.exp-ctx'));\n      statusEl.textContent=String(d.year);\n      paintCal();\n    }\n    function pad(n){return (9>=n?'0':'')+n;}\n    function paintCal(){\n      var d=st.cal;if(!d)return;\n      var v=st.cvar,days=d.days||{},mode=(v==='rain'&&st.cmode==='norm')?'val':st.cmode;\n      var dec=d.decimals[v],unit=d.units[v];\n      var fmt=function(x){return x===null||x===undefined?'\u2014':x.toFixed(dec)+(unit?' '+unit:'');};\n      var vals=[],byM=[];\n      for(var m=0;12>m;m++){byM[m]=[];}\n      Object.keys(days).forEach(function(k){var x=days[k][v];if(x!==null&&x!==undefined){vals.push(x);byM[parseInt(k.substr(5,2),10)-1].push(x);}});\n      if(!vals.length){resultEl.innerHTML='<p class=\"exp-note\">'+esc(T.empty)+'<\/p>';return;}\n      var vmin=Math.min.apply(null,vals),vmax=Math.max.apply(null,vals);\n      var mean=byM.map(function(a){return a.length?a.reduce(function(s,x){return s+x;},0)\/a.length:null;});\n      var stops=(v==='rain')?RAINP:(st.pal?CBLIND:CLASSIC);\n      var maxDev=0;\n      if(mode==='norm'){Object.keys(days).forEach(function(k){var x=days[k][v];var mm=mean[parseInt(k.substr(5,2),10)-1];if(x!==null&&x!==undefined&&mm!==null)maxDev=Math.max(maxDev,Math.abs(x-mm));});if(!maxDev)maxDev=1;}\n      var lowIsHit=(v==='tmin');\n      var h='<div class=\"exp-cal-detail\">'+esc(T.calHint)+'<\/div><div class=\"exp-cal-wrap\"><table class=\"exp-cal\"><thead><tr><th><\/th>';\n      for(var dd=1;31>=dd;dd++)h+='<th>'+dd+'<\/th>';\n      h+='<th><\/th><\/tr><\/thead><tbody>';\n      for(m=0;12>m;m++){\n        var dim=new Date(d.year,m+1,0).getDate();\n        var mn=new Date(d.year,m,1).toLocaleString(document.documentElement.lang||undefined,{month:'short'});\n        h+='<tr><th class=\"exp-cal-m\">'+esc(mn)+'<\/th>';\n        var hits=0;\n        for(dd=1;31>=dd;dd++){\n          if(dd>dim){h+='<td class=\"exp-cc x\"><\/td>';continue;}\n          var key=d.year+'-'+pad(m+1)+'-'+pad(dd),x=days[key]?days[key][v]:null;\n          if(x===null||x===undefined){h+='<td class=\"exp-cc\" data-k=\"'+key+'\"><\/td>';continue;}\n          var col,txt='',cls='exp-cc';\n          if(mode==='thr'){\n            var hit=lowIsHit?(st.thr>=x):(x>=st.thr);\n            if(hit){hits++;col=st.pal?[33,145,140]:[24,95,165];}else{col=[236,238,240];}\n            txt=hit?'\u25cf':'';\n          }else if(mode==='norm'){\n            var dev=x-mean[m];var t=0.5+0.5*dev\/maxDev;\n            var endc=st.pal?[230,120,0]:[210,40,40];\n            col=t>=0.5?[0,1,2].map(function(j){return Math.round(250+(endc[j]-250)*(t-0.5)*2);}):[0,1,2].map(function(j){return Math.round(250+([40,110,200][j]-250)*(0.5-t)*2);});\n          }else{\n            col=grad(stops,vmax===vmin?0.5:(x-vmin)\/(vmax-vmin));\n          }\n          if(mode!=='thr'&&x===vmax)cls+=' rh';\n          if(mode!=='thr'&&v!=='rain'&&x===vmin)cls+=' rl';\n          h+='<td class=\"'+cls+'\" data-k=\"'+key+'\" style=\"background:'+rgb(col)+';color:'+ink(col)+'\">'+txt+'<\/td>';\n        }\n        var foot;\n        if(mode==='thr')foot=hits+' '+T.calDays;\n        else if(v==='rain')foot=T.calTot+' '+byM[m].reduce(function(s,y){return s+y;},0).toFixed(dec)+(unit?' '+unit:'');\n        else foot=mean[m]===null?'\u2014':T.calAvg+' '+mean[m].toFixed(dec)+(unit?' '+unit:'');\n        h+='<td class=\"exp-ct\">'+esc(foot)+'<\/td><\/tr>';\n      }\n      h+='<\/tbody><\/table><\/div>';\n      var bar,l1,l2;\n      if(mode==='thr'){bar='';l1='';l2='';}\n      else if(mode==='norm'){var e=st.pal?'230,120,0':'210,40,40';bar='linear-gradient(90deg,rgb(40,110,200),rgb(250,250,250),rgb('+e+'))';l1='\u2212'+maxDev.toFixed(dec);l2='+'+maxDev.toFixed(dec)+(unit?' '+unit:'');}\n      else{bar='linear-gradient(90deg,'+stops.map(function(sp){return rgb(sp[1])+' '+Math.round(sp[0]*100)+'%';}).join(',')+')';l1=vmin.toFixed(dec);l2=vmax.toFixed(dec)+(unit?' '+unit:'');}\n      if(bar)h+='<div class=\"exp-cal-legend\"><span>'+l1+'<\/span><span class=\"exp-cal-bar\" style=\"background:'+bar+'\"><\/span><span>'+l2+'<\/span><\/div>';\n      resultEl.innerHTML=h;\n      var det=resultEl.querySelector('.exp-cal-detail');\n      var show=function(td){\n        var k=td.getAttribute('data-k');if(!k)return;\n        var r=days[k];\n        if(!r||r[v]===null||r[v]===undefined){det.textContent=k+' \u00b7 '+T.calNoData;return;}\n        var s='<strong>'+esc(k)+'<\/strong> \u00b7 '+esc(T.calTmax)+' '+fmt2(r.tmax,'tmax')+' \u00b7 '+esc(T.calTmin)+' '+fmt2(r.tmin,'tmin')+' \u00b7 '+esc(T.calRain)+' '+fmt2(r.rain,'rain');\n        var mm2=mean[parseInt(k.substr(5,2),10)-1];\n        if(v!=='rain'&&mm2!==null){var dv=r[v]-mm2;s+=' \u00b7 '+(dv>=0?'+':'')+dv.toFixed(dec)+' '+esc(T.calVsMonth);}\n        if(r[v]===vmax)s+=' \u00b7 '+esc(T.calRecHi);\n        if(v!=='rain'&&r[v]===vmin)s+=' \u00b7 '+esc(T.calRecLo);\n        det.innerHTML=s;\n      };\n      function fmt2(x,k){return x===null||x===undefined?'\u2014':x.toFixed(d.decimals[k])+(d.units[k]?' '+d.units[k]:'');}\n      resultEl.querySelectorAll('td.exp-cc[data-k]').forEach(function(td){td.onmouseenter=function(){show(td);};td.onclick=function(){show(td);};});\n    }\n\n    buildControls();\n    load();\n  }\n  function boot(){document.querySelectorAll('.ws40-explorer[data-config]').forEach(init);}\n  if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',boot);}else{boot();}\n})();<\/script><div class=\"ws40-explorer\" id=\"ws40exp-1d67b781-88f8-4ccf-9e0d-a30b592e4106\" data-config=\"{&quot;rest&quot;:&quot;https:\\\/\\\/evreuxmeteo.fr\\\/wpsite\\\/index.php\\\/wp-json\\\/ws40\\\/v1\\\/report-explorer&quot;,&quot;station&quot;:1,&quot;min&quot;:&quot;2016-01-01&quot;,&quot;max&quot;:&quot;2026-11-06&quot;,&quot;groups&quot;:[{&quot;key&quot;:&quot;temp&quot;,&quot;label&quot;:&quot;Temp\\u00e9rature&quot;,&quot;metrics&quot;:[{&quot;key&quot;:&quot;tmin&quot;,&quot;label&quot;:&quot;Min.&quot;},{&quot;key&quot;:&quot;tavg&quot;,&quot;label&quot;:&quot;Moyenne&quot;},{&quot;key&quot;:&quot;tmax&quot;,&quot;label&quot;:&quot;Max.&quot;}]},{&quot;key&quot;:&quot;hum&quot;,&quot;label&quot;:&quot;Humidit\\u00e9&quot;,&quot;metrics&quot;:[{&quot;key&quot;:&quot;hum&quot;,&quot;label&quot;:&quot;Humidit\\u00e9&quot;},{&quot;key&quot;:&quot;dew&quot;,&quot;label&quot;:&quot;Point de ros\\u00e9e&quot;}]},{&quot;key&quot;:&quot;press&quot;,&quot;label&quot;:&quot;Pression&quot;,&quot;metrics&quot;:[{&quot;key&quot;:&quot;press&quot;,&quot;label&quot;:&quot;Pression&quot;}]},{&quot;key&quot;:&quot;wind&quot;,&quot;label&quot;:&quot;Vent&quot;,&quot;metrics&quot;:[{&quot;key&quot;:&quot;wind&quot;,&quot;label&quot;:&quot;Moyenne&quot;},{&quot;key&quot;:&quot;windmax&quot;,&quot;label&quot;:&quot;Vent max&quot;},{&quot;key&quot;:&quot;gust&quot;,&quot;label&quot;:&quot;Rafale la plus forte&quot;},{&quot;key&quot;:&quot;gust_sampled&quot;,&quot;label&quot;:&quot;Rafale \\u00e9chantillonn\\u00e9e&quot;}]},{&quot;key&quot;:&quot;rain&quot;,&quot;label&quot;:&quot;Pluie&quot;,&quot;metrics&quot;:[{&quot;key&quot;:&quot;rain&quot;,&quot;label&quot;:&quot;Total&quot;},{&quot;key&quot;:&quot;rainrate&quot;,&quot;label&quot;:&quot;Intensit\\u00e9&quot;}]},{&quot;key&quot;:&quot;sun&quot;,&quot;label&quot;:&quot;Soleil&quot;,&quot;metrics&quot;:[{&quot;key&quot;:&quot;radiation&quot;,&quot;label&quot;:&quot;Rayonnement&quot;},{&quot;key&quot;:&quot;uv&quot;,&quot;label&quot;:&quot;UV&quot;}]}],&quot;presets&quot;:[{&quot;id&quot;:&quot;table&quot;,&quot;label&quot;:&quot;Tableau journalier&quot;},{&quot;id&quot;:&quot;summary&quot;,&quot;label&quot;:&quot;R\\u00e9sum\\u00e9 de la p\\u00e9riode&quot;},{&quot;id&quot;:&quot;extremes&quot;,&quot;label&quot;:&quot;Extr\\u00eames et records&quot;},{&quot;id&quot;:&quot;index&quot;,&quot;label&quot;:&quot;Jours indices&quot;},{&quot;id&quot;:&quot;dd&quot;,&quot;label&quot;:&quot;Degr\\u00e9s-jours&quot;},{&quot;id&quot;:&quot;top&quot;,&quot;label&quot;:&quot;Top 10&quot;},{&quot;id&quot;:&quot;calendar&quot;,&quot;label&quot;:&quot;Calendrier&quot;}],&quot;top&quot;:[{&quot;key&quot;:&quot;tmax&quot;,&quot;dir&quot;:&quot;desc&quot;,&quot;label&quot;:&quot;Plus chauds (Tmax)&quot;},{&quot;key&quot;:&quot;tmin&quot;,&quot;dir&quot;:&quot;asc&quot;,&quot;label&quot;:&quot;Plus froids (Tmin)&quot;},{&quot;key&quot;:&quot;rain&quot;,&quot;dir&quot;:&quot;desc&quot;,&quot;label&quot;:&quot;Plus pluvieux&quot;},{&quot;key&quot;:&quot;gust&quot;,&quot;dir&quot;:&quot;desc&quot;,&quot;label&quot;:&quot;Plus venteux&quot;}],&quot;i18n&quot;:{&quot;reportType&quot;:&quot;Type de rapport&quot;,&quot;metrics&quot;:&quot;Mesures&quot;,&quot;from&quot;:&quot;Du&quot;,&quot;to&quot;:&quot;Au&quot;,&quot;rankBy&quot;:&quot;Classer par&quot;,&quot;loading&quot;:&quot;Chargement\\u2026&quot;,&quot;empty&quot;:&quot;Aucune donn\\u00e9e pour les filtres s\\u00e9lectionn\\u00e9s&quot;,&quot;error&quot;:&quot;Impossible de charger les donn\\u00e9es&quot;,&quot;days&quot;:&quot;jours&quot;,&quot;date&quot;:&quot;Date&quot;,&quot;param&quot;:&quot;Param\\u00e8tre&quot;,&quot;meanTot&quot;:&quot;Moyenne \\\/ Total&quot;,&quot;min&quot;:&quot;Min.&quot;,&quot;max&quot;:&quot;Max.&quot;,&quot;maximum&quot;:&quot;Maximum&quot;,&quot;minimum&quot;:&quot;Minimum&quot;,&quot;condition&quot;:&quot;Condition&quot;,&quot;count&quot;:&quot;Jours&quot;,&quot;hdd&quot;:&quot;Chauffage (HDD)&quot;,&quot;cdd&quot;:&quot;Refroidissement (CDD)&quot;,&quot;ddBase&quot;:&quot;Base&quot;,&quot;total&quot;:&quot;Total&quot;,&quot;rank&quot;:&quot;Rang&quot;,&quot;noMetrics&quot;:&quot;S\\u00e9lectionnez au moins une mesure&quot;,&quot;perPage&quot;:&quot;Lignes par page&quot;,&quot;pageOf&quot;:&quot;Page %1$d sur %2$d&quot;,&quot;rangeOf&quot;:&quot;%1$d\\u2013%2$d sur %3$d jours&quot;,&quot;first&quot;:&quot;\\u00ab Premi\\u00e8re&quot;,&quot;prev&quot;:&quot;\\u2039 Pr\\u00e9c.&quot;,&quot;next&quot;:&quot;Suiv. \\u203a&quot;,&quot;last&quot;:&quot;Derni\\u00e8re \\u00bb&quot;,&quot;calYear&quot;:&quot;Ann\\u00e9e&quot;,&quot;calVar&quot;:&quot;Variable&quot;,&quot;calMode&quot;:&quot;Coloration&quot;,&quot;calValues&quot;:&quot;Valeurs&quot;,&quot;calNorm&quot;:&quot;Par rapport \\u00e0 la norme&quot;,&quot;calThr&quot;:&quot;Seuil&quot;,&quot;calTmax&quot;:&quot;Temp\\u00e9rature max&quot;,&quot;calTmin&quot;:&quot;Temp\\u00e9rature min&quot;,&quot;calRain&quot;:&quot;Pluie&quot;,&quot;calPalette&quot;:&quot;Palette daltonien&quot;,&quot;calAvg&quot;:&quot;Moyenne&quot;,&quot;calTot&quot;:&quot;Total&quot;,&quot;calDays&quot;:&quot;Jours&quot;,&quot;calRecHi&quot;:&quot;Record de l&#039;ann\\u00e9e (maximum)&quot;,&quot;calRecLo&quot;:&quot;Record de l&#039;ann\\u00e9e (minimum)&quot;,&quot;calHint&quot;:&quot;Survolez ou touchez un jour pour les d\\u00e9tails. Les anneaux marquent les records de l&#039;ann\\u00e9e. \\u00ab Par rapport \\u00e0 la norme \\u00bb compare chaque jour \\u00e0 la moyenne de son mois dans l&#039;ann\\u00e9e choisie.&quot;,&quot;calNoData&quot;:&quot;Aucune donn\\u00e9e&quot;,&quot;calVsMonth&quot;:&quot;par rapport \\u00e0 la moyenne du mois&quot;},&quot;initial&quot;:[&quot;tmin&quot;,&quot;tavg&quot;,&quot;tmax&quot;,&quot;rain&quot;]}\"><div class=\"ws40-exp-controls\"><\/div><div class=\"ws40-exp-status\" aria-live=\"polite\"><\/div><div class=\"ws40-exp-result\"><p class=\"exp-note\">Rapport interactif \u2014 ouvrez-le sur la page publi\u00e9e pour choisir les filtres et le type de rapport.<\/p><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-227","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/pages\/227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/comments?post=227"}],"version-history":[{"count":5,"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/pages\/227\/revisions"}],"predecessor-version":[{"id":497,"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/pages\/227\/revisions\/497"}],"wp:attachment":[{"href":"https:\/\/evreuxmeteo.fr\/wpsite\/index.php\/wp-json\/wp\/v2\/media?parent=227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}