|
22 | 22 | LOGGER = logging.getLogger(__name__)
|
23 | 23 |
|
24 | 24 | CROP_OPTIONS = {
|
25 |
| - # TODO: use human-readable translatable crop names (#614) |
26 |
| - crop: {"description": crop} for crop in [ |
27 |
| - "abaca", "agave", "alfalfa", "almond", "aniseetc", |
28 |
| - "apple", "apricot", "areca", "artichoke", "asparagus", |
29 |
| - "avocado", "bambara", "banana", "barley", "bean", |
30 |
| - "beetfor", "berrynes", "blueberry", "brazil", |
31 |
| - "canaryseed", "carob", "carrot", "carrotfor", "cashew", |
32 |
| - "broadbean", "buckwheat", "cabbage", "cabbagefor", |
33 |
| - "cashewapple", "cassava", "castor", "cauliflower", |
34 |
| - "cerealnes", "cherry", "chestnut", "chickpea", |
35 |
| - "chicory", "chilleetc", "cinnamon", "citrusnes", |
36 |
| - "clove", "clover", "cocoa", "coconut", "coffee", |
37 |
| - "cotton", "cowpea", "cranberry", "cucumberetc", |
38 |
| - "currant", "date", "eggplant", "fibrenes", "fig", |
39 |
| - "flax", "fonio", "fornes", "fruitnes", "garlic", |
40 |
| - "ginger", "gooseberry", "grape", "grapefruitetc", |
41 |
| - "grassnes", "greenbean", "greenbroadbean", "greencorn", |
42 |
| - "greenonion", "greenpea", "groundnut", "hazelnut", |
43 |
| - "hemp", "hempseed", "hop", "jute", "jutelikefiber", |
44 |
| - "kapokfiber", "kapokseed", "karite", "kiwi", "kolanut", |
45 |
| - "legumenes", "lemonlime", "lentil", "lettuce", |
46 |
| - "linseed", "lupin", "maize", "maizefor", "mango", |
47 |
| - "mate", "melonetc", "melonseed", "millet", |
48 |
| - "mixedgrain", "mixedgrass", "mushroom", "mustard", |
49 |
| - "nutmeg", "nutnes", "oats", "oilpalm", "oilseedfor", |
50 |
| - "oilseednes", "okra", "olive", "onion", "orange", |
51 |
| - "papaya", "pea", "peachetc", "pear", "pepper", |
52 |
| - "peppermint", "persimmon", "pigeonpea", "pimento", |
53 |
| - "pineapple", "pistachio", "plantain", "plum", "poppy", |
54 |
| - "potato", "pulsenes", "pumpkinetc", "pyrethrum", |
55 |
| - "quince", "quinoa", "ramie", "rapeseed", "rasberry", |
56 |
| - "rice", "rootnes", "rubber", "rye", "ryefor", |
57 |
| - "safflower", "sesame", "sisal", "sorghum", |
58 |
| - "sorghumfor", "sourcherry, soybean", "spicenes", |
59 |
| - "spinach", "stonefruitnes", "strawberry", "stringbean", |
60 |
| - "sugarbeet", "sugarcane", "sugarnes", "sunflower", |
61 |
| - "swedefor", "sweetpotato", "tangetc", "taro", "tea", |
62 |
| - "tobacco", "tomato", "triticale", "tropicalnes", |
63 |
| - "tung", "turnipfor", "vanilla", "vegetablenes", |
64 |
| - "vegfor", "vetch", "walnut", "watermelon", "wheat", |
65 |
| - "yam", "yautia" |
66 |
| - ] |
| 25 | + # Human-readable/translatable crop names come from three sources: |
| 26 | + # (1) Monfreda et. al. Table 1 |
| 27 | + # (2) "EarthStat and FAO crop names and crop groups" table |
| 28 | + # (3) FAO's _World Programme for the Census of Agriculture 2020_ |
| 29 | + # Where (1) and (2) differ, default to (1), except where (2) is |
| 30 | + # more descriptive (i.e., include additional list items, alternate |
| 31 | + # names, qualifiers, and other disambiguations). |
| 32 | + # Where discrepancies remain, consult (3) for additional context. |
| 33 | + # See #614 for more details and links to sources. |
| 34 | + "abaca": {"description": gettext("Abaca (manila hemp)")}, |
| 35 | + "agave": {"description": gettext("Agave fibers, other")}, |
| 36 | + "alfalfa": {"description": gettext("Alfalfa")}, |
| 37 | + "almond": {"description": gettext("Almonds, with shell")}, |
| 38 | + "aniseetc": {"description": gettext("Anise, badian, fennel, coriander")}, |
| 39 | + "apple": {"description": gettext("Apples")}, |
| 40 | + "apricot": {"description": gettext("Apricots")}, |
| 41 | + "areca": {"description": gettext("Areca nuts (betel)")}, |
| 42 | + "artichoke": {"description": gettext("Artichokes")}, |
| 43 | + "asparagus": {"description": gettext("Asparagus")}, |
| 44 | + "avocado": {"description": gettext("Avocados")}, |
| 45 | + "bambara": {"description": gettext("Bambara beans")}, |
| 46 | + "banana": {"description": gettext("Bananas")}, |
| 47 | + "barley": {"description": gettext("Barley")}, |
| 48 | + "bean": {"description": gettext("Beans, dry")}, |
| 49 | + "beetfor": {"description": gettext("Beets for fodder")}, |
| 50 | + "berrynes": {"description": gettext("Berries, other")}, |
| 51 | + "blueberry": {"description": gettext("Blueberries")}, |
| 52 | + "brazil": {"description": gettext("Brazil nuts, with shell")}, |
| 53 | + "broadbean": {"description": gettext("Broad beans, horse beans, dry")}, |
| 54 | + "buckwheat": {"description": gettext("Buckwheat")}, |
| 55 | + "cabbage": {"description": gettext("Cabbages and other brassicas")}, |
| 56 | + "cabbagefor": {"description": gettext("Cabbage for fodder")}, |
| 57 | + "canaryseed": {"description": gettext("Canary seed")}, |
| 58 | + "carob": {"description": gettext("Carobs")}, |
| 59 | + "carrot": {"description": gettext("Carrots and turnips")}, |
| 60 | + "carrotfor": {"description": gettext("Carrots for fodder")}, |
| 61 | + "cashew": {"description": gettext("Cashew nuts, with shell")}, |
| 62 | + "cashewapple": {"description": gettext("Cashew apple")}, |
| 63 | + "cassava": {"description": gettext("Cassava")}, |
| 64 | + "castor": {"description": gettext("Castor beans")}, |
| 65 | + "cauliflower": {"description": gettext("Cauliflower and broccoli")}, |
| 66 | + "cerealnes": {"description": gettext("Cereals, other")}, |
| 67 | + "cherry": {"description": gettext("Cherries")}, |
| 68 | + "chestnut": {"description": gettext("Chestnuts")}, |
| 69 | + "chickpea": {"description": gettext("Chick peas")}, |
| 70 | + "chicory": {"description": gettext("Chicory roots")}, |
| 71 | + "chilleetc": {"description": gettext("Chilies and peppers, green")}, |
| 72 | + "cinnamon": {"description": gettext("Cinnamon (canella)")}, |
| 73 | + "citrusnes": {"description": gettext("Citrus fruit, other")}, |
| 74 | + "clove": {"description": gettext("Cloves")}, |
| 75 | + "clover": {"description": gettext("Clover")}, |
| 76 | + "cocoa": {"description": gettext("Cocoa beans")}, |
| 77 | + "coconut": {"description": gettext("Coconuts")}, |
| 78 | + "coffee": {"description": gettext("Coffee, green")}, |
| 79 | + "cotton": {"description": gettext("Cotton")}, |
| 80 | + "cowpea": {"description": gettext("Cow peas, dry")}, |
| 81 | + "cranberry": {"description": gettext("Cranberries")}, |
| 82 | + "cucumberetc": {"description": gettext("Cucumbers and gherkins")}, |
| 83 | + "currant": {"description": gettext("Currants")}, |
| 84 | + "date": {"description": gettext("Dates")}, |
| 85 | + "eggplant": {"description": gettext("Eggplants (aubergines)")}, |
| 86 | + "fibrenes": {"description": gettext("Fiber crops, other")}, |
| 87 | + "fig": {"description": gettext("Figs")}, |
| 88 | + "flax": {"description": gettext("Flax fiber and tow")}, |
| 89 | + "fonio": {"description": gettext("Fonio")}, |
| 90 | + "fornes": {"description": gettext("Forage products, other")}, |
| 91 | + "fruitnes": {"description": gettext("Fresh fruit, other")}, |
| 92 | + "garlic": {"description": gettext("Garlic")}, |
| 93 | + "ginger": {"description": gettext("Ginger")}, |
| 94 | + "gooseberry": {"description": gettext("Gooseberries")}, |
| 95 | + "grape": {"description": gettext("Grapes")}, |
| 96 | + "grapefruitetc": {"description": gettext("Grapefruit and pomelos")}, |
| 97 | + "grassnes": {"description": gettext("Grasses, other")}, |
| 98 | + "greenbean": {"description": gettext("Beans, green")}, |
| 99 | + "greenbroadbean": {"description": gettext("Broad beans, green")}, |
| 100 | + "greencorn": {"description": gettext("Green corn (maize)")}, |
| 101 | + "greenonion": {"description": gettext("Onions and shallots, green")}, |
| 102 | + "greenpea": {"description": gettext("Peas, green")}, |
| 103 | + "groundnut": {"description": gettext("Groundnuts, with shell")}, |
| 104 | + "hazelnut": {"description": gettext("Hazelnuts (filberts), with shell")}, |
| 105 | + "hemp": {"description": gettext("Hemp fiber and tow")}, |
| 106 | + "hempseed": {"description": gettext("Hempseed")}, |
| 107 | + "hop": {"description": gettext("Hops")}, |
| 108 | + "jute": {"description": gettext("Jute")}, |
| 109 | + "jutelikefiber": {"description": gettext("Jute-like fibers")}, |
| 110 | + "kapokfiber": {"description": gettext("Kapok fiber")}, |
| 111 | + "kapokseed": {"description": gettext("Kapok seed in shell")}, |
| 112 | + "karite": {"description": gettext("Karite nuts (shea nuts)")}, |
| 113 | + "kiwi": {"description": gettext("Kiwi fruit")}, |
| 114 | + "kolanut": {"description": gettext("Kola nuts")}, |
| 115 | + "legumenes": {"description": gettext("Legumes, other")}, |
| 116 | + "lemonlime": {"description": gettext("Lemons and limes")}, |
| 117 | + "lentil": {"description": gettext("Lentils")}, |
| 118 | + "lettuce": {"description": gettext("Lettuce and chicory")}, |
| 119 | + "linseed": {"description": gettext("Linseed")}, |
| 120 | + "lupin": {"description": gettext("Lupins")}, |
| 121 | + "maize": {"description": gettext("Maize")}, |
| 122 | + "maizefor": {"description": gettext("Maize for forage and silage")}, |
| 123 | + "mango": {"description": gettext("Mangoes, mangosteens, guavas")}, |
| 124 | + "mate": {"description": gettext("Mate")}, |
| 125 | + "melonetc": {"description": gettext("Cantaloupes and other melons")}, |
| 126 | + "melonseed": {"description": gettext("Melon seed")}, |
| 127 | + "millet": {"description": gettext("Millet")}, |
| 128 | + "mixedgrain": {"description": gettext("Mixed grain")}, |
| 129 | + "mixedgrass": {"description": gettext("Mixed grasses and legumes")}, |
| 130 | + "mushroom": {"description": gettext("Mushrooms and truffles")}, |
| 131 | + "mustard": {"description": gettext("Mustard seed")}, |
| 132 | + "nutmeg": {"description": gettext("Nutmeg, mace, and cardamoms")}, |
| 133 | + "nutnes": {"description": gettext("Nuts, other")}, |
| 134 | + "oats": {"description": gettext("Oats")}, |
| 135 | + "oilpalm": {"description": gettext("Oil palm fruit")}, |
| 136 | + "oilseedfor": {"description": gettext("Green oilseeds for fodder")}, |
| 137 | + "oilseednes": {"description": gettext("Oilseeds, other")}, |
| 138 | + "okra": {"description": gettext("Okra")}, |
| 139 | + "olive": {"description": gettext("Olives")}, |
| 140 | + "onion": {"description": gettext("Onions, dry")}, |
| 141 | + "orange": {"description": gettext("Oranges")}, |
| 142 | + "papaya": {"description": gettext("Papayas")}, |
| 143 | + "pea": {"description": gettext("Peas, dry")}, |
| 144 | + "peachetc": {"description": gettext("Peaches and nectarines")}, |
| 145 | + "pear": {"description": gettext("Pears")}, |
| 146 | + "pepper": {"description": gettext("Pepper (Piper spp.)")}, |
| 147 | + "peppermint": {"description": gettext("Peppermint")}, |
| 148 | + "persimmon": {"description": gettext("Persimmons")}, |
| 149 | + "pigeonpea": {"description": gettext("Pigeon peas")}, |
| 150 | + "pimento": {"description": gettext("Chilies and peppers, dry")}, |
| 151 | + "pineapple": {"description": gettext("Pineapples")}, |
| 152 | + "pistachio": {"description": gettext("Pistachios")}, |
| 153 | + "plantain": {"description": gettext("Plantains")}, |
| 154 | + "plum": {"description": gettext("Plums and sloes")}, |
| 155 | + "poppy": {"description": gettext("Poppy seed")}, |
| 156 | + "potato": {"description": gettext("Potatoes")}, |
| 157 | + "pulsenes": {"description": gettext("Pulses, other")}, |
| 158 | + "pumpkinetc": {"description": gettext("Pumpkins, squash, gourds")}, |
| 159 | + "pyrethrum": {"description": gettext("Pyrethrum, dried flowers")}, |
| 160 | + "quince": {"description": gettext("Quinces")}, |
| 161 | + "quinoa": {"description": gettext("Quinoa")}, |
| 162 | + "ramie": {"description": gettext("Ramie")}, |
| 163 | + "rapeseed": {"description": gettext("Rapeseed")}, |
| 164 | + "rasberry": {"description": gettext("Raspberries")}, |
| 165 | + "rice": {"description": gettext("Rice")}, |
| 166 | + "rootnes": {"description": gettext("Roots and tubers, other")}, |
| 167 | + "rubber": {"description": gettext("Natural rubber")}, |
| 168 | + "rye": {"description": gettext("Rye")}, |
| 169 | + "ryefor": {"description": gettext("Rye grass for forage and silage")}, |
| 170 | + "safflower": {"description": gettext("Safflower seed")}, |
| 171 | + "sesame": {"description": gettext("Sesame seed")}, |
| 172 | + "sisal": {"description": gettext("Sisal")}, |
| 173 | + "sorghum": {"description": gettext("Sorghum")}, |
| 174 | + "sorghumfor": {"description": gettext("Sorghum for forage and silage")}, |
| 175 | + "sourcherry": {"description": gettext("Sour cherries")}, |
| 176 | + "soybean": {"description": gettext("Soybeans")}, |
| 177 | + "spicenes": {"description": gettext("Spices, other")}, |
| 178 | + "spinach": {"description": gettext("Spinach")}, |
| 179 | + "stonefruitnes": {"description": gettext("Stone fruit, other")}, |
| 180 | + "strawberry": {"description": gettext("Strawberries")}, |
| 181 | + "stringbean": {"description": gettext("String beans")}, |
| 182 | + "sugarbeet": {"description": gettext("Sugar beets")}, |
| 183 | + "sugarcane": {"description": gettext("Sugar cane")}, |
| 184 | + "sugarnes": {"description": gettext("Sugar crops, other")}, |
| 185 | + "sunflower": {"description": gettext("Sunflower seed")}, |
| 186 | + "swedefor": {"description": gettext("Swedes for fodder")}, |
| 187 | + "sweetpotato": {"description": gettext("Sweet potatoes")}, |
| 188 | + "tangetc": {"description": gettext("Tangerines, mandarins, clementines")}, |
| 189 | + "taro": {"description": gettext("Taro")}, |
| 190 | + "tea": {"description": gettext("Tea")}, |
| 191 | + "tobacco": {"description": gettext("Tobacco leaves")}, |
| 192 | + "tomato": {"description": gettext("Tomatoes")}, |
| 193 | + "triticale": {"description": gettext("Triticale")}, |
| 194 | + "tropicalnes": {"description": gettext("Fresh tropical fruit, other")}, |
| 195 | + "tung": {"description": gettext("Tung nuts")}, |
| 196 | + "turnipfor": {"description": gettext("Turnips for fodder")}, |
| 197 | + "vanilla": {"description": gettext("Vanilla")}, |
| 198 | + "vegetablenes": {"description": gettext("Fresh vegetables, other")}, |
| 199 | + "vegfor": {"description": gettext("Vegetables and roots for fodder")}, |
| 200 | + "vetch": {"description": gettext("Vetches")}, |
| 201 | + "walnut": {"description": gettext("Walnuts, with shell")}, |
| 202 | + "watermelon": {"description": gettext("Watermelons")}, |
| 203 | + "wheat": {"description": gettext("Wheat")}, |
| 204 | + "yam": {"description": gettext("Yams")}, |
| 205 | + "yautia": {"description": gettext("Yautia")}, |
67 | 206 | }
|
68 | 207 |
|
69 | 208 | nutrient_units = {
|
|
0 commit comments