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




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
    * [...]




Document goal

Basic specification & research towards a software solution.




*** Software specification


Inputs
    * 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
    * [...]






*** NEXT / TODO


Done:
    * research how to enrich EHF data to be useful for the purpose:
        * overview on what already exists (other data sources)
        * [...]
    * some scripts to dump those data sources
    * if somebody reads this they will have a direction on how to do data science on EHF data


Next:
    * find usable existing taxonomy/ontology for agriculture features
    * start writing code:
        * fuse EHF and other data (coding! not by hand)
        * (but retain the spreadsheet interface to add stuff manually)
    * first usable software v1.0:
    * [...]





*** RESEARCH


Alternative data sources


    * Fully made solutions:
        * 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 ↑





    * 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




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




Other companion planting systems

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



    * 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))



    * 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) &&
        ...


    * (more)

Wikipedia🔗Companion_planting#Companion_plant_categories(R/W)

<----------------- (new) OTHER SYSTEMS  ↑





*** PAD


<---------------------------- ((new))






Edit Site

Edit CSS