Blue Earth Imaging

In 2009 and 2010 I had the good fortune to be asked to work for a start-up company in Tucson, AZ called Blue Earth Imaging. The company’s primary products were aerial images captured by using company’s airplane. At the time, most of our customers were large farms located in southern Arizona and the Palm Springs area of California. In most cases the company was contracted to capture photos of the customer’s crop plots that were about to undergo some type of pest-control treatment and we were contracted to capture images of the plot before, during, and after treatment. Once these images were captured we needed a way for the customers to access the images via a web browser. Because the company was a startup with limited funding we did not have the resources to buy a commercial software packaged like ESRI’s ArcIMS. The company was able to afford commercially available image serving software, but that was not a complete solution.

To solve this problem, I used open source tools to develop a web application that would essentially act or behave like ArcIMS and serve our imagery as well as reference maps to the customer. The first step was to select a web application development framework. At the time it was a new framework, however I felt it was a robust framework for our purposes and it was a framework that would allow us to migrate our work to other frameworks if needed. Most importantly, we wanted a framework that would foster the Model View Controller design pattern. So, I chose the Django framework (https://www.djangoproject.com/). We also needed a backend database for this project. We chose the MySQL (www.mysql.com) database because it was a well known database server and our needs, at the time, did not demand and enterprise scale database server.

To develop the web interface, as stated earlier, I used the Django framework with the javascript jQuery api. Using these tools, I developed the equivalent of a single page application that used interface components that were updated based on user interaction by relying on REST based url calls. The REST end-points accepted request parameters using GET methods.

The last tool or API that we needed, and perhaps one of the most important, was the Google Maps Javascript API. This API is remarkably simple to use and could also be extended to include plugins and third-party tools that we did need in order to have a way to overlay our imagery onto base maps. Also, the Google Maps Javascript API was easy to understand I was able to build additional functionality in our web application that allowed our customers to red-line (draw boundary lines and annotations) on the maps.

Tools Used

  • Python - Django
  • Subversion
  • ERDAS Image Server
  • Google Maps Javascript API
  • jQuery