iNaturalist observations along hiking trails

Overview

iNaturalist observations along hiking trails

This tool reads the route of a hike and generates a table of iNaturalist observations along the trails. It also shows the observations and the route of the hike on a map. Moreover, it saves waypoints of the iNaturalist observations for offline navigation with a GPS device or smartphone.

Usage

This is a command-line tool. It is called with a .gpx file that describes the route. This .gpx file can be either after a hike downloaded from a gps device or smartphone or created before a hike by a mapping tool or website. The gpx files in the examples directory have been created with the free website caltopo.com.

Here is an example. This is the command for Linux and macOS

./inat_trails.py examples/Rancho_Canada_del_Oro.gpx

On Windows the command is:

python.exe .\inat_trails.py examples\Rancho_Canada_del_Oro.gpx

The output looks like this:

Reading 'examples/Rancho_Canada_del_Oro.gpx'...
Loaded 13 named roads and trails: Bald Peaks Trail, Canada Del Oro Cut-Off Trail, Canada Del Oro Trail, Casa Loma Road,
    Catamount Trail, Chisnantuk Peak Trail, Little Llagas Creek Trail, Llagas Creek Loop Trail, Longwall Canyon Trail,
    Mayfair Ranch Trail, Needlegrass Trail, Serpentine Loop Trail.
Loaded 2,708 iNaturalist observations of quality-grade 'research' within bounding box.
Excluded 1,694 observations not along route and 13 with low accuracy.
Loaded 829 taxa.
Waypoints written to './Rancho_Canada_del_Oro_Open_Space_Preserve_all_research_waypoints.gpx'.
Table written to './Rancho_Canada_del_Oro_Open_Space_Preserve_all_research_observations.html'.
Map written to './Rancho_Canada_del_Oro_Open_Space_Preserve_all_research_mapped_observations.html'.

This tools finds named trails along this route. It loads iNaturalist observations from the area of the hike and discards those that are not along the trails. It writes three output files, a waypoints file, a table of observations, and an interactive map. Both the table and the map will pop up in a browser.

The waypoint file can be loaded into the free offline navigation app OsmAnd. This will allow this offline navigation app to display the iNaturalist observations along the hiking trails.

The table of observations lists all the organisms that have been observed along the trails along with the trail names they are on. The table for the mammals seen in this park looks like this:

Scientific Name Common Name Observations
Canidae Canids
Canis latrans Coyote Mayfair Ranch Trail: 38860133, 38860889
Urocyon cinereoargenteus Gray Fox Mayfair Ranch Trail: 39391329
Cervidae Deer
Odocoileus hemionus ssp. columbianus Columbian Black-Tailed Deer Casa Loma Road: 80058758; Little Llagas Creek Trail: 68891936; Mayfair Ranch Trail: 19113219, 21319391, 44158629
Cricetidae Hamsters, Voles, Lemmings, and Allies
Neotoma fuscipes Dusky-Footed Woodrat Mayfair Ranch Trail: 52963985
Felidae Felids
Lynx rufus Bobcat Mayfair Ranch Trail: 15630740, 15689757, 38861135
Geomyidae Pocket Gophers
Thomomys bottae Botta's Pocket Gopher Mayfair Ranch Trail: 38869384, 38875049
Leporidae Hares and Rabbits
Sylvilagus bachmani Brush Rabbit Mayfair Ranch Trail: 73152597, 74462983
Sciuridae Squirrels
Neotamias merriami Merriam's Chipmunk Longwall Canyon Trail: 42605223; Mayfair Ranch Trail: 132863, 46538314
Otospermophilus beecheyi California Ground Squirrel Casa Loma Road: 47200360; Mayfair Ranch Trail: 2328803, 15629491, 53667091
Sciurus griseus Western Gray Squirrel Mayfair Ranch Trail: 73152599

The numbers are the observation ids; a click opens them on the iNaturalist website.

The interactive map shows the route and the iNaturalist observations along the hike. Like the iNaturalist website, the markers on the interactive map have different colors for different iconic taxa, e.g. markers for plants are green. Hoovering the mouse over a marker shows the identification, a click on a marker shows a thumbnail picture, the identification, the observer, the date and a special status like invasive or introduced. A further click on that thumbnail opens the observation in the iNaturalist website in another browser window.

Command-line options

This script is a command-line tool. It is called with options and file names as arguments. These options are supported:

usage: inat_trails.py [-h] [--quality_grade QUALITY_GRADE] [--iconic_taxon ICONIC_TAXON] gpx_file [gpx_file ...]

positional arguments:
  gpx_file              Import GPS track from .gpx file.

optional arguments:
  -h, --help            show this help message and exit
  --quality_grade QUALITY_GRADE
                        Observation quality-grade, values: all, casual, needs_id, research; default research.
  --iconic_taxon ICONIC_TAXON
                        Iconic taxon, values: all, Actinopterygii, Amphibia, Animalia, Arachnida, Aves, Chromista,
                        Fungi, Insecta, Mammalia, Mollusca, Plantae, Protozoa, Reptilia; default all.

Option --quality_grade spcifies the desired quality-grade of the observations to show. By default, only research-grade observations are shown. Alternatively, all quality grades, or only casual and needs_id can be requested.

Option --iconic_taxon allows to restrict the observations to an iconic taxon. This can be used to display observations of e.g. only birds or only plants.

Dependencies

