Companion planting database
< DRAFT >
< #DEV >
CHT research project at the KuM/EHF hackbase, on the topic of which they later released their PowerPlant software.
→ https://github.com/Ecohackerfarm/powerplant
EHF = Eco Hacker Farm
KuM = https://wiki.ecohackerfarm.org/kuckucksmuehle:start
By:
matic and david@totalism.org (CHT)
in conversation with KuM
Revisions:
2017-02-20 start CHT@KuM
2017-02-24 cleanup
2021-03-19 MO <d
Ties to:
🔗garduino
Table of Contents
1 | Source project (EHF) |
2 | Document goal |
3 | *** Software specification |
3.1 | Inputs |
3.2 | Outputs |
4 | *** NEXT / TODO |
4.1 | Done: |
4.2 | Next: |
5 | *** RESEARCH |
5.1 | Alternative data sources |
5.1.1 | * Fully made solutions: |
5.1.2 | * Data: |
5.1.3 | * Graphics, Articles, etc |
5.2 | Database attributes |
5.3 | Other companion planting systems |
5.3.1 | General definitions |
5.3.2 | * Three/Four sisters (native american) |
5.3.3 | * Succession planting |
5.3.4 | * (more) |
6 | *** PAD |
¶Source project (EHF)
project:
EHF🔗veintidos:companion_planting
source data gdoc:
http://docs.google.com/spreadsheets/d/1Jg75nvQgrsT1_Q5FlNf0ilPBwN0mG8gz7sGOB1-TGMs/edit#gid=1640298670
extracting CSV:
$ wget -O 'data/gdoc.csv' 'http://docs.google.com/spreadsheets/d/1Jg75nvQgrsT1_Q5FlNf0ilPBwN0mG8gz7sGOB1-TGMs/export?format=csv&id=1Jg75nvQgrsT1_Q5FlNf0ilPBwN0mG8gz7sGOB1-TGMs&gid=1640298670'
Data recommendations:
* pretty nice table!
* write down sources for combinations >EHF
* [...]
project:
EHF🔗veintidos:companion_planting
source data gdoc:
http://docs.google.com/spreadsheets/d/1Jg75nvQgrsT1_Q5FlNf0ilPBwN0mG8gz7sGOB1-TGMs/edit#gid=1640298670
extracting CSV:
$ wget -O 'data/gdoc.csv' 'http://docs.google.com/spreadsheets/d/1Jg75nvQgrsT1_Q5FlNf0ilPBwN0mG8gz7sGOB1-TGMs/export?format=csv&id=1Jg75nvQgrsT1_Q5FlNf0ilPBwN0mG8gz7sGOB1-TGMs&gid=1640298670'
Data recommendations:
* pretty nice table!
* write down sources for combinations >EHF
* [...]
¶Inputs
* desired plants
* location, enriched with:
* climate type
* elevation
* soil type
* local animals
* [...]
* [...]
* desired plants
* location, enriched with:
* climate type
* elevation
* soil type
* local animals
* [...]
* [...]
¶Outputs
-------------- via EHF🔗veintidos:companion_planting
* output combination results / suggestions
* identifying key information
* when to plant & when to expect a harvest
* important characteristics of the plant (ground cover / climber / nitrogen fixer etc.)
* recommended plant care (water / sun / shade / greenhouse etc.)
-------------- rewording
* get out best suited plant combinations (sets)
* predict Repellant/Companion for new plant additions
* optimize for yield, taste, ...
--------------
* render cluster graph:
good companions will cluster together, "neutral" plants will be somewhere between the clusters
* ... something like: http://greeninreallife.blogspot.com/2015/07/ideas-for-home-garden-companion-planting.htm / http://s-media-cache-ak0.pinimg.com/originals/e0/2f/1a/e02f1a186234c771555b30386943f925.jpg
* [...]
-------------- via EHF🔗veintidos:companion_planting
* output combination results / suggestions
* identifying key information
* when to plant & when to expect a harvest
* important characteristics of the plant (ground cover / climber / nitrogen fixer etc.)
* recommended plant care (water / sun / shade / greenhouse etc.)
-------------- rewording
* get out best suited plant combinations (sets)
* predict Repellant/Companion for new plant additions
* optimize for yield, taste, ...
--------------
* render cluster graph:
good companions will cluster together, "neutral" plants will be somewhere between the clusters
* ... something like: http://greeninreallife.blogspot.com/2015/07/ideas-for-home-garden-companion-planting.htm / http://s-media-cache-ak0.pinimg.com/originals/e0/2f/1a/e02f1a186234c771555b30386943f925.jpg
* [...]
¶ * Fully made solutions:
* http://plantbuddies.serlo.org/
simple but nice
!!! wants to move into Data Science as well <--- collaborate!
found via http://permaculturecommons.org
* http://plantbuddies.serlo.org/
simple but nice
!!! wants to move into Data Science as well <--- collaborate!
found via http://permaculturecommons.org
¶ * Data:
* http://en.wikipedia.org/wiki/List_of_companion_plants
data with references, linked to plant pages, ...
* http://www.motherearthnews.com/organic-gardening/companion-planting-guide-zmaz81mjzraw
parseable, but some are like "Most x"... format: (Plant near, Keep away from, Comments)
* http://depts.washington.edu/propplnt/Plants/Iris%20tenax.htm
good list of features, but not well machine-readable, US based
$ wget -r -np -nH --cut-dirs=2 -R index.html 'http://depts.washington.edu/propplnt/Plants/' # ~70MB
* http://deepgreenpermaculture.com/companion-planting/companion-planting-table/
good/bad companions table
* walden labs (they're libertarian and try to gate/sell their stuff... but):
To download their PDFs without login, google: site:amazonaws.com/walden-cdn/
They have a plant database with filtering by these attributes (requires login):
* Annual
* Bee Forage
* Coppice
* Deciduous
* Drought Tolerant
* Dynamic Accumulator
* Edible
* Erosion Control
* Evergreen
* Fast Growing ... speed of growth number would be even better
* Fodder Crop
* Firewood
* Frost Hardy
* Green Manure
* Hardy
* Hedge
* Lumber
* Medicinal
* Mulch
* Nitrogen Fixer
* Perennial ... just inverse of Annual?
* Pioneer
* Shrub
* Tree
* Vitamin Crop
* Windbreak
#TODO scrape?
______________________
http://plantdatabase.kpu.ca/plant/resourcePlantIdLink.gsp
http://en.wikipedia.org/wiki/List_of_datasets_for_machine_learning_research#Plant
<---------------- (new) DATA ↑
* http://en.wikipedia.org/wiki/List_of_companion_plants
data with references, linked to plant pages, ...
* http://www.motherearthnews.com/organic-gardening/companion-planting-guide-zmaz81mjzraw
parseable, but some are like "Most x"... format: (Plant near, Keep away from, Comments)
* http://depts.washington.edu/propplnt/Plants/Iris%20tenax.htm
good list of features, but not well machine-readable, US based
$ wget -r -np -nH --cut-dirs=2 -R index.html 'http://depts.washington.edu/propplnt/Plants/' # ~70MB
* http://deepgreenpermaculture.com/companion-planting/companion-planting-table/
good/bad companions table
* walden labs (they're libertarian and try to gate/sell their stuff... but):
To download their PDFs without login, google: site:amazonaws.com/walden-cdn/
They have a plant database with filtering by these attributes (requires login):
* Annual
* Bee Forage
* Coppice
* Deciduous
* Drought Tolerant
* Dynamic Accumulator
* Edible
* Erosion Control
* Evergreen
* Fast Growing ... speed of growth number would be even better
* Fodder Crop
* Firewood
* Frost Hardy
* Green Manure
* Hardy
* Hedge
* Lumber
* Medicinal
* Mulch
* Nitrogen Fixer
* Perennial ... just inverse of Annual?
* Pioneer
* Shrub
* Tree
* Vitamin Crop
* Windbreak
#TODO scrape?
______________________
http://plantdatabase.kpu.ca/plant/resourcePlantIdLink.gsp
http://en.wikipedia.org/wiki/List_of_datasets_for_machine_learning_research#Plant
<---------------- (new) DATA ↑
¶ * Graphics, Articles, etc
* google images: "companion planting" (does anyone publish data / code?)
* http://afristarfoundation.org/product-category/posters/
* http://greeninreallife.blogspot.com/2015/07/ideas-for-home-garden-companion-planting.html
* http://eatseasonably.co.uk/what-to-eat-now/calendar/ calendar of seasonable fruits/vegetables, UK based
* google images: "companion planting" (does anyone publish data / code?)
* http://afristarfoundation.org/product-category/posters/
* http://greeninreallife.blogspot.com/2015/07/ideas-for-home-garden-companion-planting.html
* http://eatseasonably.co.uk/what-to-eat-now/calendar/ calendar of seasonable fruits/vegetables, UK based
¶Database attributes
Notes:
* "database attributes" are called "features" in machine learning.
* most existing sources only have simple binary attributes (compatible, fast growing, vitamin crop, ...), which could be numeric with better data or using data fusion.
LIST:
* Binary or Class:
* Type (herb, root, fruit, ...)
* Location / Soil (greenhouse, garden, field, forest, swamp, clay, ...)
* Wikipedia🔗Climate_classification(R/W) (...)
* Others (perennial, climber, leaves, coniferous, thorns, nitrogen fixer, ...)
* Integer or Multiclass:
* Water requirement
* Ground cover
* Plant Height
* Elevation (min, max, ?optimal?, ...)
* Color (plant, flower, ...)
* Month of (seeding, flowering, harvest, dying, ...)
* Wikipedia🔗Taxonomic_rank(R/W) (genus, family, order, class, ...) !!!
* Float:
* Sun intensity (shade all the time (0...1) direct sun all the time)
* Expand R(epellant)/(C)ompanion to float ([R] -1 ... 1 [C])
<----- but R/C is a data size dependent (a matrix) feature ... probably has to be the output, which also grows by 1 with every addition of a new plant!
<----- could be flattened in a lossy way by having a single feature that is the (avg, median, ...) of all columns, called "general compatibility" of a plant
<----- also data is likely very incomplete, as it's not realistic to test all combinations... discover which features underpin plant compatibility
* Taste ([?whatever tastes terrible together?] -1 ... 1 [e.g. basil+tomato]):
<---- also data size dependent like R/C, and also can be flattened as "general taste effect"
* Animal interactions (attracts/repels pollinators, attracts/repels pest/fungi, ...)
* Expected yield and nutritional info (avg kg, kcal, vitamins, ...)
<---- how to quantify... average per one fruit? per plant? per m^2? per kg?
<---- check CRON-O-Meter for nutrition data sources
Notes:
* "database attributes" are called "features" in machine learning.
* most existing sources only have simple binary attributes (compatible, fast growing, vitamin crop, ...), which could be numeric with better data or using data fusion.
LIST:
* Binary or Class:
* Type (herb, root, fruit, ...)
* Location / Soil (greenhouse, garden, field, forest, swamp, clay, ...)
* Wikipedia🔗Climate_classification(R/W) (...)
* Others (perennial, climber, leaves, coniferous, thorns, nitrogen fixer, ...)
* Integer or Multiclass:
* Water requirement
* Ground cover
* Plant Height
* Elevation (min, max, ?optimal?, ...)
* Color (plant, flower, ...)
* Month of (seeding, flowering, harvest, dying, ...)
* Wikipedia🔗Taxonomic_rank(R/W) (genus, family, order, class, ...) !!!
* Float:
* Sun intensity (shade all the time (0...1) direct sun all the time)
* Expand R(epellant)/(C)ompanion to float ([R] -1 ... 1 [C])
<----- but R/C is a data size dependent (a matrix) feature ... probably has to be the output, which also grows by 1 with every addition of a new plant!
<----- could be flattened in a lossy way by having a single feature that is the (avg, median, ...) of all columns, called "general compatibility" of a plant
<----- also data is likely very incomplete, as it's not realistic to test all combinations... discover which features underpin plant compatibility
* Taste ([?whatever tastes terrible together?] -1 ... 1 [e.g. basil+tomato]):
<---- also data size dependent like R/C, and also can be flattened as "general taste effect"
* Animal interactions (attracts/repels pollinators, attracts/repels pest/fungi, ...)
* Expected yield and nutritional info (avg kg, kcal, vitamins, ...)
<---- how to quantify... average per one fruit? per plant? per m^2? per kg?
<---- check CRON-O-Meter for nutrition data sources
¶Other companion planting systems
Which already developed manual systems exist, and can they be automated / guide implementation?
Which already developed manual systems exist, and can they be automated / guide implementation?
¶ General definitions
(via Wikipedia)
Companion planting:
is a form of Polyculture:
includes multi-cropping, intercropping, companion planting, beneficial weeds, and alley cropping
is one example of Reconciliation Ecology
is one of the principles of Permaculture
(via Wikipedia)
Companion planting:
is a form of Polyculture:
includes multi-cropping, intercropping, companion planting, beneficial weeds, and alley cropping
is one example of Reconciliation Ecology
is one of the principles of Permaculture
¶ * Three/Four sisters (native american)
Wikipedia🔗Three_Sisters_(agriculture)(R/W)
"Several maize seeds are planted close together in the center of each flat-topped mound. When the maize is 15 cm tall, beans and squash are planted around the maize, alternating between the two kinds of seeds."
"The cornstalk served as a trellis for the beans to climb, and the beans fixed nitrogen, benefitting the maize"
"fourth sister known as "Rocky Mountain bee plant" (Cleome serrulata), which attracts bees to help pollinate the beans and squash."
"Corn, beans, and squash contain complex carbohydrates, essential fatty acids and all eight essential amino acids, allowing most Native American tribes to thrive on a plant-based diet"
------------------------------------------------------------------
Pseudocode / Fitness function:
plant1.stalkHard &&
plant1.height > plant2.height &&
plant2.climber &&
plant3.groundCover > ??? &&
(plant2 || plant3).nitrogenFixer &&
plant4.attractsPollinators &&
max(compatibility(plant1, plant2, plant3, plant4))
Wikipedia🔗Three_Sisters_(agriculture)(R/W)
"Several maize seeds are planted close together in the center of each flat-topped mound. When the maize is 15 cm tall, beans and squash are planted around the maize, alternating between the two kinds of seeds."
"The cornstalk served as a trellis for the beans to climb, and the beans fixed nitrogen, benefitting the maize"
"fourth sister known as "Rocky Mountain bee plant" (Cleome serrulata), which attracts bees to help pollinate the beans and squash."
"Corn, beans, and squash contain complex carbohydrates, essential fatty acids and all eight essential amino acids, allowing most Native American tribes to thrive on a plant-based diet"
------------------------------------------------------------------
Pseudocode / Fitness function:
plant1.stalkHard &&
plant1.height > plant2.height &&
plant2.climber &&
plant3.groundCover > ??? &&
(plant2 || plant3).nitrogenFixer &&
plant4.attractsPollinators &&
max(compatibility(plant1, plant2, plant3, plant4))
¶ * Succession planting
Wikipedia🔗Succession_planting(R/W)
http://www.avantgardendecor.com/how-to/vegetable-gardening/succession-planting
min(plant1.actualSeedTime - plant1.optimalSeedTime) && <---- zero
min(plant1.harvestTime - plant2.optimalSeedTime) &&
...
Wikipedia🔗Succession_planting(R/W)
http://www.avantgardendecor.com/how-to/vegetable-gardening/succession-planting
min(plant1.actualSeedTime - plant1.optimalSeedTime) && <---- zero
min(plant1.harvestTime - plant2.optimalSeedTime) &&
...
¶ * (more)
Wikipedia🔗Companion_planting#Companion_plant_categories(R/W)
<----------------- (new) OTHER SYSTEMS ↑
Wikipedia🔗Companion_planting#Companion_plant_categories(R/W)
<----------------- (new) OTHER SYSTEMS ↑