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.

Zora is a python program that searches for GeoLocation info for given CIDR networks , with options to search with API or without API

Zora Zora is a python program that searches for GeoLocation info for given CIDR networks , with options to search with API or without API Installing a

z3r0day 1 Oct 26, 2021
A GUI widget for Linux to show current time in different timezones.

A GUI widget to show current time in different timezones (under development). To use this widget: Run scripts/startup.py Select a country. A list of t

B.Jothin kumar 11 Nov 10, 2022
Focal Statistics

Focal-Statistics The Focal statistics tool in many GIS applications like ArcGIS, QGIS and GRASS GIS is a standard method to gain a local overview of r

Ifeanyi Nwasolu 1 Oct 21, 2021
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
Python module and script to interact with the Tractive GPS tracker.

pyTractive GPS Python module and script to interact with the Tractive GPS tracker. Requirements Python 3 geopy folium pandas pillow usage: main.py [-h

Dr. Usman Kayani 3 Nov 16, 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
Tile Map Service and OGC Tiles API for QGIS Server

Tiles API Add tiles API to QGIS Server Tiles Map Service API OGC Tiles API Tile Map Service API - TMS The TMS API provides these URLs: /tms/? to get i

3Liz 6 Dec 01, 2021
Earthengine-py-notebooks - A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping

earthengine-py-notebooks A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping Contact: Qiushen

Qiusheng Wu 1.1k Dec 29, 2022
A simple reverse geocoder that resolves a location to a country

Reverse Geocoder This repository holds a small web service that performs reverse geocoding to determine whether a user specified location is within th

4 Dec 25, 2021
Script that allows to download data with satellite's orbit height and create CSV with their change in time.

Satellite orbit height ◾ Requirements Python = 3.8 Packages listen in reuirements.txt (run pip install -r requirements.txt) Account on Space Track ◾

Alicja Musiał 2 Jan 17, 2022
This app displays interesting statistical weather records and trends which can be used in climate related research including study of global warming.

This app displays interesting statistical weather records and trends which can be used in climate related research including study of global warming.

0 Dec 27, 2021
List of Land Cover datasets in the GEE Catalog

List of Land Cover datasets in the GEE Catalog A list of all the Land Cover (or discrete) datasets in Google Earth Engine. Values, Colors and Descript

David Montero Loaiza 5 Aug 24, 2022
Location field and widget for Django. It supports Google Maps, OpenStreetMap and Mapbox

django-location-field Let users pick locations using a map widget and store its latitude and longitude. Stable version: django-location-field==2.1.0 D

Caio Ariede 481 Dec 29, 2022
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
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
geobeam - adds GIS capabilities to your Apache Beam and Dataflow pipelines.

geobeam adds GIS capabilities to your Apache Beam pipelines. What does geobeam do? geobeam enables you to ingest and analyze massive amounts of geospa

Google Cloud Platform 61 Nov 08, 2022
A light-weight, versatile XYZ tile server, built with Flask and Rasterio :earth_africa:

Terracotta is a pure Python tile server that runs as a WSGI app on a dedicated webserver or as a serverless app on AWS Lambda. It is built on a modern

DHI GRAS 531 Dec 28, 2022
A python package that extends Google Earth Engine.

A python package that extends Google Earth Engine GitHub: https://github.com/davemlz/eemont Documentation: https://eemont.readthedocs.io/ PyPI: https:

David Montero Loaiza 307 Jan 01, 2023
ArcGIS Python Toolbox for WhiteboxTools

WhiteboxTools-ArcGIS ArcGIS Python Toolbox for WhiteboxTools. This repository is related to the ArcGIS Python Toolbox for WhiteboxTools, which is an A

Qiusheng Wu 190 Dec 30, 2022
Geocode rows in a SQLite database table

Geocode rows in a SQLite database table

Chris Amico 225 Dec 08, 2022