diff --git a/training/build_aroma_dataset.py b/training/build_aroma_dataset.py
index b3395f7..3c4a914 100644
--- a/training/build_aroma_dataset.py
+++ b/training/build_aroma_dataset.py
@@ -123,7 +123,7 @@
"mimosa": ["mimosa", "acacia"],
"narcissus": ["narcissus", "daffodil", "jonquil"],
"corky": ["corky", "cork taint", "chloroanisole", "musty cork", "mouldy cork"],
- "violet_leaf": ["violet leaf", "violet-leaf", "leafy violet"],
+ "violetleaf": ["violet leaf", "violet-leaf", "leafy violet"],
"fir": ["fir", "pine needle", "pine-needle", "conifer", "spruce"],
"oakmoss": ["oakmoss", "oak moss", "mossy"],
"vetiver": ["vetiver", "vetivert"],
@@ -149,7 +149,7 @@
"cumin": ["cumin", "cuminic"],
"passionfruit": ["passion fruit", "passionfruit", "passion-fruit"],
"rosemary": ["rosemary"],
- "black_pepper": ["black pepper", "peppercorn", "peppery"],
+ "blackpepper": ["black pepper", "peppercorn", "peppery"],
"nutmeg": ["nutmeg", "mace"],
"sage": ["sage", "salvia"],
"thyme": ["thyme"],
@@ -176,7 +176,7 @@
"costus": ["costus"],
"tagetes": ["tagetes", "marigold"],
"truffle": ["truffle"],
- "clary_sage": ["clary sage", "clary"],
+ "clarysage": ["clary sage", "clary"],
"elemi": ["elemi"],
"labdanum": ["labdanum", "cistus", "rockrose"],
"wormwood": ["wormwood", "absinthe", "artemisia"],
diff --git a/training/predict.py b/training/predict.py
index f22f0b0..9409140 100644
--- a/training/predict.py
+++ b/training/predict.py
@@ -922,7 +922,7 @@ def analyze_balance(ingredients):
"geranium": "geranium — rosy-green (geraniol, citronellol, rose oxide)",
"eucalyptus": "eucalyptus — cineole / camphoraceous terpenoids",
"corky": "corky / cork-taint — haloanisoles (TCA) & moldy phenols",
- "violet_leaf": "violet leaf — green-cucumber (methyl octine carbonate, 2,6-nonadienal); distinct from powdery violet",
+ "violetleaf": "violet leaf — green-cucumber (methyl octine carbonate, 2,6-nonadienal); distinct from powdery violet",
"fir": "fir / pine-needle — bornyl acetate & conifer terpenes",
"oakmoss": "oakmoss — mossy orcinol / orsellinate esters (fragrance; atranol restricted)",
"vetiver": "vetiver — earthy-woody sesquiterpenes (vetivones, khusimol)",
@@ -943,7 +943,7 @@ def analyze_balance(ingredients):
"cumin": "cumin — cuminaldehyde & cymene terpenes",
"passionfruit": "passionfruit — tropical thiols & esters (mercaptohexanol, oxathiane)",
"rosemary": "rosemary — cineole / camphor / verbenone herb",
- "black_pepper": "black pepper — rotundone & peppery sesquiterpenes",
+ "blackpepper": "black pepper — rotundone & peppery sesquiterpenes",
"nutmeg": "nutmeg / mace — myristicin & terpene spice",
"sage": "sage — thujones, camphor & cineole",
"thyme": "thyme — thymol / carvacrol phenolic herb",
@@ -960,7 +960,7 @@ def analyze_balance(ingredients):
"davana": "davana — davanone & davana ether (fruity-balsamic; narrow scaffold)",
"costus": "costus — costunolide & sesquiterpene lactones",
"truffle": "truffle — dimethyl-polysulfides & dithiapentane (savoury-sulfurous)",
- "clary_sage": "clary sage — sclareol / linalyl acetate (amber-herbal)",
+ "clarysage": "clary sage — sclareol / linalyl acetate (amber-herbal)",
"elemi": "elemi — elemol & elemicin (lemon-resinous)",
"labdanum": "labdanum / cistus — labdane amber-resins",
"styrax": "styrax / storax — cinnamate esters (sweet-balsamic)",
diff --git a/training/workbench.html b/training/workbench.html
index f1dced4..2550d89 100644
--- a/training/workbench.html
+++ b/training/workbench.html
@@ -1107,7 +1107,7 @@
Software & type
rancid:'#9A8B5A',tarry:'#4A4038',winey:'#8E4B6E',honey:'#E0A83C',apple:'#8DBF4A',
cherry:'#C0392B',pine:'#3FA06B',banana:'#E6C84D',fatty:'#C9B27A',petroleum:'#6E7B8B',
alcoholic:'#9FB6C4',musky:'#8B7BA5',putrid:'#6E7A4A',soapy:'#B9C6D0',vegetable:'#6FA36B',bready:'#C7A06A',odorless:'#9AA4AC',
- onion:'#B7A64B',neroli:'#F0A5A0',aldehydic:'#E8C070',animalic:'#8A6B5A',amber:'#C08A4E',leathery:'#6E5544',powdery:'#D9C6D0',resinous:'#7A8B5A',terpenic:'#6B9E5A',ozonic:'#6FC2C4',hyacinth:'#8FC46A',cooling:'#6FD0C0',metallic:'#9BB0BE',lactonic:'#E3C99A',popcorn:'#D9B87A',celery:'#A8C46A',maple:'#B5773A',chamomile:'#E8D888',tobacco:'#8A6B4A',carnation:'#D9607A',mimosa:'#E8D77A',magnolia:'#E6E29A',narcissus:'#E0C878',saffron:'#E0700E',tuberose:'#EBA9C0',gardenia:'#E8C9D6',ylang:'#D9A6C4',lilac:'#C9A6D6',osmanthus:'#E8B48A',geranium:'#D77A8E',eucalyptus:'#5FA98A',corky:'#8A8A6E',violet_leaf:'#7DB36A',fir:'#3E7A5A',oakmoss:'#6E7A4A',vetiver:'#7A6B4A',patchouli:'#8A5A3A',sandalwood:'#C9A87A',cedarwood:'#9C6B4A',cognac:'#A85A2E',grapefruit:'#E8846A',bergamot:'#C8D45A',mandarin:'#EE9A2E',lime:'#8FC44A',yuzu:'#D4D46A',honeysuckle:'#E8C86A',freesia:'#E0D0A0',cyclamen:'#D98AB0',linden:'#C8D488',coriander:'#9DBE6A',cumin:'#B5883A',passionfruit:'#E0C84A',rosemary:'#5A8A6A',black_pepper:'#6E5A4A',nutmeg:'#A8703A',sage:'#8AA07A',thyme:'#7A9A5A',oregano:'#8A9A4A',mustard:'#D9C84A',pineapple:'#EBD24A',strawberry:'#E0506A',raspberry:'#C0396B',myrrh:'#8A6B4E',frankincense:'#B0A07A',musty:'#8AA07A',hazelnut:'#C6B07A',blueberry:'#C08A6A',guava:'#9AA6B0',juniper:'#C6B07A',allspice:'#B0A07A',dill:'#8AA07A',tomato:'#C08A6A',fig:'#C08A6A',mango:'#B0A07A',champaca:'#C6B07A',styrax:'#8AA07A',davana:'#B0A07A',truffle:'#8AA07A',clary_sage:'#C08A6A',opoponax:'#8AA07A',turmeric:'#9AA6B0',costus:'#C6B07A',elemi:'#9AA6B0',labdanum:'#C6B07A',};
+ onion:'#B7A64B',neroli:'#F0A5A0',aldehydic:'#E8C070',animalic:'#8A6B5A',amber:'#C08A4E',leathery:'#6E5544',powdery:'#D9C6D0',resinous:'#7A8B5A',terpenic:'#6B9E5A',ozonic:'#6FC2C4',hyacinth:'#8FC46A',cooling:'#6FD0C0',metallic:'#9BB0BE',lactonic:'#E3C99A',popcorn:'#D9B87A',celery:'#A8C46A',maple:'#B5773A',chamomile:'#E8D888',tobacco:'#8A6B4A',carnation:'#D9607A',mimosa:'#E8D77A',magnolia:'#E6E29A',narcissus:'#E0C878',saffron:'#E0700E',tuberose:'#EBA9C0',gardenia:'#E8C9D6',ylang:'#D9A6C4',lilac:'#C9A6D6',osmanthus:'#E8B48A',geranium:'#D77A8E',eucalyptus:'#5FA98A',corky:'#8A8A6E',violetleaf:'#7DB36A',fir:'#3E7A5A',oakmoss:'#6E7A4A',vetiver:'#7A6B4A',patchouli:'#8A5A3A',sandalwood:'#C9A87A',cedarwood:'#9C6B4A',cognac:'#A85A2E',grapefruit:'#E8846A',bergamot:'#C8D45A',mandarin:'#EE9A2E',lime:'#8FC44A',yuzu:'#D4D46A',honeysuckle:'#E8C86A',freesia:'#E0D0A0',cyclamen:'#D98AB0',linden:'#C8D488',coriander:'#9DBE6A',cumin:'#B5883A',passionfruit:'#E0C84A',rosemary:'#5A8A6A',blackpepper:'#6E5A4A',nutmeg:'#A8703A',sage:'#8AA07A',thyme:'#7A9A5A',oregano:'#8A9A4A',mustard:'#D9C84A',pineapple:'#EBD24A',strawberry:'#E0506A',raspberry:'#C0396B',myrrh:'#8A6B4E',frankincense:'#B0A07A',musty:'#8AA07A',hazelnut:'#C6B07A',blueberry:'#C08A6A',guava:'#9AA6B0',juniper:'#C6B07A',allspice:'#B0A07A',dill:'#8AA07A',tomato:'#C08A6A',fig:'#C08A6A',mango:'#B0A07A',champaca:'#C6B07A',styrax:'#8AA07A',davana:'#B0A07A',truffle:'#8AA07A',clarysage:'#C08A6A',opoponax:'#8AA07A',turmeric:'#9AA6B0',costus:'#C6B07A',elemi:'#9AA6B0',labdanum:'#C6B07A',};
const aromaColor = n => AROMA_COLORS[n] || 'var(--aroma)';
const $ = id => document.getElementById(id);
@@ -1267,7 +1267,7 @@ Software & type
mandarin:'mandarin / tangerine — sinensals over citrus terpenes',
honeysuckle:'honeysuckle — nectar floral (hotrienol, jasmine lactone); marginal (0.74)',
freesia:'freesia — soft ionone-green floral',
- violet_leaf:'violet leaf — green-cucumber (methyl octine carbonate, 2,6-nonadienal); distinct from powdery violet',
+ violetleaf:'violet leaf — green-cucumber (methyl octine carbonate, 2,6-nonadienal); distinct from powdery violet',
oakmoss:'oakmoss — mossy orcinol / orsellinate esters (fragrance; atranol restricted)',
patchouli:'patchouli — camphoraceous-woody (patchoulol, patchoulenes)',
linden:'linden / lime-blossom — honeyed floral (farnesol, decadienal); marginal (0.81)',
@@ -1283,7 +1283,7 @@ Software & type
strawberry:'strawberry — furaneol & fruity esters; marginal (0.78)',
cumin:'cumin — cuminaldehyde & cymene terpenes',
rosemary:'rosemary — cineole / camphor / verbenone herb',
- black_pepper:'black pepper — rotundone & peppery sesquiterpenes',
+ blackpepper:'black pepper — rotundone & peppery sesquiterpenes',
nutmeg:'nutmeg / mace — myristicin & terpene spice',
thyme:'thyme — thymol / carvacrol phenolic herb',
oregano:'oregano / marjoram — carvacrol & thymol',
@@ -1306,7 +1306,7 @@ Software & type
styrax:'styrax / storax — cinnamate esters (sweet-balsamic)',
davana:'davana — davanone & davana ether (fruity-balsamic; narrow scaffold)',
truffle:'truffle — dimethyl-polysulfides & dithiapentane (savoury-sulfurous)',
- clary_sage:'clary sage — sclareol / linalyl acetate (amber-herbal)',
+ clarysage:'clary sage — sclareol / linalyl acetate (amber-herbal)',
opoponax:'opoponax — bisabolene & santalol resins',
turmeric:'turmeric — ar-turmerone & curcuma sesquiterpenes',
costus:'costus — costunolide & sesquiterpene lactones',
@@ -1773,7 +1773,7 @@ Software & type
// aroma head shows, even if the current map has few or zero of one (e.g. salty).
const TASTE_CLASSES = ['sweet','bitter','umami','sour','salty','tasteless'];
// all trained aroma heads — keep in sync with aroma_models/ (see docs/AROMA-AUDIT.md)
-const AROMA_HEADS = ['odorless','pungent','sweet','ammoniacal','fruity','ethereal','phenolic','sulfurous','floral','acidic','garlic','fishy','gardenia','camphor','terpenic','fatty','almond','champaca','minty','ylang','spicy','petroleum','honeysuckle','cherry','jasmine','earthy','grassy','aldehydic','resinous','fresh','grape','berry','putrid','animalic','powdery','raspberry','orange','muguet','waxy','alcoholic','leathery','hyacinth','citrus','herbal','meaty','musky','geranium','wintergreen','green','woody','pine','winey','burnt','ozonic','saffron','oakmoss','mustard','pineapple','styrax','tropical','lavender','rose','nutty','anise','cheesy','creamy','soapy','amber','lactonic','popcorn','sandalwood','strawberry','neroli','magnolia','vanilla','balsamic','smoky','banana','vegetable','bready','cooling','celery','grapefruit','hazelnut','davana','truffle','clary_sage','melon','mushroom','cassis','fennel','buttery','onion','coconut','apple','coffee','maple','carnation','mimosa','corky','bergamot','mandarin','freesia','cumin','rosemary','black_pepper','nutmeg','thyme','oregano','myrrh','blueberry','guava','juniper','allspice','dill','opoponax','peach','violet','ginger','hay','tonka','caramel','rancid','medicinal','honey','clove','cinnamon','tarry','metallic','chamomile','violet_leaf','patchouli','linden','coriander','frankincense','mango','tomato','turmeric','costus','pear','apricot','malty','marine','cardamom','plum','tea','elderflower','cocoa','lilac','osmanthus','eucalyptus','tobacco','narcissus','fir','vetiver','cedarwood','cognac','lime','yuzu','cyclamen','passionfruit','sage','elemi','labdanum'];
+const AROMA_HEADS = ['odorless','pungent','sweet','ammoniacal','fruity','ethereal','phenolic','sulfurous','floral','acidic','garlic','fishy','gardenia','camphor','terpenic','fatty','almond','champaca','minty','ylang','spicy','petroleum','honeysuckle','cherry','jasmine','earthy','grassy','aldehydic','resinous','fresh','grape','berry','putrid','animalic','powdery','raspberry','orange','muguet','waxy','alcoholic','leathery','hyacinth','citrus','herbal','meaty','musky','geranium','wintergreen','green','woody','pine','winey','burnt','ozonic','saffron','oakmoss','mustard','pineapple','styrax','tropical','lavender','rose','nutty','anise','cheesy','creamy','soapy','amber','lactonic','popcorn','sandalwood','strawberry','neroli','magnolia','vanilla','balsamic','smoky','banana','vegetable','bready','cooling','celery','grapefruit','hazelnut','davana','truffle','clarysage','melon','mushroom','cassis','fennel','buttery','onion','coconut','apple','coffee','maple','carnation','mimosa','corky','bergamot','mandarin','freesia','cumin','rosemary','blackpepper','nutmeg','thyme','oregano','myrrh','blueberry','guava','juniper','allspice','dill','opoponax','peach','violet','ginger','hay','tonka','caramel','rancid','medicinal','honey','clove','cinnamon','tarry','metallic','chamomile','violetleaf','patchouli','linden','coriander','frankincense','mango','tomato','turmeric','costus','pear','apricot','malty','marine','cardamom','plum','tea','elderflower','cocoa','lilac','osmanthus','eucalyptus','tobacco','narcissus','fir','vetiver','cedarwood','cognac','lime','yuzu','cyclamen','passionfruit','sage','elemi','labdanum'];
function legendClasses(){
if(_mapColorBy==='aroma') return AROMA_HEADS;
if(_mapColorBy==='both') return TASTE_CLASSES.concat(AROMA_HEADS);