A handful of dependencies need to be installed in order for inat_trails.py to run. Besides Python 3.7 or later, a few packages are needed. On Ubuntu or other Debian-based Linux distributions the dependencies can be installed with:

sudo apt install --yes python3-pip python3-aiohttp python3-fiona python3-shapely
pip3 install folium

On other operating systems, Python 3.7 or later and pip need to be installed first and then the dependencies can be installed with:

pip install aiohttp folium shapely
pip install fiona

Note that pip fails to install fiona on Windows. This blogpost has a workaround.

When appropriate pip3 should be called instead of pip to avoid accidentally installing packages for Python 2.

Using SQLAlchemy with spatial databases

GeoAlchemy GIS Support for SQLAlchemy. Introduction GeoAlchemy is an extension of SQLAlchemy. It provides support for Geospatial data types at the ORM

109 Dec 01, 2022
Color correction plugin for rasterio

rio-color A rasterio plugin for applying basic color-oriented image operations to geospatial rasters. Goals No heavy dependencies: rio-color is purpos

Mapbox 111 Nov 15, 2022
A public data repository for datasets created from TransLink GTFS data.

TransLink Spatial Data What: TransLink is the statutory public transit authority for the Metro Vancouver region. This GitHub repository is a collectio

Henry Tang 3 Jan 14, 2022
pure-Python (Numpy optional) 3D coordinate conversions for geospace ecef enu eci

Python 3-D coordinate conversions Pure Python (no prerequistes beyond Python itself) 3-D geographic coordinate conversions and geodesy. API similar to

Geospace code 292 Dec 29, 2022
Advanced raster and geometry manipulations

buzzard In a nutshell, the buzzard library provides powerful abstractions to manipulate together images and geometries that come from different kind o

Earthcube Lab 30 Jun 20, 2022
Google maps for Jupyter notebooks

gmaps gmaps is a plugin for including interactive Google maps in the IPython Notebook. Let's plot a heatmap of taxi pickups in San Francisco: import g

Pascal Bugnion 747 Dec 19, 2022
Hapi is a Python library for building Conceptual Distributed Model using HBV96 lumped model & Muskingum routing method

Current build status All platforms: Current release info Name Downloads Version Platforms Hapi - Hydrological library for Python Hapi is an open-sourc

Mostafa Farrag 15 Dec 26, 2022
This GUI app was created to show the detailed information about the weather in any city selected by user

WeatherApp Content Brief description Tools Features Hotkeys How it works Screenshots Ways to improve the project Installation Brief description This G

TheBugYouCantFix 5 Dec 30, 2022
Cloud Optimized GeoTIFF creation and validation plugin for rasterio

rio-cogeo Cloud Optimized GeoTIFF (COG) creation and validation plugin for Rasterio. Documentation: https://cogeotiff.github.io/rio-cogeo/ Source Code

216 Dec 31, 2022
Stitch image tiles into larger composite TIFs

untiler Utility to take a directory of {z}/{x}/{y}.(jpg|png) tiles, and stitch into a scenetiff (tif w/ exact merc tile bounds). Future versions will

Mapbox 38 Dec 16, 2022
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.

A ready-to-use curated list of Spectral Indices for Remote Sensing applications. GitHub: https://github.com/davemlz/awesome-ee-spectral-indices Docume

David Montero Loaiza 488 Jan 03, 2023
Client library for interfacing with USGS datasets

USGS API USGS is a python module for interfacing with the US Geological Survey's API. It provides submodules to interact with various endpoints, and c

Amit Kapadia 104 Dec 30, 2022
Interactive Maps with Geopandas

Create Interactive maps 🗺️ with your geodataframe Geopatra extends geopandas for interactive mapping and attempts to wrap the goodness of amazing map

sangarshanan 46 Aug 16, 2022
Spatial Interpolation Toolbox is a Python-based GUI that is able to interpolate spatial data in vector format.

Spatial Interpolation Toolbox This is the home to Spatial Interpolation Toolbox, a graphical user interface (GUI) for interpolating geographic vector

Michael Ward 2 Nov 01, 2021
Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Wei Ji 20 Nov 24, 2022
iNaturalist observations along hiking trails

This tool reads the route of a hike and generates a table of iNaturalist observations along the trails. It also shows the observations and the route of the hike on a map. Moreover, it saves waypoints

7 Nov 11, 2022
LEOGPS - Satellite Navigation with GPS on Python!

LEOGPS is an open-source Python software which performs relative satellite navigation between two formation flying satellites, with the objective of high accuracy relative positioning. Specifically,

Samuel Low 50 Dec 13, 2022
WebGL2 powered geospatial visualization layers

deck.gl | Website WebGL2-powered, highly performant large-scale data visualization deck.gl is designed to simplify high-performance, WebGL-based visua

Vis.gl 10.5k Jan 08, 2023
Xarray backend to Copernicus Sentinel-1 satellite data products

xarray-sentinel WARNING: this product is a "technology preview" / pre-Alpha Xarray backend to explore and load Copernicus Sentinel-1 satellite data pr

B-Open 191 Dec 15, 2022
Software for Advanced Spatial Econometrics

GeoDaSpace Software for Advanced Spatial Econometrics GeoDaSpace current version 1.0 (32-bit) Development environment: Mac OSX 10.5.x (32-bit) wxPytho

GeoDa Center 38 Jan 03, 2023