{"id":13357,"date":"2026-11-05T00:52:23","date_gmt":"2026-11-05T00:52:23","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=13357"},"modified":"2026-11-12T04:42:05","modified_gmt":"2026-11-12T04:42:05","slug":"calculateur-arrosage-pelouse-duree","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/fr\/calculateur-arrosage-pelouse-duree\/","title":{"rendered":"Calculateur d\u2019arrosage et de dur\u00e9e des arroseurs"},"content":{"rendered":"\n<style>#lawn-tool{max-width:960px;margin:24px auto;color:#243746}#lawn-tool *{box-sizing:border-box}#lawn-tool .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px}#lawn-tool label{display:block;font-weight:600}#lawn-tool input,#lawn-tool textarea{display:block;width:100%;padding:12px;border:1px solid #9aacb5;border-radius:8px;margin-top:6px;font:inherit}#lawn-tool button{padding:12px 20px;margin:18px 10px 10px 0;border:2px solid #1ecad3;border-radius:8px;background:#1ecad3;color:#1a202c;cursor:pointer;font:inherit}#lawn-tool button[type=reset],#lawn-tool #copy-area{background:white}#lawn-tool button:focus-visible,#lawn-tool input:focus-visible,#lawn-tool textarea:focus-visible{outline:3px solid #9486f7;outline-offset:3px;color:#1a202c}#lawn-tool button:active{color:#1a202c}#lawn-tool .result{background:#edf7f8;border-left:4px solid #1ecad3;padding:18px;margin:16px 0;overflow-wrap:anywhere}#lawn-tool svg{width:100%;height:300px;border:1px solid #b8cbd2}#lawn-tool a{color:#08778b}<\/style><div id=\"lawn-tool\" lang=\"fr\"><p>Calculez la dur\u00e9e et la consommation \u00e0 partir de la lame d\u2019eau choisie et du d\u00e9bit surfacique mesur\u00e9.<\/p><form data-mode=\"watering\"><div class=\"fields\"><label>Surface de la zone (m\u00b2)<input name=\"area\" type=\"number\" min=\"0\" step=\"any\" required value=\"100\"><\/label><label>Lame d\u2019eau vis\u00e9e pour cette p\u00e9riode (mm)<input name=\"target\" type=\"number\" min=\"0\" step=\"any\" required value=\"20\"><\/label><label>Pluie efficace d\u00e9j\u00e0 re\u00e7ue sur la m\u00eame p\u00e9riode (mm)<input name=\"rain\" type=\"number\" min=\"0\" step=\"any\" required value=\"5\"><\/label><label>Intensit\u00e9 d\u2019arrosage mesur\u00e9e (mm\/heure)<input name=\"rate\" type=\"number\" min=\"0\" step=\"any\" required value=\"10\"><\/label><label>Votre prix eau et assainissement par m\u00b3 (0 sans budget)<input name=\"price\" type=\"number\" min=\"0\" step=\"any\" required value=\"0\"><\/label><\/div><button type=\"submit\">Calculer<\/button><button type=\"reset\">R\u00e9initialiser<\/button><\/form><div class=\"result\" role=\"status\" aria-live=\"polite\">Saisissez vos mesures et lancez le calcul.<\/div><h2>M\u00e9thode de calcul<\/h2><p>Besoin restant = max(0, objectif \u2212 pluie efficace). Dur\u00e9e = besoin restant \u00f7 intensit\u00e9 mesur\u00e9e \u00d7 60. Un millim\u00e8tre sur un m\u00e8tre carr\u00e9 vaut un litre. R\u00e9partissez des r\u00e9cipients de collecte, mesurez pendant une dur\u00e9e connue, puis divisez la hauteur moyenne par les heures \u00e9coul\u00e9es. Adaptez l\u2019objectif au gazon, au sol, \u00e0 la saison et aux restrictions locales. Les exemples ne constituent pas une recommandation d\u2019arrosage. La pluie est saisie manuellement ; ni la m\u00e9t\u00e9o ni les pertes de distribution ne sont calcul\u00e9es automatiquement. En cas de ruissellement, fractionnez la dur\u00e9e avec des pauses d\u2019infiltration.<\/p><h2>Unit\u00e9s et donn\u00e9es<\/h2><p>Remplacez les exemples par vos mesures. 1 pied = 0,3048 m ; 1 pied carr\u00e9 = 0,09290304 m\u00b2 ; 1 pouce = 25,4 mm ; 1 gallon am\u00e9ricain = 3,785411784 litres. Utilisez la m\u00eame devise pour tous les prix. Un prix nul masque le budget facultatif.<\/p><h2>Guides pour la pelouse<\/h2><ul><li><a href=\"https:\/\/aiper.com\/blogs\/fr\/comment-arroser-une-pelouse-en-pente\/\">Comment arroser une pelouse en pente<\/a><\/li><li><a href=\"https:\/\/aiper.com\/blogs\/fr\/comment-hiverniser-pelouse\/\">Comment Hiverniser une Pelouse (Y Compris le Syst\u00e8me d\u2019Irrigation)<\/a><\/li><\/ul><h2>Autres outils pour la pelouse<\/h2><p><a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-gazon-en-rouleaux\/\">calculateur de gazon en rouleaux<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-surface-pelouse\/\">calculateur de surface de pelouse<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-zones-arrosage\/\">calculateur de zones d\u2019arrosage<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-cout-tonte-pelouse\/\">calculateur de co\u00fbt de tonte<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-temps-tonte\/\">calculateur de temps de tonte<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-chaux-pelouse\/\">calculateur de chaux pour pelouse<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-irrigation-goutte-a-goutte\/\">calculateur d\u2019irrigation goutte \u00e0 goutte<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-semences-gazon\/\">calculateur de semences de gazon<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-engrais-pelouse\/\">calculateur d\u2019engrais pour pelouse<\/a> \u00b7 <a href=\"https:\/\/aiper.com\/blogs\/fr\/outils\/\">Outils<\/a><\/p><p><a href=\"https:\/\/extension.umn.edu\/garden-and-home\/yard-and-garden\/lawns-and-landscapes-in-minnesota\/auditing-home-lawn-irrigation-systems\">R\u00e9f\u00e9rence technique<\/a><\/p><\/div><script>\/* SI units internally; no external services or weather assumptions. *\/\nfunction calculateLawn(mode,v){\n const n=k=>{if(v[k]===undefined||String(v[k]).trim()==='')throw Error(\"Saisissez toutes les mesures requises.\");let x=Number(v[k]);if(!Number.isFinite(x)||x<0)throw Error(\"Utilisez des valeurs finies et positives ou nulles.\");return x;};\n const p=k=>{let x=n(k);if(x<=0)throw Error(\"Cette mesure doit \u00eatre sup\u00e9rieure \u00e0 z\u00e9ro.\");return x;};\n const percent=k=>{let x=n(k);if(x>=100)throw Error(\"Le pourcentage doit \u00eatre inf\u00e9rieur \u00e0 100.\");return x\/100;};\n let o;\n if(mode==='sod'){\n  let a=p('area'),w=n('waste');if(w>100)throw Error(\"Les pertes doivent \u00eatre comprises entre 0 et 100 %.\");\n  let q=a*(1+w\/100);o={required:q,pieces:Math.ceil(q\/p('piece')-1e-10),pallets:Math.ceil(q\/p('pallet')-1e-10)};\n  if(n('price')>0)o.budget=q*n('price');\n }else if(mode==='watering'){\n  let depth=Math.max(0,n('target')-n('rain')),minutes=depth\/p('rate')*60,water=p('area')*depth;\n  o={depth,minutes,litres:water};if(n('price')>0)o.budget=water\/1000*n('price');\n }else if(mode==='zone'){\n  let heads=p('heads');if(!Number.isInteger(heads))throw Error(\"Le nombre d\u2019arroseurs doit \u00eatre entier.\");\n  let capacity=Math.floor(p('flow')*(1-percent('reserve'))\/p('nozzle'));\n  if(p('pressure')<p('required'))throw Error(\"La pression de service est inf\u00e9rieure au minimum requis.\");\n  if(capacity<1)throw Error(\"Le d\u00e9bit ne suffit pas pour une buse avec cette r\u00e9serve.\");\n  o={capacity,zones:Math.ceil(heads\/capacity)};\n }else if(mode==='area'){\n  let polygons=JSON.parse(v.polygons);if(!Array.isArray(polygons)||!polygons.length)throw Error(\"Saisissez les polygones mesur\u00e9s.\");\n  let total=0;\n  for(let poly of polygons){\n   let pts=poly.points;if(!Array.isArray(pts)||pts.length<3)throw Error(\"Chaque polygone exige au moins trois sommets.\");\n   for(let pt of pts)if(!Array.isArray(pt)||pt.length!==2||!pt.every(x=>typeof x==='number'&&Number.isFinite(x)))throw Error(\"Chaque sommet exige deux coordonn\u00e9es finies.\");\n   \/\/ Reject crossings, touching edges, repeated vertices and degenerate edges.\n   let cross=(a,b,c)=>(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0]);\n   let on=(a,b,c)=>Math.abs(cross(a,b,c))<1e-9&&c[0]>=Math.min(a[0],b[0])-1e-9&&c[0]<=Math.max(a[0],b[0])+1e-9&&c[1]>=Math.min(a[1],b[1])-1e-9&&c[1]<=Math.max(a[1],b[1])+1e-9;\n   for(let i=0;i<pts.length;i++)for(let j=i+1;j<pts.length;j++){\n    if(pts[i][0]===pts[j][0]&&pts[i][1]===pts[j][1])throw Error(\"Ne r\u00e9p\u00e9tez pas les sommets.\");\n    if(j===i+1||i===0&&j===pts.length-1)continue;\n    let a=pts[i],b=pts[(i+1)%pts.length],c=pts[j],d=pts[(j+1)%pts.length];\n    if(cross(a,b,c)*cross(a,b,d)<0&&cross(c,d,a)*cross(c,d,b)<0||on(a,b,c)||on(a,b,d)||on(c,d,a)||on(c,d,b))throw Error(\"Les c\u00f4t\u00e9s ne doivent ni se croiser ni se toucher.\");\n   }\n   let a=Math.abs(pts.reduce((s,p,i)=>s+p[0]*pts[(i+1)%pts.length][1]-pts[(i+1)%pts.length][0]*p[1],0))\/2;\n   if(a<=0)throw Error(\"La surface du polygone doit \u00eatre positive.\");\n   if(poly.exclude!==undefined&&typeof poly.exclude!=='boolean')throw Error(\"L\u2019exclusion doit \u00eatre vraie ou fausse.\");\n   total+=poly.exclude?-a:a;\n  }\n  if(total<=0)throw Error(\"La surface nette doit \u00eatre positive.\");o={area:total,sqft:total\/0.09290304};\n }else if(mode==='mowing-cost'){\n  let area=p('area'),frequency=p('frequency'),weeks=p('weeks');\n  if(frequency>7||weeks>52.1775)throw Error(\"Utilisez au maximum 7 passages par semaine et 52,1775 semaines par an.\");\n  let obstacle=n('obstacle');if(obstacle>100)throw Error(\"La majoration doit \u00eatre comprise entre 0 et 100 %.\");\n  let visit=Math.max(n('minimum'),n('base')+area\/100*n('rate')+n('edging'))*(1+obstacle\/100),visits=Math.ceil(frequency*weeks-1e-10);\n  o={visits};if(visit>0)Object.assign(o,{visit,month:visit*frequency*52.1775\/12,season:visit*visits});\n }else if(mode==='mowing-time'){\n  let area=p('area'),width=p('width')\/100,speed=p('speed')*1000,overlap=percent('overlap'),eff=p('efficiency')\/100;\n  if(eff>1)throw Error(\"L\u2019efficacit\u00e9 ne doit pas d\u00e9passer 100 %.\");\n  let productivity=width*(1-overlap)*speed*eff,minutes=area\/productivity*60;\n  o={effective:width*(1-overlap)*100,productivity,minutes,total:minutes+n('extra')};\n }else if(mode==='lime'){\n  let area=p('area'),rate=n('lab'),reference=p('reference'),product=p('product');\n  if(reference>200||product>200)throw Error(\"Les valeurs neutralisantes doivent \u00eatre des pourcentages au plus \u00e9gaux \u00e0 200.\");\n  let adjusted=rate*reference\/product,total=area\/100*adjusted;\n  o={adjusted,total,bags:Math.ceil(total\/p('bag')-1e-10)};\n  let cap=n('cap');if(cap>0){let passes=Math.max(1,Math.ceil(adjusted\/cap-1e-10));o.passes=total>0?passes:0;o.perpass=total>0?total\/passes:0;}\n }else if(mode==='drip'){\n  let length=p('length'),spacing=p('spacing'),lines=p('lines');\n  if(!Number.isInteger(lines))throw Error(\"Le nombre de lignes doit \u00eatre entier.\");\n  \/\/ Assumes the first emitter is one spacing from the inlet, not at x=0.\n  let emitters=Math.floor(length\/spacing+1e-10);if(emitters<1)throw Error(\"Chaque ligne doit comporter au moins un goutteur.\");\n  let flow=emitters*p('emitter'),capacity=p('supply')*60*(1-percent('reserve')),linesPerZone=Math.floor(capacity\/flow);\n  if(linesPerZone<1)throw Error(\"Le d\u00e9bit ne suffit pas pour une ligne compl\u00e8te.\");\n  let minutes=n('litres')\/p('emitter')*60,zones=Math.ceil(lines\/linesPerZone);\n  o={emitters,totalemitters:emitters*lines,flow:flow*lines\/60,linesperzone:linesPerZone,zones,minutes,totalminutes:minutes*zones,water:emitters*lines*n('litres')};\n }else throw Error(\"Calculateur inconnu.\");\n if(Object.values(o).some(x=>!Number.isFinite(x)))throw Error(\"Les mesures d\u00e9passent la plage prise en charge.\");\n return o;\n}\nif(typeof module!=='undefined')module.exports=calculateLawn;\n\n(()=>{const root=document.getElementById('lawn-tool'),form=root.querySelector('form'),result=root.querySelector('.result'),labels={\"depth\": \"Lame d\u2019eau restante (mm)\", \"minutes\": \"Dur\u00e9e totale de la zone (minutes)\", \"litres\": \"Consommation d\u2019eau (litres)\", \"budget\": \"Budget d\u2019eau dans votre devise\"};let last=null;\nfunction polygons(text){return text.trim().split(\/\\n\\s*\\n\/).map(block=>{let rows=block.trim().split(\/\\n\/),exclude=\/^[-\u2013\u2014]$\/.test(rows[0].trim());if(exclude)rows.shift();return {exclude,points:rows.map(row=>{let parts=row.trim().split(\/\\s*,\\s*\/);if(parts.length!==2||parts.some(p=>!p.trim()))throw Error(\"Saisissez une coordonn\u00e9e x,y par ligne.\");return parts.map(Number);})};});}\nform.addEventListener('submit',e=>{e.preventDefault();last=null;try{let v=Object.fromEntries(new FormData(form));let polys;if(form.dataset.mode==='area'){polys=polygons(v.coordinates);v.polygons=JSON.stringify(polys);}let out=calculateLawn(form.dataset.mode,v);result.replaceChildren();for(let [key,value]of Object.entries(out)){let p=document.createElement('p');p.textContent=labels[key]+': '+value.toLocaleString(\"fr\",{maximumFractionDigits:3});result.append(p);}if(polys){let svg=root.querySelector('#area-diagram'),all=polys.flatMap(p=>p.points),xs=all.map(p=>p[0]),ys=all.map(p=>p[1]),minx=Math.min(...xs),miny=Math.min(...ys),w=Math.max(...xs)-minx,h=Math.max(...ys)-miny;svg.replaceChildren();svg.setAttribute('viewBox',[minx-1,miny-1,w+2,h+2].join(' '));for(let poly of polys){let shape=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','polygon');shape.setAttribute('points',poly.points.map(p=>p.join(',')).join(' '));shape.setAttribute('fill',poly.exclude?'#fff':'#b4e8c1');shape.setAttribute('stroke','#147e91');shape.setAttribute('stroke-width',Math.max(w,h)\/200);svg.append(shape);}last=out.area;root.querySelector('#copy-area').disabled=false;}}\ncatch(err){result.textContent=err.message;if(root.querySelector('#copy-area'))root.querySelector('#copy-area').disabled=true;}});\nform.addEventListener('reset',()=>{last=null;result.textContent=\"Saisissez vos mesures et lancez le calcul.\";let svg=root.querySelector('#area-diagram');if(svg)svg.replaceChildren();let b=root.querySelector('#copy-area');if(b)b.disabled=true;});\nlet copy=root.querySelector('#copy-area');if(copy)copy.addEventListener('click',async()=>{if(last===null)return;try{await navigator.clipboard.writeText(String(last));result.append(document.createTextNode(\" Surface copi\u00e9e en m\u00b2.\"));}catch(e){result.append(document.createTextNode(\" Copier la surface manuellement : \"+last+' m\u00b2.'));}});\n})();\n(()=>{let r=document.getElementById('lawn-tool');r.querySelector('form').addEventListener('input',()=>{r.querySelector('.result').textContent=\"Saisissez vos mesures et lancez le calcul.\";let b=r.querySelector('#copy-area');if(b)b.disabled=true;let s=r.querySelector('#area-diagram');if(s)s.replaceChildren();});})();<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Calculez la dur\u00e9e et la consommation \u00e0 partir de la lame d\u2019eau choisie et du d\u00e9bit surfacique mesur\u00e9. Surface de la zone (m\u00b2)Lame d\u2019eau vis\u00e9e pour cette p\u00e9riode (mm)Pluie efficace d\u00e9j\u00e0 re\u00e7ue sur la m\u00eame p\u00e9riode (mm)Intensit\u00e9 d\u2019arrosage mesur\u00e9e (mm\/heure)Votre prix eau et assainissement par m\u00b3 (0 sans budget) CalculerR\u00e9initialiser Saisissez vos mesures et lancez [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"aiper_reading_time":2,"aiper_last_reviewed":"","aiper_reviewer":0,"aiper_related_ids":[],"aiper_layout":"","footnotes":""},"class_list":["post-13357","page","type-page","status-publish","hentry"],"lang":"fr","translations":{"fr":13357,"es":13358,"de":13356,"en":13355},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/13357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=13357"}],"version-history":[{"count":3,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/13357\/revisions"}],"predecessor-version":[{"id":13471,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/13357\/revisions\/13471"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=13357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}