Precision Farming and Linux: An Expose
Ideally, precision farming is a process where one manages the production of a crop on a plant-by-plant basis. Practically speaking, we are not yet at that level of resolution, but we are beyond treating an entire field as one homogeneous unit.
Modern electronics, global positioning satellites, signal processing and a host of other technologies make precision farming possible. The driving forces for development and acceptance are the possibility of increased profitability and the realization of improved stewardship of the land (less pollution, optimal use of chemical inputs, etc.).
Precision farming is evolving around three technologies: global positioning (GPS), geostatistics (GIS) and remote sensing. Other developed technologies such as sampling, soil analysis and others are also playing a role.
Alberta Agriculture, Food and Rural Development has been in the Precision Farming business since 1993. We work with selected farmers across the province who grow a variety of crops: wheat, barley, canola, peas, potatoes, etc. Our objectives are the following:
Help develop a workable system that interested farmers can implement on their farms.
Transfer this technology to private industry.
Global positioning satellites and receivers were the technologies that started this revolution in agriculture (see Resources). Before then, positioning via radio was possible, but not very accessible to the researcher, or ultimately the farmer.
Two families of global positioning satellites are in orbit around the earth: Navstar (U.S. system) and Glonass (Russian). The Navstar system is capable of better positioning than the Glonass system. However, the US military uses something called “selective availability” to decrease precision to something on the order of 100 meters (unless one is using military GPS receivers). Agricultural applications require positioning at sub-meter precisions, most often in real time.
Some enterprising person realized if a GPS receiver were put over some known position, a correction to the position as determined by GPS could be calculated. This correction factor could then be applied to nearby (in space and time) GPS positions. How good the correction is depends on how close the roving receiver is to the fixed known station, and how long ago the correction was calculated. The best precision I am familiar with is typically on the order of 10cm. However, due to the changing “constellation” of GPS satellites, we can't always get precision this good.
For most people, it is not practical to own two GPS receivers plus radio-modems to gather positioning information. For 20cm precision, this type of setup costs on the order of $20,000 US. Fortunately, it is possible for many people to obtain usable differential corrections without going to the trouble of owning a differential base station. There are a number of sources of differential corrections and means of receiving them. Some corrections are broadcast over FM radio, some on other frequencies and some from satellite. The Coast Guard has a number of DGPS (differential GPS) beacons along navigable waterways and coastlines. This includes locations such as the Mississippi and Missouri River basins and the Great Lakes.
One of the most important factors in precision farming, is the ability to store, display and manipulate geo-referenced information. On a local scale, geostatistical packages can look something like a spreadsheet (raster) or a CAD (vector) package. Some types of information access work better in the raster model, some in the vector model.
Agriculture is one of the smaller users of GIS packages; therefore, it is necessary to bend the analytical techniques to methods developed for other applications. The unavailability of theoretical models also affects what can be done with an analysis.
A couple of “free” GIS packages are available, but by far the most comprehensive is the Geographical Resources Analysis Support System (GRASS) (http://www.baylor.edu/grass/). This package was originally developed by the U.S. Army Corps of Engineers Construction Engineering Research Laboratory (CERL) and extended by other government and university researchers and users over the years. Active support by CERL has been abandoned, but was recently taken up by Baylor University.
GRASS is now advertised as an “Open GIS”. Among the new developments is an interface based on Tcl. An OpenGIS Consortium (http://www.OpenGIS.org/) also exists.
Commercial satellite remote sensing (see Resources) typically has a resolution on the order of 10m, each pixel covering an area on the order of 100m (far worse than the (rumored?) 10cm resolution the CIA has with some of its satellites). In order to statistically detect some change in an image, many pixels in close proximity must be significantly different than expected. With 10m pixels, this means that many hundreds of square meters of land must be affected before the change can be detected from space. For things like disease or pests, this is not very useful, but it is acceptable for crop maturity. To detect disease or pests, aircraft-based remote sensing is presently required. In the near future, high-resolution satellite imagery is expected to become commonplace.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Vigilante Malware
- Non-Linux FOSS: Code Your Way To Victory!
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vagrant Simplified
- Libreboot on an X60, Part I: the Setup
- Dealing with Boundary Issues
- Bluetooth Hacks
- System Status as SMS Text Messages
- New Products
- October 2015 Issue of Linux Journal: Raspberry Pi