[{"data":1,"prerenderedAt":1197},["ShallowReactive",2],{"page-\u002Fcore\u002Fguides\u002Fwater-quality-vocabulary":3,"navigation":819},{"collection":4,"page":5},"docs_en",{"id":6,"title":7,"body":8,"description":811,"extension":812,"meta":813,"navigation":94,"path":814,"rawbody":815,"seo":816,"stem":817,"__hash__":818},"docs_en\u002Fcore\u002F2.guides\u002F5.water-quality-vocabulary.md","Water quality vocabulary",{"type":9,"value":10,"toc":805},"minimark",[11,34,39,229,264,377,381,392,550,554,565,628,668,759,773,779,783,801],[12,13,14,15,19,20,25,26,29,30,33],"p",{},"Water quality results in a ",[16,17,18],"code",{},".well"," file name their parameter by a code and a vocabulary, and take their unit from the code (",[21,22,24],"a",{"href":23},"\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality#parameter-vocabulary","parameter vocabulary","). ",[16,27,28],{},"@welldot\u002Fcore"," publishes the ",[16,31,32],{},"welldot"," vocabulary as versioned data, together with drinking water limit sets that are deliberately kept out of the files.",[35,36,38],"h2",{"id":37},"parameters","Parameters",[40,41,46],"pre",{"className":42,"code":43,"language":44,"meta":45,"style":45},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { getParameterDefinition, getParameterLabel } from '@welldot\u002Fcore';\n\ngetParameterDefinition({ code: 'nitrate_as_n', vocabulary: 'welldot' });\n\u002F\u002F {\n\u002F\u002F   code: 'nitrate_as_n', group: 'nutrient', label: 'Nitrate as N',\n\u002F\u002F   labels: { pt: 'Nitrato como N' }, unit: { symbol: 'mg\u002FL', ucum: 'mg\u002FL' },\n\u002F\u002F   form: 'value', molar_mass: 14.007, charge: -1\n\u002F\u002F }\n\ngetParameterLabel({ code: 'nitrate_as_n', vocabulary: 'welldot' }, 'pt'); \u002F\u002F 'Nitrato como N'\n","ts","",[16,47,48,89,96,143,150,156,162,168,174,179],{"__ignoreMap":45},[49,50,53,57,61,65,68,71,74,77,80,83,86],"span",{"class":51,"line":52},"line",1,[49,54,56],{"class":55},"s7zQu","import",[49,58,60],{"class":59},"sMK4o"," {",[49,62,64],{"class":63},"sTEyZ"," getParameterDefinition",[49,66,67],{"class":59},",",[49,69,70],{"class":63}," getParameterLabel",[49,72,73],{"class":59}," }",[49,75,76],{"class":55}," from",[49,78,79],{"class":59}," '",[49,81,28],{"class":82},"sfazB",[49,84,85],{"class":59},"'",[49,87,88],{"class":59},";\n",[49,90,92],{"class":51,"line":91},2,[49,93,95],{"emptyLinePlaceholder":94},true,"\n",[49,97,99,103,106,109,113,116,118,121,123,125,128,130,132,134,136,138,141],{"class":51,"line":98},3,[49,100,102],{"class":101},"s2Zo4","getParameterDefinition",[49,104,105],{"class":63},"(",[49,107,108],{"class":59},"{",[49,110,112],{"class":111},"swJcz"," code",[49,114,115],{"class":59},":",[49,117,79],{"class":59},[49,119,120],{"class":82},"nitrate_as_n",[49,122,85],{"class":59},[49,124,67],{"class":59},[49,126,127],{"class":111}," vocabulary",[49,129,115],{"class":59},[49,131,79],{"class":59},[49,133,32],{"class":82},[49,135,85],{"class":59},[49,137,73],{"class":59},[49,139,140],{"class":63},")",[49,142,88],{"class":59},[49,144,146],{"class":51,"line":145},4,[49,147,149],{"class":148},"sHwdD","\u002F\u002F {\n",[49,151,153],{"class":51,"line":152},5,[49,154,155],{"class":148},"\u002F\u002F   code: 'nitrate_as_n', group: 'nutrient', label: 'Nitrate as N',\n",[49,157,159],{"class":51,"line":158},6,[49,160,161],{"class":148},"\u002F\u002F   labels: { pt: 'Nitrato como N' }, unit: { symbol: 'mg\u002FL', ucum: 'mg\u002FL' },\n",[49,163,165],{"class":51,"line":164},7,[49,166,167],{"class":148},"\u002F\u002F   form: 'value', molar_mass: 14.007, charge: -1\n",[49,169,171],{"class":51,"line":170},8,[49,172,173],{"class":148},"\u002F\u002F }\n",[49,175,177],{"class":51,"line":176},9,[49,178,95],{"emptyLinePlaceholder":94},[49,180,182,185,187,189,191,193,195,197,199,201,203,205,207,209,211,214,216,219,221,223,226],{"class":51,"line":181},10,[49,183,184],{"class":101},"getParameterLabel",[49,186,105],{"class":63},[49,188,108],{"class":59},[49,190,112],{"class":111},[49,192,115],{"class":59},[49,194,79],{"class":59},[49,196,120],{"class":82},[49,198,85],{"class":59},[49,200,67],{"class":59},[49,202,127],{"class":111},[49,204,115],{"class":59},[49,206,79],{"class":59},[49,208,32],{"class":82},[49,210,85],{"class":59},[49,212,213],{"class":59}," },",[49,215,79],{"class":59},[49,217,218],{"class":82},"pt",[49,220,85],{"class":59},[49,222,140],{"class":63},[49,224,225],{"class":59},";",[49,227,228],{"class":148}," \u002F\u002F 'Nitrato como N'\n",[12,230,231,232,235,236,239,240,239,243,239,246,239,249,252,253,239,256,259,260,263],{},"Each ",[16,233,234],{},"ParameterDefinition"," carries the code, its group (",[16,237,238],{},"physical",", ",[16,241,242],{},"major_ion",[16,244,245],{},"metal",[16,247,248],{},"nutrient",[16,250,251],{},"microbiology",", …), the English label and translations, the canonical unit (display symbol and UCUM code), the form of a result (",[16,254,255],{},"value",[16,257,258],{},"presence"," or ",[16,261,262],{},"text","), the CAS number when there is one, and molar mass and charge for ions used in ion balance and hydrochemical diagrams.",[265,266,267,280],"table",{},[268,269,270],"thead",{},[271,272,273,277],"tr",{},[274,275,276],"th",{},"Export",[274,278,279],{},"Description",[281,282,283,297,307,317,338,348,361],"tbody",{},[271,284,285,291],{},[286,287,288],"td",{},[16,289,290],{},"WATER_QUALITY_PARAMETERS",[286,292,293,294,296],{},"The 98 ",[16,295,32],{}," parameter definitions.",[271,298,299,304],{},[286,300,301],{},[16,302,303],{},"WATER_QUALITY_VOCABULARY_VERSION",[286,305,306],{},"Version of the published vocabulary.",[271,308,309,314],{},[286,310,311],{},[16,312,313],{},"WATER_QUALITY_UNITS",[286,315,316],{},"The canonical units the vocabulary uses.",[271,318,319,324],{},[286,320,321],{},[16,322,323],{},"getParameterDefinition(param)",[286,325,326,327,330,331,334,335,337],{},"Looks up a ",[16,328,329],{},"{ code, vocabulary }","; a ",[16,332,333],{},"cas"," code resolves to its ",[16,336,32],{}," entry.",[271,339,340,345],{},[286,341,342],{},[16,343,344],{},"getParameterLabel(param, locale)",[286,346,347],{},"Display name; unknown codes are returned as they are.",[271,349,350,355],{},[286,351,352],{},[16,353,354],{},"parameterKey(param)",[286,356,357,358,360],{},"One identity for a ",[16,359,32],{}," code and its CAS equivalent, for grouping and duplicate detection.",[271,362,363,368],{},[286,364,365],{},[16,366,367],{},"isKnownParameter(param)",[286,369,370,373,374,376],{},[16,371,372],{},"false"," only for a ",[16,375,32],{}," code this vocabulary version does not know.",[35,378,380],{"id":379},"cas-numbers","CAS numbers",[12,382,383,384,388,389,391],{},"Substances can be identified by their CAS registry number (",[21,385,387],{"href":386},"\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality#vocabulary-rules","vocabulary rules","). The library resolves the ones that have a ",[16,390,32],{}," equivalent:",[40,393,395],{"className":42,"code":394,"language":44,"meta":45,"style":45},"import { getParameterDefinition, parameterKey } from '@welldot\u002Fcore';\n\ngetParameterDefinition({ code: '14808-79-8', vocabulary: 'cas' })?.code; \u002F\u002F 'sulfate'\nparameterKey({ code: '14808-79-8', vocabulary: 'cas' }); \u002F\u002F 'sulfate'\nparameterKey({ code: 'sulfate', vocabulary: 'welldot' }); \u002F\u002F 'sulfate', the same key\n",[16,396,397,422,426,471,510],{"__ignoreMap":45},[49,398,399,401,403,405,407,410,412,414,416,418,420],{"class":51,"line":52},[49,400,56],{"class":55},[49,402,60],{"class":59},[49,404,64],{"class":63},[49,406,67],{"class":59},[49,408,409],{"class":63}," parameterKey",[49,411,73],{"class":59},[49,413,76],{"class":55},[49,415,79],{"class":59},[49,417,28],{"class":82},[49,419,85],{"class":59},[49,421,88],{"class":59},[49,423,424],{"class":51,"line":91},[49,425,95],{"emptyLinePlaceholder":94},[49,427,428,430,432,434,436,438,440,443,445,447,449,451,453,455,457,459,461,464,466,468],{"class":51,"line":98},[49,429,102],{"class":101},[49,431,105],{"class":63},[49,433,108],{"class":59},[49,435,112],{"class":111},[49,437,115],{"class":59},[49,439,79],{"class":59},[49,441,442],{"class":82},"14808-79-8",[49,444,85],{"class":59},[49,446,67],{"class":59},[49,448,127],{"class":111},[49,450,115],{"class":59},[49,452,79],{"class":59},[49,454,333],{"class":82},[49,456,85],{"class":59},[49,458,73],{"class":59},[49,460,140],{"class":63},[49,462,463],{"class":59},"?.",[49,465,16],{"class":63},[49,467,225],{"class":59},[49,469,470],{"class":148}," \u002F\u002F 'sulfate'\n",[49,472,473,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508],{"class":51,"line":145},[49,474,475],{"class":101},"parameterKey",[49,477,105],{"class":63},[49,479,108],{"class":59},[49,481,112],{"class":111},[49,483,115],{"class":59},[49,485,79],{"class":59},[49,487,442],{"class":82},[49,489,85],{"class":59},[49,491,67],{"class":59},[49,493,127],{"class":111},[49,495,115],{"class":59},[49,497,79],{"class":59},[49,499,333],{"class":82},[49,501,85],{"class":59},[49,503,73],{"class":59},[49,505,140],{"class":63},[49,507,225],{"class":59},[49,509,470],{"class":148},[49,511,512,514,516,518,520,522,524,527,529,531,533,535,537,539,541,543,545,547],{"class":51,"line":152},[49,513,475],{"class":101},[49,515,105],{"class":63},[49,517,108],{"class":59},[49,519,112],{"class":111},[49,521,115],{"class":59},[49,523,79],{"class":59},[49,525,526],{"class":82},"sulfate",[49,528,85],{"class":59},[49,530,67],{"class":59},[49,532,127],{"class":111},[49,534,115],{"class":59},[49,536,79],{"class":59},[49,538,32],{"class":82},[49,540,85],{"class":59},[49,542,73],{"class":59},[49,544,140],{"class":63},[49,546,225],{"class":59},[49,548,549],{"class":148}," \u002F\u002F 'sulfate', the same key\n",[35,551,553],{"id":552},"limit-sets","Limit sets",[12,555,556,557,559,560,564],{},"Limits are not stored in ",[16,558,18],{}," files: a file records what was measured, and the reader decides which standard to compare it with (",[21,561,563],{"href":562},"\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality#limit-sets-are-not-part-of-the-file","limit sets are not part of the file","). The package ships three sets:",[265,566,567,581],{},[268,568,569],{},[271,570,571,573,576],{},[274,572,276],{},[274,574,575],{},"Source",[274,577,578],{},[16,579,580],{},"id",[281,582,583,598,613],{},[271,584,585,590,593],{},[286,586,587],{},[16,588,589],{},"WHO_GDWQ_2022",[286,591,592],{},"WHO Guidelines for Drinking-water Quality (2022)",[286,594,595],{},[16,596,597],{},"who_gdwq_2022",[271,599,600,605,608],{},[286,601,602],{},[16,603,604],{},"EU_2020_2184",[286,606,607],{},"EU Drinking Water Directive 2020\u002F2184",[286,609,610],{},[16,611,612],{},"eu_2020_2184",[271,614,615,620,623],{},[286,616,617],{},[16,618,619],{},"BR_GM_MS_888_2021",[286,621,622],{},"Brazil, Portaria GM\u002FMS 888\u002F2021",[286,624,625],{},[16,626,627],{},"br_gm_ms_888_2021",[12,629,630,633,634,637,638,641,642,645,646,649,650,653,654,641,656,659,660,663,664,667],{},[16,631,632],{},"WATER_QUALITY_LIMIT_SETS"," lists them in display order, and ",[16,635,636],{},"getLimitSet(id)"," finds one by id. A set has a ",[16,639,640],{},"name",", a ",[16,643,644],{},"jurisdiction",", its ",[16,647,648],{},"source"," and a list of ",[16,651,652],{},"limits",", each with a parameter ",[16,655,16],{},[16,657,658],{},"min"," and\u002For ",[16,661,662],{},"max"," in the parameter's canonical unit and a ",[16,665,666],{},"basis",".",[40,669,671],{"className":42,"code":670,"language":44,"meta":45,"style":45},"import { getLimitSet } from '@welldot\u002Fcore';\n\ngetLimitSet('who_gdwq_2022')?.limits.find(l => l.code === 'arsenic');\n\u002F\u002F { code: 'arsenic', max: 0.01, basis: 'health', note: 'provisional' }\n",[16,672,673,694,698,754],{"__ignoreMap":45},[49,674,675,677,679,682,684,686,688,690,692],{"class":51,"line":52},[49,676,56],{"class":55},[49,678,60],{"class":59},[49,680,681],{"class":63}," getLimitSet",[49,683,73],{"class":59},[49,685,76],{"class":55},[49,687,79],{"class":59},[49,689,28],{"class":82},[49,691,85],{"class":59},[49,693,88],{"class":59},[49,695,696],{"class":51,"line":91},[49,697,95],{"emptyLinePlaceholder":94},[49,699,700,703,705,707,709,711,713,715,717,719,722,724,728,732,735,737,740,743,745,748,750,752],{"class":51,"line":98},[49,701,702],{"class":101},"getLimitSet",[49,704,105],{"class":63},[49,706,85],{"class":59},[49,708,597],{"class":82},[49,710,85],{"class":59},[49,712,140],{"class":63},[49,714,463],{"class":59},[49,716,652],{"class":63},[49,718,667],{"class":59},[49,720,721],{"class":101},"find",[49,723,105],{"class":63},[49,725,727],{"class":726},"sHdIc","l",[49,729,731],{"class":730},"spNyl"," =>",[49,733,734],{"class":63}," l",[49,736,667],{"class":59},[49,738,739],{"class":63},"code ",[49,741,742],{"class":59},"===",[49,744,79],{"class":59},[49,746,747],{"class":82},"arsenic",[49,749,85],{"class":59},[49,751,140],{"class":63},[49,753,88],{"class":59},[49,755,756],{"class":51,"line":145},[49,757,758],{"class":148},"\u002F\u002F { code: 'arsenic', max: 0.01, basis: 'health', note: 'provisional' }\n",[12,760,761,762,765,766,772],{},"To compare a sample with a set, use ",[16,763,764],{},"getExceedances"," from ",[21,767,769],{"href":768},"\u002Futils\u002Fguides\u002Fwater-quality",[16,770,771],{},"@welldot\u002Futils",", which handles censored values, presence limits and turbidity comparability.",[774,775,776],"caution",{},[12,777,778],{},"The limit values are transcribed from the cited documents. Check them against the official text before any regulatory use.",[35,780,782],{"id":781},"related","Related",[784,785,786,794],"ul",{},[787,788,789,793],"li",{},[21,790,792],{"href":791},"\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality","Water quality"," in the spec",[787,795,796,800],{},[21,797,799],{"href":798},"\u002Fcore\u002Fguides\u002Funit-conversion","Unit conversion"," for lab report units",[802,803,804],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":45,"searchDepth":91,"depth":91,"links":806},[807,808,809,810],{"id":37,"depth":91,"text":38},{"id":379,"depth":91,"text":380},{"id":552,"depth":91,"text":553},{"id":781,"depth":91,"text":782},"Look up water quality parameters, their units and labels, resolve CAS numbers, and use the WHO, EU and Brazilian limit sets that @welldot\u002Fcore ships as data.","md",{},"\u002Fcore\u002Fguides\u002Fwater-quality-vocabulary","---\ntitle: Water quality vocabulary\ndescription: Look up water quality parameters, their units and labels, resolve CAS numbers, and use the WHO, EU and Brazilian limit sets that @welldot\u002Fcore ships as data.\n---\n\nWater quality results in a `.well` file name their parameter by a code and a vocabulary, and take their unit from the code ([parameter vocabulary](\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality#parameter-vocabulary)). `@welldot\u002Fcore` publishes the `welldot` vocabulary as versioned data, together with drinking water limit sets that are deliberately kept out of the files.\n\n## Parameters\n\n```ts\nimport { getParameterDefinition, getParameterLabel } from '@welldot\u002Fcore';\n\ngetParameterDefinition({ code: 'nitrate_as_n', vocabulary: 'welldot' });\n\u002F\u002F {\n\u002F\u002F   code: 'nitrate_as_n', group: 'nutrient', label: 'Nitrate as N',\n\u002F\u002F   labels: { pt: 'Nitrato como N' }, unit: { symbol: 'mg\u002FL', ucum: 'mg\u002FL' },\n\u002F\u002F   form: 'value', molar_mass: 14.007, charge: -1\n\u002F\u002F }\n\ngetParameterLabel({ code: 'nitrate_as_n', vocabulary: 'welldot' }, 'pt'); \u002F\u002F 'Nitrato como N'\n```\n\nEach `ParameterDefinition` carries the code, its group (`physical`, `major_ion`, `metal`, `nutrient`, `microbiology`, …), the English label and translations, the canonical unit (display symbol and UCUM code), the form of a result (`value`, `presence` or `text`), the CAS number when there is one, and molar mass and charge for ions used in ion balance and hydrochemical diagrams.\n\n| Export                             | Description                                                                                     |\n| ---------------------------------- | ----------------------------------------------------------------------------------------------- |\n| `WATER_QUALITY_PARAMETERS`         | The 98 `welldot` parameter definitions.                                                         |\n| `WATER_QUALITY_VOCABULARY_VERSION` | Version of the published vocabulary.                                                            |\n| `WATER_QUALITY_UNITS`              | The canonical units the vocabulary uses.                                                        |\n| `getParameterDefinition(param)`    | Looks up a `{ code, vocabulary }`; a `cas` code resolves to its `welldot` entry.                |\n| `getParameterLabel(param, locale)` | Display name; unknown codes are returned as they are.                                           |\n| `parameterKey(param)`              | One identity for a `welldot` code and its CAS equivalent, for grouping and duplicate detection. |\n| `isKnownParameter(param)`          | `false` only for a `welldot` code this vocabulary version does not know.                        |\n\n## CAS numbers\n\nSubstances can be identified by their CAS registry number ([vocabulary rules](\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality#vocabulary-rules)). The library resolves the ones that have a `welldot` equivalent:\n\n```ts\nimport { getParameterDefinition, parameterKey } from '@welldot\u002Fcore';\n\ngetParameterDefinition({ code: '14808-79-8', vocabulary: 'cas' })?.code; \u002F\u002F 'sulfate'\nparameterKey({ code: '14808-79-8', vocabulary: 'cas' }); \u002F\u002F 'sulfate'\nparameterKey({ code: 'sulfate', vocabulary: 'welldot' }); \u002F\u002F 'sulfate', the same key\n```\n\n## Limit sets\n\nLimits are not stored in `.well` files: a file records what was measured, and the reader decides which standard to compare it with ([limit sets are not part of the file](\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality#limit-sets-are-not-part-of-the-file)). The package ships three sets:\n\n| Export              | Source                                           | `id`                |\n| ------------------- | ------------------------------------------------ | ------------------- |\n| `WHO_GDWQ_2022`     | WHO Guidelines for Drinking-water Quality (2022) | `who_gdwq_2022`     |\n| `EU_2020_2184`      | EU Drinking Water Directive 2020\u002F2184            | `eu_2020_2184`      |\n| `BR_GM_MS_888_2021` | Brazil, Portaria GM\u002FMS 888\u002F2021                  | `br_gm_ms_888_2021` |\n\n`WATER_QUALITY_LIMIT_SETS` lists them in display order, and `getLimitSet(id)` finds one by id. A set has a `name`, a `jurisdiction`, its `source` and a list of `limits`, each with a parameter `code`, a `min` and\u002For `max` in the parameter's canonical unit and a `basis`.\n\n```ts\nimport { getLimitSet } from '@welldot\u002Fcore';\n\ngetLimitSet('who_gdwq_2022')?.limits.find(l => l.code === 'arsenic');\n\u002F\u002F { code: 'arsenic', max: 0.01, basis: 'health', note: 'provisional' }\n```\n\nTo compare a sample with a set, use `getExceedances` from [`@welldot\u002Futils`](\u002Futils\u002Fguides\u002Fwater-quality), which handles censored values, presence limits and turbidity comparability.\n\n::caution\nThe limit values are transcribed from the cited documents. Check them against the official text before any regulatory use.\n::\n\n## Related\n\n- [Water quality](\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality) in the spec\n- [Unit conversion](\u002Fcore\u002Fguides\u002Funit-conversion) for lab report units\n",{"title":7,"description":811},"core\u002F2.guides\u002F5.water-quality-vocabulary","ViNk6GpvvoTBpK6Px3gvlzBj45Ci5WsmImniqxxscQA",{"docs_en":820,"spec":1131,"changelogs":1180},[821,841,860,911,1021,1075],{"title":822,"path":823,"stem":824,"children":825},"Ai","\u002Fai","ai",[826,829,833,837],{"title":827,"path":823,"stem":828},"Introduction","ai\u002Findex",{"title":830,"path":831,"stem":832},"Converting reports with an assistant","\u002Fai\u002Fconversion-skill","ai\u002Fconversion-skill",{"title":834,"path":835,"stem":836},"llms.txt and Markdown pages","\u002Fai\u002Fllms","ai\u002Fllms",{"title":838,"path":839,"stem":840},"MCP server","\u002Fai\u002Fmcp","ai\u002Fmcp",{"title":842,"path":843,"stem":844,"children":845},"Contributing","\u002Fcontributing","contributing",[846,848,852,856],{"title":827,"path":843,"stem":847},"contributing\u002Findex",{"title":849,"path":850,"stem":851},"Writing docs","\u002Fcontributing\u002Fwriting-docs","contributing\u002F1.writing-docs",{"title":853,"path":854,"stem":855},"Update rules","\u002Fcontributing\u002Fupdate-rules","contributing\u002F2.update-rules",{"title":857,"path":858,"stem":859},"Content components","\u002Fcontributing\u002Fcomponents","contributing\u002Fcomponents",{"title":861,"path":862,"stem":863,"children":864},"Core","\u002Fcore","core",[865,867,881,905],{"title":827,"path":862,"stem":866},"core\u002Findex",{"title":868,"path":869,"stem":870,"children":871,"page":880},"Getting Started","\u002Fcore\u002Fgetting-started","core\u002F1.getting-started",[872,876],{"title":873,"path":874,"stem":875},"Installation","\u002Fcore\u002Fgetting-started\u002Finstallation","core\u002F1.getting-started\u002F1.installation",{"title":877,"path":878,"stem":879},"First use","\u002Fcore\u002Fgetting-started\u002Ffirst-use","core\u002F1.getting-started\u002F2.first-use",false,{"title":882,"path":883,"stem":884,"children":885,"page":880},"Guides","\u002Fcore\u002Fguides","core\u002F2.guides",[886,890,894,896,900,901],{"title":887,"path":888,"stem":889},"Parsing and validating","\u002Fcore\u002Fguides\u002Fparsing-and-validating","core\u002F2.guides\u002F1.parsing-and-validating",{"title":891,"path":892,"stem":893},"Serializing and sharing","\u002Fcore\u002Fguides\u002Fserializing-and-sharing","core\u002F2.guides\u002F2.serializing-and-sharing",{"title":799,"path":798,"stem":895},"core\u002F2.guides\u002F3.unit-conversion",{"title":897,"path":898,"stem":899},"Vocabularies and textures","\u002Fcore\u002Fguides\u002Fvocabularies-and-textures","core\u002F2.guides\u002F4.vocabularies-and-textures",{"title":7,"path":814,"stem":817},{"title":902,"path":903,"stem":904},"Versions and time zones","\u002Fcore\u002Fguides\u002Fversions-and-time-zones","core\u002F2.guides\u002F6.versions-and-time-zones",{"title":906,"path":907,"stem":908,"children":909},"API reference","\u002Fcore\u002Fapi","core\u002Fapi\u002Findex",[910],{"title":906,"path":907,"stem":908},{"title":912,"path":913,"stem":914,"children":915},"Format","\u002Fformat","format",[916,918,938,967,991,1011,1017],{"title":827,"path":913,"stem":917},"format\u002Findex",{"title":868,"path":919,"stem":920,"children":921,"page":880},"\u002Fformat\u002Fgetting-started","format\u002F1.getting-started",[922,926,930,934],{"title":923,"path":924,"stem":925},"What is .well?","\u002Fformat\u002Fgetting-started\u002Fwhat-is-well","format\u002F1.getting-started\u002F1.what-is-well",{"title":927,"path":928,"stem":929},"For geologists","\u002Fformat\u002Fgetting-started\u002Ffor-geologists","format\u002F1.getting-started\u002F2.for-geologists",{"title":931,"path":932,"stem":933},"For developers","\u002Fformat\u002Fgetting-started\u002Ffor-developers","format\u002F1.getting-started\u002F3.for-developers",{"title":935,"path":936,"stem":937},"Your first .well file","\u002Fformat\u002Fgetting-started\u002Ffirst-well-file","format\u002F1.getting-started\u002F4.first-well-file",{"title":939,"path":940,"stem":941,"children":942,"page":880},"Concepts","\u002Fformat\u002Fconcepts","format\u002F2.concepts",[943,947,951,955,959,963],{"title":944,"path":945,"stem":946},"Depths and intervals","\u002Fformat\u002Fconcepts\u002Fdepths-and-intervals","format\u002F2.concepts\u002F1.depths-and-intervals",{"title":948,"path":949,"stem":950},"Units and precision","\u002Fformat\u002Fconcepts\u002Funits-and-precision","format\u002F2.concepts\u002F2.units-and-precision",{"title":952,"path":953,"stem":954},"Vocabularies","\u002Fformat\u002Fconcepts\u002Fvocabularies","format\u002F2.concepts\u002F3.vocabularies",{"title":956,"path":957,"stem":958},"Profiles","\u002Fformat\u002Fconcepts\u002Fprofiles","format\u002F2.concepts\u002F4.profiles",{"title":960,"path":961,"stem":962},"Versions and deprecation","\u002Fformat\u002Fconcepts\u002Fversions-and-deprecation","format\u002F2.concepts\u002F5.versions-and-deprecation",{"title":964,"path":965,"stem":966},"Extensibility","\u002Fformat\u002Fconcepts\u002Fextensibility","format\u002F2.concepts\u002F6.extensibility",{"title":882,"path":968,"stem":969,"children":970,"page":880},"\u002Fformat\u002Fguides","format\u002F3.guides",[971,975,979,983,987],{"title":972,"path":973,"stem":974},"Writing a .well by hand","\u002Fformat\u002Fguides\u002Fwriting-by-hand","format\u002F3.guides\u002F1.writing-by-hand",{"title":976,"path":977,"stem":978},"Converting a report","\u002Fformat\u002Fguides\u002Fconverting-a-report","format\u002F3.guides\u002F2.converting-a-report",{"title":980,"path":981,"stem":982},"Validating","\u002Fformat\u002Fguides\u002Fvalidating","format\u002F3.guides\u002F3.validating",{"title":984,"path":985,"stem":986},"Extending for your own needs","\u002Fformat\u002Fguides\u002Fextending","format\u002F3.guides\u002F4.extending",{"title":988,"path":989,"stem":990},"Building an editor or database on .well","\u002Fformat\u002Fguides\u002Fbuilding-on-well","format\u002F3.guides\u002F5.building-on-well",{"title":992,"path":993,"stem":994,"children":995},"Overview","\u002Fformat\u002Freference","format\u002F4.reference\u002Findex",[996,997,1001,1005],{"title":992,"path":993,"stem":994},{"title":998,"path":999,"stem":1000},"JSON Schema","\u002Fformat\u002Freference\u002Fjson-schema","format\u002F4.reference\u002F1.json-schema",{"title":1002,"path":1003,"stem":1004},"Example wells","\u002Fformat\u002Freference\u002Fexamples","format\u002F4.reference\u002F2.examples",{"title":1006,"path":1007,"stem":1008,"children":1009},"Object reference","\u002Fformat\u002Freference\u002Fobjects","format\u002Freference\u002Fobjects\u002Findex",[1010],{"title":1006,"path":1007,"stem":1008},{"title":1012,"path":1013,"stem":1014,"children":1015},"About the spec","\u002Fformat\u002Fspec","format\u002F5.spec\u002Findex",[1016],{"title":1012,"path":1013,"stem":1014},{"title":1018,"path":1019,"stem":1020},"Changelog","\u002Fformat\u002Fchangelog","format\u002F6.changelog",{"title":1022,"path":1023,"stem":1024,"children":1025},"Render","\u002Frender","render",[1026,1028,1038,1070],{"title":827,"path":1023,"stem":1027},"render\u002Findex",{"title":868,"path":1029,"stem":1030,"children":1031,"page":880},"\u002Frender\u002Fgetting-started","render\u002F1.getting-started",[1032,1035],{"title":873,"path":1033,"stem":1034},"\u002Frender\u002Fgetting-started\u002Finstallation","render\u002F1.getting-started\u002F1.installation",{"title":877,"path":1036,"stem":1037},"\u002Frender\u002Fgetting-started\u002Ffirst-use","render\u002F1.getting-started\u002F2.first-use",{"title":882,"path":1039,"stem":1040,"children":1041,"page":880},"\u002Frender\u002Fguides","render\u002F2.guides",[1042,1046,1050,1054,1058,1062,1066],{"title":1043,"path":1044,"stem":1045},"Panels and layout","\u002Frender\u002Fguides\u002Fpanels-and-layout","render\u002F2.guides\u002F1.panels-and-layout",{"title":1047,"path":1048,"stem":1049},"Layers and labels","\u002Frender\u002Fguides\u002Flayers-and-labels","render\u002F2.guides\u002F2.layers-and-labels",{"title":1051,"path":1052,"stem":1053},"Theming","\u002Frender\u002Fguides\u002Ftheming","render\u002F2.guides\u002F3.theming",{"title":1055,"path":1056,"stem":1057},"Locale and units","\u002Frender\u002Fguides\u002Flocale-and-units","render\u002F2.guides\u002F4.locale-and-units",{"title":1059,"path":1060,"stem":1061},"Legends","\u002Frender\u002Fguides\u002Flegends","render\u002F2.guides\u002F5.legends",{"title":1063,"path":1064,"stem":1065},"Zoom, pan and highlights","\u002Frender\u002Fguides\u002Finteraction","render\u002F2.guides\u002F6.interaction",{"title":1067,"path":1068,"stem":1069},"Using it in a framework","\u002Frender\u002Fguides\u002Fframeworks","render\u002F2.guides\u002F7.frameworks",{"title":906,"path":1071,"stem":1072,"children":1073},"\u002Frender\u002Fapi","render\u002Fapi\u002Findex",[1074],{"title":906,"path":1071,"stem":1072},{"title":1076,"path":1077,"stem":1078,"children":1079},"Utils","\u002Futils","utils",[1080,1082,1092,1126],{"title":827,"path":1077,"stem":1081},"utils\u002Findex",{"title":868,"path":1083,"stem":1084,"children":1085,"page":880},"\u002Futils\u002Fgetting-started","utils\u002F1.getting-started",[1086,1089],{"title":873,"path":1087,"stem":1088},"\u002Futils\u002Fgetting-started\u002Finstallation","utils\u002F1.getting-started\u002F1.installation",{"title":877,"path":1090,"stem":1091},"\u002Futils\u002Fgetting-started\u002Ffirst-use","utils\u002F1.getting-started\u002F2.first-use",{"title":882,"path":1093,"stem":1094,"children":1095,"page":880},"\u002Futils\u002Fguides","utils\u002F2.guides",[1096,1100,1104,1108,1112,1114,1118,1122],{"title":1097,"path":1098,"stem":1099},"Geometry and volumes","\u002Futils\u002Fguides\u002Fgeometry-and-volumes","utils\u002F2.guides\u002F1.geometry-and-volumes",{"title":1101,"path":1102,"stem":1103},"Water levels and pumping tests","\u002Futils\u002Fguides\u002Fpumping-tests","utils\u002F2.guides\u002F2.pumping-tests",{"title":1105,"path":1106,"stem":1107},"Permits","\u002Futils\u002Fguides\u002Fpermits","utils\u002F2.guides\u002F3.permits",{"title":1109,"path":1110,"stem":1111},"Operation and production","\u002Futils\u002Fguides\u002Foperation","utils\u002F2.guides\u002F4.operation",{"title":792,"path":768,"stem":1113},"utils\u002F2.guides\u002F5.water-quality",{"title":1115,"path":1116,"stem":1117},"Logger import","\u002Futils\u002Fguides\u002Flogger-import","utils\u002F2.guides\u002F6.logger-import",{"title":1119,"path":1120,"stem":1121},"SIAGAS import","\u002Futils\u002Fguides\u002Fsiagas-import","utils\u002F2.guides\u002F7.siagas-import",{"title":1123,"path":1124,"stem":1125},"Formatting","\u002Futils\u002Fguides\u002Fformatting","utils\u002F2.guides\u002F8.formatting",{"title":906,"path":1127,"stem":1128,"children":1129},"\u002Futils\u002Fapi","utils\u002Fapi\u002Findex",[1130],{"title":906,"path":1127,"stem":1128},[1132],{"title":912,"path":913,"stem":914,"children":1133,"page":880},[1134],{"title":1135,"path":1013,"stem":1136,"children":1137,"page":880},"Spec","format\u002Fspec",[1138,1147,1156],{"title":1139,"path":1140,"stem":1141,"children":1142,"page":880},"Reference","\u002Fformat\u002Fspec\u002Freference","format\u002Fspec\u002Freference",[1143],{"title":1144,"path":1145,"stem":1146},"FGDC Texture Patterns Reference","\u002Fformat\u002Fspec\u002Freference\u002Ffgdc-textures","format\u002Fspec\u002Freference\u002Ffgdc-textures",{"title":1148,"path":1149,"stem":1150,"children":1151,"page":880},"V1","\u002Fformat\u002Fspec\u002Fv1","format\u002Fspec\u002Fv1",[1152],{"title":1153,"path":1154,"stem":1155},".well File Format Specification","\u002Fformat\u002Fspec\u002Fv1\u002Fwell-format","format\u002Fspec\u002Fv1\u002Fwell-format",{"title":1157,"path":1158,"stem":1159,"children":1160,"page":880},"V2","\u002Fformat\u002Fspec\u002Fv2","format\u002Fspec\u002Fv2",[1161,1165,1169,1173,1177],{"title":1162,"path":1163,"stem":1164},".well File Format Specification — Version 2.4: Format Reference","\u002Fformat\u002Fspec\u002Fv2\u002Fformat-reference","format\u002Fspec\u002Fv2\u002Fformat-reference",{"title":1166,"path":1167,"stem":1168},".well File Format Specification — Version 2.4: Interoperability","\u002Fformat\u002Fspec\u002Fv2\u002Finteroperability","format\u002Fspec\u002Fv2\u002Finteroperability",{"title":1170,"path":1171,"stem":1172},".well File Format Specification — Version 2.4: Object Schemas","\u002Fformat\u002Fspec\u002Fv2\u002Fobject-schemas","format\u002Fspec\u002Fv2\u002Fobject-schemas",{"title":1174,"path":1175,"stem":1176},".well File Format Specification — Version 2.4: Overview","\u002Fformat\u002Fspec\u002Fv2\u002Foverview","format\u002Fspec\u002Fv2\u002Foverview",{"title":1178,"path":791,"stem":1179},".well File Format Specification — Version 2.4: Water Quality","format\u002Fspec\u002Fv2\u002Fwater-quality",[1181,1186,1192],{"title":861,"path":862,"stem":863,"children":1182,"page":880},[1183],{"title":28,"path":1184,"stem":1185},"\u002Fcore\u002Fchangelog","core\u002FCHANGELOG",{"title":1022,"path":1023,"stem":1024,"children":1187,"page":880},[1188],{"title":1189,"path":1190,"stem":1191},"@welldot\u002Frender","\u002Frender\u002Fchangelog","render\u002FCHANGELOG",{"title":1076,"path":1077,"stem":1078,"children":1193,"page":880},[1194],{"title":771,"path":1195,"stem":1196},"\u002Futils\u002Fchangelog","utils\u002FCHANGELOG",1793050497261]