About my motivation to learn what I’m learning
This is a project idea that I’ve had in my head for a long time.
When I was in university, I was involved in an agroforestry research project. We were given 1 acre of land on the college farm to design and plant a perennial polyculture system. We gathered information about the soil, topography and climate. We defined the principles of our design (in our case, to be low-input and resilient even if neglected, and to produce crops for livestock forage). We researched plant species and selected a handful of appropriate plants based on their nutrient requirements, disease resistance and other properties (we settled on swamp oak, mulberry, persimmon and apple based on the low drainage of the soil and the fruit being good for chicken and pig forage). We mapped out the plot and the layout of the plantation (we did rows ABABAB where row A was mulberry persimmon and row B was oak and apple based on crown diameter and light requirement of each species. We calculated the crop yield of this system across the months of the year and designed this to coincide with the feed requirement of pigs.

At the time, I kept thinking that, theoretically at least, a computer could do much of what we were doing. For example, soil data, climate data, elevation data all exist and could be pulled from various sources. A database of plant species containing each plant’s requirements and other attributes could be queried and species could be selected. Geospatial analysis with elevation data could be done to arrange an optimal planting pattern based on attributes such as tree crown diameter or root zone could be done.
This application would need to:
- model environment (soil, climate and terrain).
- query a database and select plant species
- generate a planting layout
This project involves learning about API’s for pulling environmental data, designing and building a spatial database, performing spatial analysis and understanding agroforestry design. Finally, I intend to examine the potential for machine learning technology in this application.
