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.

Build, deploy and extract satellite public constellations with one command line.

SatExtractor Build, deploy and extract satellite public constellations with one command line. Table of Contents About The Project Getting Started Stru

Frontier Development Lab 70 Nov 18, 2022
Automated download of LANDSAT data from USGS website

LANDSAT-Download It seems USGS has changed the structure of its data, and so far, I have not been able to find the direct links to the products? Help

Olivier Hagolle 197 Dec 30, 2022
A proof-of-concept jupyter extension which converts english queries into relevant python code

Text2Code for Jupyter notebook A proof-of-concept jupyter extension which converts english queries into relevant python code. Blog post with more deta

DeepKlarity 2.1k Dec 29, 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
Helping data scientists better understand their datasets and models in text classification. With love from ServiceNow.

Azimuth, an open-source dataset and error analysis tool for text classification, with love from ServiceNow. Overview Azimuth is an open source applica

ServiceNow 145 Dec 23, 2022
Python tools for geographic data

GeoPandas Python tools for geographic data Introduction GeoPandas is a project to add support for geographic data to pandas objects. It currently impl

GeoPandas 3.5k Jan 03, 2023
A Jupyter - Leaflet.js bridge

ipyleaflet A Jupyter / Leaflet bridge enabling interactive maps in the Jupyter notebook. Usage Selecting a basemap for a leaflet map: Loading a geojso

Jupyter Widgets 1.3k Dec 27, 2022
Geospatial web application developed uisng earthengine, geemap, and streamlit.

geospatial-streamlit Geospatial web applications developed uisng earthengine, geemap, and streamlit. App 1 - Land Surface Temperature A simple, code-f

13 Nov 27, 2022
Program that shows all the details of the given IP address. Build with Python and ipinfo.io API

ip-details This is a program that shows all the details of the given IP address. Build with Python and ipinfo.io API Usage To use this program, run th

4 Mar 01, 2022
a Geolocator made in python

Geolocator A Geolocator made in python ✨ Features locates ur location using ur ip thats it! 💁‍♀️ How to use first download the locator.py file instal

Portgas D Ace 1 Oct 27, 2021
A Python tool to display geolocation information in the traceroute.

IP2Trace Python IP2Trace Python is a Python tool allowing user to get IP address information such as country, region, city, latitude, longitude, zip c

IP2Location 22 Jan 08, 2023
3D extension built off of shapely to make working with geospatial/trajectory data easier in python.

PyGeoShape 3D extension to shapely and pyproj to make working with geospatial/trajectory data easier in python. Getting Started Installation pip The e

Marc Brittain 5 Dec 27, 2022
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

6k Jan 02, 2023
A multi-page streamlit app for the geospatial community.

A multi-page streamlit app for the geospatial community.

Qiusheng Wu 522 Dec 30, 2022
gjf: A tool for fixing invalid GeoJSON objects

gjf: A tool for fixing invalid GeoJSON objects The goal of this tool is to make it as easy as possible to fix invalid GeoJSON objects through Python o

Yazeed Almuqwishi 91 Dec 06, 2022
Search and download Copernicus Sentinel satellite images

sentinelsat Sentinelsat makes searching, downloading and retrieving the metadata of Sentinel satellite images from the Copernicus Open Access Hub easy

837 Dec 28, 2022
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
Simulation and Parameter Estimation in Geophysics

Simulation and Parameter Estimation in Geophysics - A python package for simulation and gradient based parameter estimation in the context of geophysical applications.

SimPEG 390 Dec 15, 2022
Satellite imagery for dummies.

felicette Satellite imagery for dummies. What can you do with this tool? TL;DR: Generate JPEG earth imagery from coordinates/location name with public

Shivashis Padhi 1.8k Jan 03, 2023
Evaluation of file formats in the context of geo-referenced 3D geometries.

Geo-referenced Geometry File Formats Classic geometry file formats as .obj, .off, .ply, .stl or .dae do not support the utilization of coordinate syst

Advanced Information Systems and Technology 11 Mar 02, 2022