水質調整計算機 | 日本の水道水プリセット付き醸造用水ツール
この記事は約21分で読めます。
.wc-wrap{max-width:800px;margin:0 auto}
.wc-nav{margin-bottom:20px;font-size:.9em}
.wc-nav a{color:#D97706}
.wc-row{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.wc-col{flex:1;min-width:280px}
.wc-section{background:#f9f9f9;border-radius:12px;padding:16px;margin-bottom:16px}
.wc-section h3{margin:0 0 12px;font-size:1em;color:#92400e}
.wc-label{font-size:.85em;color:#888;display:block;margin-bottom:4px}
.wc-select,.wc-input{width:100%;padding:8px;border:2px solid #ddd;border-radius:6px;font-size:.95em;box-sizing:border-box;margin-bottom:8px}
.wc-select:focus,.wc-input:focus{border-color:#F59E0B;outline:none}
.wc-mineral-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.wc-mineral{background:#fff;border:1px solid #eee;border-radius:6px;padding:8px;text-align:center}
.wc-mineral .wc-ml{font-size:.75em;color:#888}
.wc-mineral .wc-mv{font-weight:bold;color:#D97706;font-size:1.1em}
.wc-mineral .wc-md{font-size:.7em;color:#aaa}
.wc-result{background:#FFFBEB;border:2px solid #F59E0B;border-radius:12px;padding:16px;margin-bottom:16px}
.wc-result h3{margin:0 0 12px;color:#92400e}
.wc-result-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0e0b0}
.wc-result-row:last-child{border-bottom:none}
.wc-result-label{color:#666;font-size:.9em}
.wc-result-val{font-weight:bold;color:#D97706}
.wc-salt-grid{display:grid;grid-template-columns:1fr 100px;gap:6px;align-items:center}
.wc-salt-name{font-size:.85em}
.wc-salt-name small{color:#999;display:block;font-size:.8em}
.wc-salt-input{width:100%;padding:6px;border:2px solid #ddd;border-radius:6px;font-size:.95em;box-sizing:border-box;text-align:right}
.wc-salt-input:focus{border-color:#F59E0B;outline:none}
.wc-btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-weight:bold;font-size:.9em}
.wc-btn-primary{background:#F59E0B;color:#fff}
.wc-btn-primary:hover{background:#D97706}
.wc-btn-secondary{background:#e5e7eb;color:#333}
.wc-btn-secondary:hover{background:#d1d5db}
.wc-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.wc-ratio-bar{height:24px;border-radius:12px;display:flex;overflow:hidden;margin:8px 0}
.wc-ratio-so4{background:#F59E0B}
.wc-ratio-cl{background:#3B82F6}
.wc-ratio-labels{display:flex;justify-content:space-between;font-size:.75em;color:#888}
.wc-diff-pos{color:#16a34a}
.wc-diff-neg{color:#dc2626}
.wc-info{background:#f0f9ff;border-radius:8px;padding:12px;margin-top:12px;font-size:.85em;color:#555;line-height:1.6}
.wc-xlinks{margin-top:20px;padding:12px;background:#f0f9ff;border-radius:8px;font-size:.85em}
.wc-xlinks a{color:#D97706;text-decoration:none;font-weight:bold}
.wc-xlinks a:hover{text-decoration:underline}
.wc-legal{margin-top:24px;padding:12px;background:#FFF3CD;border-radius:8px;font-size:.8em;line-height:1.5}
@media(max-width:480px){
.wc-mineral-grid{grid-template-columns:repeat(2,1fr)}
.wc-row{flex-direction:column}
.wc-select,.wc-input,.wc-salt-input{font-size:16px;min-height:44px}
.wc-salt-grid{grid-template-columns:1fr 80px}
}
醸造用水の水質調整計算ツールです。日本10都市の水道水プリセット付き。ベース水から目標水質への塩添加量を計算できます。
ベース水(水源)
カスタム入力
目標水質
スタイルから選択…
IPA / Pale Ale(ホッピー)
Stout / Porter(モルティ)
Lager / Pilsner(低ミネラル)
Wheat / Weizen(柔らかい水)
Amber / Vienna(バランス)
Belgian Ale(低ミネラル)
カスタム入力
塩添加量(g)
ペールモルト主体
ミディアム(カラメル等)
ダーク(ロースト等)
ご注意: 日本国内での自家醸造はアルコール度数1%未満に限られます(酒税法第7条)。水質データは各自治体の公開情報に基づく参考値です。実際の水道水は季節・浄水場により変動します。
(function(){
const JP={
tokyo:{name_ja:’東京都’,Ca:20,Mg:4,Na:10,SO4:15,Cl:18,HCO3:30},
osaka:{name_ja:’大阪市’,Ca:15,Mg:3,Na:8,SO4:12,Cl:14,HCO3:25},
nagoya:{name_ja:’名古屋市’,Ca:12,Mg:2,Na:6,SO4:10,Cl:12,HCO3:20},
sapporo:{name_ja:’札幌市’,Ca:10,Mg:2,Na:5,SO4:8,Cl:10,HCO3:18},
fukuoka:{name_ja:’福岡市’,Ca:8,Mg:2,Na:7,SO4:9,Cl:11,HCO3:22},
yokohama:{name_ja:’横浜市’,Ca:18,Mg:3,Na:9,SO4:14,Cl:16,HCO3:28},
kyoto:{name_ja:’京都市’,Ca:14,Mg:3,Na:7,SO4:11,Cl:13,HCO3:24},
kobe:{name_ja:’神戸市’,Ca:16,Mg:3,Na:8,SO4:13,Cl:15,HCO3:26},
sendai:{name_ja:’仙台市’,Ca:9,Mg:2,Na:5,SO4:7,Cl:9,HCO3:16},
hiroshima:{name_ja:’広島市’,Ca:11,Mg:2,Na:6,SO4:9,Cl:11,HCO3:20}
};
const WORLD={
pilsen:{name_ja:’ピルゼン’,Ca:10,Mg:3,Na:3,SO4:5,Cl:5,HCO3:15},
burton:{name_ja:’バートン’,Ca:295,Mg:45,Na:55,SO4:725,Cl:25,HCO3:300},
dublin:{name_ja:’ダブリン’,Ca:120,Mg:4,Na:12,SO4:55,Cl:19,HCO3:315},
munich:{name_ja:’ミュンヘン’,Ca:77,Mg:18,Na:2,SO4:10,Cl:2,HCO3:295},
dortmund:{name_ja:’ドルトムント’,Ca:225,Mg:40,Na:60,SO4:220,Cl:60,HCO3:550},
london:{name_ja:’ロンドン’,Ca:90,Mg:6,Na:15,SO4:40,Cl:38,HCO3:260},
vienna:{name_ja:’ウィーン’,Ca:75,Mg:15,Na:8,SO4:60,Cl:12,HCO3:225}
};
const SALTS_DEF={
CaSO4:{name_ja:’石膏(硫酸カルシウム)’,Ca:61.5,SO4:147.4},
CaCl2:{name_ja:’塩化カルシウム’,Ca:72.0,Cl:127.4},
MgSO4:{name_ja:’エプソム塩(硫酸マグネシウム)’,Mg:26.1,SO4:103.0},
NaHCO3:{name_ja:’重曹(炭酸水素ナトリウム)’,Na:75.1,HCO3:191.9},
NaCl:{name_ja:’食塩(塩化ナトリウム)’,Na:104.0,Cl:160.3},
CaCO3:{name_ja:’チョーク(炭酸カルシウム)’,Ca:105.6,HCO3:321.8}
};
const MINERALS=[‘Ca’,’Mg’,’Na’,’SO4′,’Cl’,’HCO3′];
const M_NAMES={Ca:’カルシウム’,Mg:’マグネシウム’,Na:’ナトリウム’,SO4:’硫酸塩’,Cl:’塩化物’,HCO3:’重炭酸塩’};
const STYLE_TARGETS={
ipa:{Ca:100,Mg:10,Na:15,SO4:200,Cl:60,HCO3:30},
stout:{Ca:80,Mg:5,Na:12,SO4:50,Cl:80,HCO3:200},
lager:{Ca:10,Mg:3,Na:3,SO4:5,Cl:5,HCO3:15},
wheat:{Ca:30,Mg:5,Na:5,SO4:20,Cl:50,HCO3:100},
amber:{Ca:75,Mg:15,Na:8,SO4:60,Cl:12,HCO3:225},
belgian:{Ca:25,Mg:4,Na:5,SO4:30,Cl:30,HCO3:50}
};
let sourceProfile={…JP.tokyo};
let targetProfile={…WORLD.burton};
function r(v,d){const f=10**d;return Math.round(v*f)/f;}
// Build dropdowns
function buildOpts(){
const jpEl=document.getElementById(‘wc-jp-opts’);
const worldEl=document.getElementById(‘wc-world-opts’);
const tgtEl=document.getElementById(‘wc-target-world’);
for(const[k,v]of Object.entries(JP)){
jpEl.innerHTML+=`${v.name_ja}`;
}
for(const[k,v]of Object.entries(WORLD)){
worldEl.innerHTML+=`${v.name_ja}`;
tgtEl.innerHTML+=`${v.name_ja}`;
}
}
function renderMinerals(containerId,profile,editable){
const el=document.getElementById(containerId);
el.innerHTML=MINERALS.map(m=>`
${M_NAMES[m]}
${editable?“
:`
${profile[m]||0}
`}
${m} (ppm)
`).join(”);
}
function buildSalts(){
const el=document.getElementById(‘wc-salts’);
el.innerHTML=”;
for(const[k,s]of Object.entries(SALTS_DEF)){
el.innerHTML+=`
${k}${s.name_ja}
`;
}
}
window.loadPreset=function(which){
const sel=document.getElementById(which===’source’?’wc-source-preset’:’wc-target-preset’);
const val=sel.value;
let profile;
if(val.startsWith(‘jp:’))profile={…JP[val.split(‘:’)[1]]};
else if(val.startsWith(‘w:’))profile={…WORLD[val.split(‘:’)[1]]};
else profile={Ca:0,Mg:0,Na:0,SO4:0,Cl:0,HCO3:0};
if(which===’source’){sourceProfile=profile;renderMinerals(‘wc-source-minerals’,profile,val===’custom’);}
else{targetProfile=profile;renderMinerals(‘wc-target-minerals’,profile,val===’custom’);}
recalc();
};
window.loadStyleTarget=function(){
const style=document.getElementById(‘wc-style’).value;
if(!style)return;
const t=STYLE_TARGETS[style];
if(!t)return;
targetProfile={…t};
document.getElementById(‘wc-target-preset’).value=’custom’;
renderMinerals(‘wc-target-minerals’,targetProfile,true);
recalc();
};
window.updateMineral=function(input){
const m=input.dataset.mineral;
const tgt=input.dataset.target;
const val=parseFloat(input.value)||0;
if(tgt===’wc-source-minerals’)sourceProfile[m]=val;
else targetProfile[m]=val;
recalc();
};
function getSaltAmounts(){
const amounts={};
for(const k of Object.keys(SALTS_DEF)){
amounts[k]=parseFloat(document.getElementById(‘salt-‘+k).value)||0;
}
return amounts;
}
function calcAdjusted(base,salts,vol){
const result={};
for(const m of MINERALS)result[m]=base[m]||0;
for(const[k,g]of Object.entries(salts)){
if(g9)ratioDesc=’非常にホッピー’;
else if(ratio>5)ratioDesc=’ホッピー’;
else if(ratio>2)ratioDesc=’やや苦味寄り’;
else if(ratio>0.5)ratioDesc=’バランス’;
else if(ratio>0.2)ratioDesc=’モルティ’;
else ratioDesc=’非常にモルティ’;
// Residual alkalinity
const alk=(adjusted.HCO3||0)*50/61;
const ra=r(alk-(adjusted.Ca||0)/1.4-(adjusted.Mg||0)/1.7,1);
// Mash pH estimate
const grainOff={pale:0,medium:-0.1,dark:-0.2};
const pH=r(5.72+(ra/50)*0.03+(grainOff[grain]||0),2);
let phDesc;
if(pH<5.2)phDesc='酸性寄り — 酸味リスク';
else if(pH<=5.6)phDesc='理想的なマッシュpH範囲';
else phDesc='アルカリ寄り — タンニン抽出リスク';
// SO4:Cl bar
const so4Pct=adjusted.SO4/(adjusted.SO4+cl)*100;
let html=`
調整結果
`;
html+=`
`;
for(const m of MINERALS){
const v=r(adjusted[m],1);
const diff=r(v-(targetProfile[m]||0),1);
const diffClass=diff>0?’wc-diff-pos’:diff0?`+${diff}`:diff<0?`${diff}`:'±0';
html+=`
for(const m of MINERALS){
const v=r(adjusted[m],1);
const diff=r(v-(targetProfile[m]||0),1);
const diffClass=diff>0?’wc-diff-pos’:diff0?`+${diff}`:diff<0?`${diff}`:'±0';
html+=`
${M_NAMES[m]}
${v}
目標差: ${diffStr}
`;
}
html+=`
`;
html+=`
SO4:Cl比${ratio} (${ratioDesc})
`;
html+=`
`;
html+=`
SO4 ホッピーCl モルティ
`;
html+=`
残留アルカリ度 (RA)${ra} ppm
`;
html+=`
推定マッシュpH${pH} (${phDesc})
`;
document.getElementById(‘wc-results’).innerHTML=html;
};
window.autoSuggest=function(){
const vol=parseFloat(document.getElementById(‘wc-volume’).value)||20;
const diff={};
for(const m of MINERALS)diff[m]=(targetProfile[m]||0)-(sourceProfile[m]||0);
const salts={CaSO4:0,CaCl2:0,MgSO4:0,NaHCO3:0,NaCl:0,CaCO3:0};
if(diff.SO4>0)salts.CaSO4=r((diff.SO4*vol)/SALTS_DEF.CaSO4.SO4,1);
if(diff.Cl>0)salts.CaCl2=r((diff.Cl*vol)/SALTS_DEF.CaCl2.Cl,1);
if(diff.Mg>0)salts.MgSO4=r((diff.Mg*vol)/SALTS_DEF.MgSO4.Mg,1);
if(diff.HCO3>0)salts.NaHCO3=r((diff.HCO3*vol)/SALTS_DEF.NaHCO3.HCO3,1);
const naFromBicarbonate=salts.NaHCO3>0?(salts.NaHCO3*SALTS_DEF.NaHCO3.Na)/vol:0;
if(diff.Na-naFromBicarbonate>5)salts.NaCl=r(((diff.Na-naFromBicarbonate)*vol)/SALTS_DEF.NaCl.Na,1);
for(const k of Object.keys(salts))if(salts[k]<0)salts[k]=0;
for(const[k,v]of Object.entries(salts))document.getElementById('salt-'+k).value=v;
recalc();
};
window.resetSalts=function(){
for(const k of Object.keys(SALTS_DEF))document.getElementById('salt-'+k).value=0;
recalc();
};
// Init
buildOpts();
buildSalts();
renderMinerals('wc-source-minerals',sourceProfile,false);
renderMinerals('wc-target-minerals',targetProfile,true);
recalc();
})();
{“@context”:”https://schema.org”,”@graph”:[{“@type”:”WebApplication”,”name”:”水質調整計算機 – 醸造用水ツール”,”description”:”醸造用水の水質調整を計算。日本10都市の水道水プリセット、世界7都市の醸造水プロファイル搭載。”,”url”:”https://rihobeer.com/tools/water/”,”applicationCategory”:”UtilitiesApplication”,”operatingSystem”:”Web Browser”,”offers”:{“@type”:”Offer”,”price”:”0″,”priceCurrency”:”JPY”},”inLanguage”:”ja”},{“@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”醸造水の水質調整はなぜ必要ですか?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”ビールのスタイルによって最適な水質が異なります。例えばIPAにはSO4(硫酸塩)が多い水が苦味を引き立て、スタウトにはHCO3(重炭酸塩)が多い水がロースト感を和らげます。日本の水道水は軟水が多く、目標に合わせて塩を添加して調整します。”}},{“@type”:”Question”,”name”:”SO4:Cl比とは何ですか?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”硫酸塩(SO4)と塩化物(Cl)の比率で、ビールの味わいバランスを示す指標です。比率が高い(2以上)とドライで苦味が強調され、低い(0.5以下)と甘くフルボディになります。IPAなら2〜4:1、スタウトなら0.5〜1:1が目安です。”}},{“@type”:”Question”,”name”:”日本の水道水はそのまま醸造に使えますか?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”はい、日本の水道水は軟水でミネラルが少ないため、ピルスナーやベルジャンエールなど軟水向きのスタイルにはそのまま適しています。IPAやスタウトなど特定のミネラルバランスが必要なスタイルでは、塩を添加して調整するとより良い結果が得られます。”}},{“@type”:”Question”,”name”:”マッシュpHはなぜ重要ですか?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”マッシュpHが5.2〜5.6の範囲にあると、酵素活性が最適化され、効率的な糖化と良好な風味が得られます。pHが高すぎるとタンニンが抽出されて渋くなり、低すぎると酸味が出ます。水のアルカリ度(HCO3)とグレインの酸性度がpHを決定します。”}},{“@type”:”Question”,”name”:”石膏(CaSO4)と塩化カルシウム(CaCl2)の使い分けは?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”石膏はSO4を増やして苦味をシャープにし、塩化カルシウムはClを増やして甘みと丸みを出します。どちらもカルシウムを供給しますが、味への影響が異なるため、スタイルに合わせて使い分けます。IPAには石膏、スタウトには塩化カルシウムが定番です。”}}]}]}

ビール醸造のプロも愛読!ホップの魅力がわかる『THE NEW IPA』
歴史好き必見!『ビール大全』で深掘り
『ビールのつくりかた大事典』で醸造プロセスを学ぼう
Twitterで新着情報を受け取る
