Skip to content

Commit 13638e1

Browse files
authored
Merge pull request #1734 from emilyanndavis/614-decode-crop-names
Crop Production: add/update human-readable/translatable crop names
2 parents 4af6cd2 + 31e8c2f commit 13638e1

File tree

2 files changed

+191
-51
lines changed

2 files changed

+191
-51
lines changed

src/natcap/invest/crop_production_percentile.py

Lines changed: 181 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -22,48 +22,187 @@
2222
LOGGER = logging.getLogger(__name__)
2323

2424
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")},
67206
}
68207

69208
nutrient_units = {

src/natcap/invest/crop_production_regression.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,16 @@
1919
LOGGER = logging.getLogger(__name__)
2020

2121
CROPS = {
22-
"barley": {"description": gettext("barley")},
23-
"maize": {"description": gettext("maize")},
24-
"oilpalm": {"description": gettext("oil palm")},
25-
"potato": {"description": gettext("potato")},
26-
"rice": {"description": gettext("rice")},
27-
"soybean": {"description": gettext("soybean")},
28-
"sugarbeet": {"description": gettext("sugar beet")},
29-
"sugarcane": {"description": gettext("sugarcane")},
30-
"wheat": {"description": gettext("wheat")}
22+
"barley": {"description": gettext("Barley")},
23+
"maize": {"description": gettext("Maize")},
24+
"oilpalm": {"description": gettext("Oil palm fruit")},
25+
"potato": {"description": gettext("Potatoes")},
26+
"rice": {"description": gettext("Rice")},
27+
"soybean": {"description": gettext("Soybeans")},
28+
"sugarbeet": {"description": gettext("Sugar beets")},
29+
"sugarcane": {"description": gettext("Sugar cane")},
30+
"sunflower": {"description": gettext("Sunflower seed")},
31+
"wheat": {"description": gettext("Wheat")}
3132
}
3233

3334
NUTRIENTS = [

0 commit comments

Comments
 (0)