Ed | Dec. 31, 2020, 8:18 a.m.
I was keen to explore GeoDjango further, and designed a project to automate the process of plotting data on a map.
Screenshot of Naturelog app
app enables the user to record wildlife finds. I developed the app using GeoDjango and added a number of joined data models relating to the various taxonomical ranks. I imported data on 3,500 species of flora, fauna and fungi from a csv file published by Natural England - the governent's adviser for the natural environment.
The user adds data via a form. I used the 'Crispy' library to quickly and easily style and format the form.
To create an instance of a species, i.e. log a wildlife find, the user simply selects the species from a drop-down list. This automatically pulls in related taxonomy data for the selected species.
The form includes some other drop-lists to record the creature's age and sex, and some free text fields for the user to add further information about the organism and its habitat.
The form requires the user to submit a photo of their wildlife find. I wrote some python code which scrapes the image for its GPS and date information. This data automatically populates the record.
Using the GPS data from the photo, GeoDjango automatically generates a marker and plots this a point on a map, using the JS Leaflet map library.
Clicking on the marker reveals a pop-up showing a thumbnail image of the user's photo, the species' name and date of find, and provides a link to the full record.
Clicking the link takes the user to a page for the specific record. This page contains all the data and photo submitted by the user, along with the related taxonomical data form the joined taxonomy tables, and a map 'zoomed' to the location the specimen was found.
I am really pleased with the result of the app and have been using it regularly when out walking. Using bootstrap on the html template means the pages resize well on a mobile phone. It is important that the app works well from a phone, since I juse my phone to take photos.
The form is quick and simple to use, since much of the data is either automated (such as automatically generating the map point and recording the date), or is alreading stored in the data models and can simply be selected by the user.
Click the button to launch the Naturelog app. Note that you must be logged in to view the app.