Spatial data collection ecosystem with the fulcrum app

Environmental data always has a spatial and temporal dimension (4D). Whether it is species survey, asset inventories or maintenance checklists, the fulcrum platform has been the tool of our choice after testing similar service providers. It helps to configure data collection forms in seconds from location, images, barcode, user control, workflows, and even produce one-click reports that come out of your phone. On top of the no-code platform, fulcrum also has a bunch of great API solutions in Ruby, Python and JavaScript that have allowed me to create additional customer value:

  • Custom JavaScript reports: In addition to using fulcrums standard template, we configured the javascript reports to fit the project, client CI, or other requirements. The custom-code per record reports are always available on your phone to be sent by mail.
  • Python API: There are tons of use cases here. My favourites ones are:
    • Data summary emails: We used this to generate data summary HTML emails to send weekly updates on new and edited data to clients and colleagues. This script can run (crontab) on your local server or AWS.
    • Species matching: Scientific names can be messy, they change, and typos do still exist, particularly out in the field. So combining the fulcrum API and GBIF to match entered species names against accepted ones of the Global Biodiversity Information Facility helped increased consistency in collected data.
  • Automatic data updates: The API does everything you need to delete and update records according to specific criteria, for example, archive (deleted or move to a different app) completed and older records or change the status flag to show the field team that an action is required. This can be very powerful if streamlined into an inspection or maintenance workflow.
  • Data events: We use them to control and limit user activities, add conditions to data fields and locations and require specific actions. For example, Geofencing helped us to only allow approval or modification of maintenance checklists if the user is within an X meter/feet radius of the record and confirms the change with image upload. This is also useful to set quality criteria and avoid outliers and mistakes.
  • Shiny app reports: While the JS reports work great to report on a per record level, customised list reports cannot be created directly on the fulcrum platform. You can export and reformat XLS data, obviously. Being a big R fan, we used shiny apps to get around this. Importing data via the API, filtering on the polished app interface, and generating list reports according to a project’s reporting framework have saved much time and hassle. We used this in large scape landscape projects, mainly.
  • GIS data sharing: This simple but efficient feature helps map your data in an active GIS environment (QGIS or similar) directly through a .geojson link without creating a local (not-dynamic) copy.

Most of the examples are outlined in the fulcrum documentation. In addition, my scripts can be found on my GitHub.

Future music

What I have not seen and deem highly useful:

Image classification: Approving images based on similarity to reference data is valuable. A package that does this outside fulcrum via API would be best.

Other geometries than points: There are a few options to collect line data (or connect frequently accumulated points to lines). It would be helpful to create polygon and line features inside the app in a less cumbersome way.

Leave me a note if you have different applications of the fulcrum toolbox.

Leave a comment