iNaturalist Import v2.0.0 - A QGIS Plugin for Field Naturalists

Hello iNaturalist community! :waving_hand:

I’m excited to share a tool I’ve developed to help naturalists analyze and visualize iNaturalist observations using geographic information systems.


:round_pushpin: What is this plugin?

iNaturalist Import is a free plugin for QGIS (a professional mapping software, also free) that lets you:

  1. Download observations from a specific area - Draw a circle on a map and retrieve all iNaturalist observations within that zone

  2. Filter what you want to see - Select by date range, observer, taxon, quality grade, or seasonality (e.g., “only spring months across all years”)

  3. Create professional maps - Visualize observation patterns, generate heat maps, analyze species distribution

  4. Export data - Work with the data in spreadsheet format or share it with colleagues


:bullseye: Why would a naturalist use this?

Practical examples:

  • Study migration patterns: “Show me all warbler observations in April-May over the past 5 years”

  • Compare habitats: Overlay observations with vegetation maps or elevation data

  • Plan field trips: Identify biodiversity hotspots in your region

  • Monitor populations: Track seasonal presence of species over multiple years

  • Create reports: Generate maps for conservation projects or citizen science initiatives


:world_map: What is QGIS?

QGIS is free, professional mapping software used by ecologists, conservation organizations, and researchers worldwide. Think of it as “Photoshop for maps” - it lets you layer different types of geographic data to understand spatial patterns.

Don’t worry if you’ve never used it! It’s designed to be user-friendly, and there are excellent tutorials available online.


:sparkles: Key Features

Smart data retrieval:

  • Respects iNaturalist’s API limits (automatic handling of large queries)

  • Progress bar shows real-time download status

  • Warns you if your query is very large (and suggests ways to refine it)

Flexible filtering:

  • Time-based: Specific dates, date ranges, or seasonality (select multiple months)

  • Taxonomic: Filter by species, genus, family, or higher ranks

  • Quality: Research grade, needs ID, or casual observations

  • Observer: Focus on specific naturalists’ contributions

Rich output:

  • Geographic coordinates (for mapping)

  • Observation dates (for temporal analysis)

  • Species names (scientific and common)

  • Links to iNaturalist observation pages

  • Photo links (viewable directly in QGIS)

  • Taxonomy hierarchy (kingdom → species)

  • Quality grades and precision data

Professional format:

  • Data saved in GeoPackage format (industry standard)

  • Compatible with other GIS software

  • Easy to export to spreadsheets (Excel, CSV)


:rocket: Getting Started

  1. Download QGIS (free): https://qgis.org

  2. Install the plugin: In QGIS, go to PluginsManage and Install Plugins → Search for “iNaturalist Import”

  3. Create your first map: Click the plugin button, draw a circle on the map, choose your filters, and click OK!

The plugin is bilingual (English/French) and includes built-in help.


:globe_showing_europe_africa: Use Cases from the Field

Example 1 - Butterfly monitoring: A naturalist studying butterfly phenology uses the plugin to download all Lepidoptera observations from their local nature reserve across 10 years. By filtering for specific months (June-August), they create maps showing how butterfly emergence timing has shifted with climate change.

Example 2 - BioBlitz planning: An organization planning a BioBlitz uses the plugin to identify under-surveyed areas in their region by mapping observation density. They discover a nearby woodland with very few records and make it a priority survey location.

Example 3 - Species distribution: A researcher studying rare orchids downloads observations across multiple regions, overlays them with soil type data, and identifies habitat preferences that inform conservation strategies.


:handshake: Feedback Welcome!

This plugin is designed by naturalists, for naturalists. I’d love to hear:

  • How you’re using it in your work

  • Suggestions for improvements

  • Questions or issues you encounter

The plugin is open-source and available on GitHub: https://github.com/yd73/iNaturalist_Import


:e_mail: Contact

Yves Durivault
yves.durivault@gmail.com


Note: This plugin respects iNaturalist’s terms of service and API usage guidelines. It’s a tool to help you analyze public observation data while being mindful of server resources.

Happy mapping! :world_map::butterfly::seedling:


P.S. - This plugin is completely independent from the existing “iNaturalist Extract” plugin. If you’ve used that one, think of this as a complementary tool with different features and workflow.

27 Likes

This looks like a very nice tool for some quick analyses, thanks for sharing. It speeds up the pipeline for having the data in QGIS quite a bit by circumventing the normal download route and saving it straight to the project.

I did notice that the radius of the downloaded observations exceeds that of the circle that I drew , but it is consistent with the numerical value that gets shown (metres to degrees conversion?).

The photo database is a nice touch. Something that might be of interest for you would be to use the HTML Map Tip field to link a mouseover img tag, perhaps of the first photo for each observation. See below.

1 Like

Looks great, thanks for your work, i use a lot both QGIS and iNat’, very interesting.
I can’t find this extension in QGIS 3.4 LTR tho.

edit : i have download the latest LTR 3.40.14 and i can find it now

Can’t install “pyinaturaslit” now

Very cool. I mainly use ArcGIS and have to do the CSV download and the subsequent steps, but I use QGIS sometimes too.

Nice to see a direct port like this.

Definitely saving it.

1 Like

Lots of work here, very nice interface.

Perhaps the feature/circle discrepancy is related to the use of a France centred CRS (EPSG:2154) for drawing the circle? Most of my projects are based on South American countries so this CRS is inappropriate.

Perhaps the plugin needs to take account of the QGIS project centre and choose an alternative CRS.

Thanks for your hard work, really useful. I’ve downloaded and installed the plugin and everything works… except I can’t visualize the photos. But I’m sure that’s my problem. I’ll take a better look when I have more time.

1 Like

Ooooo thank you!

1 Like

Thank you for your message.

Your observation regarding the circle is crucial. I had developed a method that worked perfectly… in France, but absolutely not in the rest of the world. How silly !

Thanks to you, this has now been fixed in version 2.1.0 (published but awaiting validation as I write this).

So, I look forward to your feedback once you’ve tested v2.1.0.

However, I didn’t think to implement your suggestion to put the first image in an HTML tooltip. An excellent idea! But I was too preoccupied with this circle issue. But you can count on me: it will be done in the next update, even a minor one!

Thanks again for your contribution !
If you like this plugin, please rate it.

3 Likes

Thak you very much !

        To install pyinaturalist.py for QGIS :
        1. Close QGIS.
        2. Open the 'OSGeo4W Shell’ (See the tools offered with QGIS. It works via command line.)
        3. Run the following command :  python -m pip install pyinaturalist. And wait during installation.
        4. When finished, restart QGIS.

Thank you very much for your message.

I’ve just posted an update v2.1.0 (pending validation) to fix a geographic universality issue related to the circle drawing (see above).

If you like this plugin, please rate it.

Excellent comment !
You’ve perfectly identified the problem : EPSG:2154 is French only … How silly of me !

Thanks to your feedback, this has now been fixed in v2.1.0, which has been released but is awaiting validation. The new version should now work perfectly for you and, I hope, fully meet your expectations.

I look forward to your feedback…
If you like this plugin, please rate it.

QGIS settings :
Open the “Identify” window (see above), and more specifically, the “Key” tool at the top of this window.
Check “Automatically open form if only one feature is identified.” At the bottom of this same window, choose Mode: Current Layer.

Usage :
Before using the “i” tool, select the main layer (in the Layer Manager). Not the “Photos” layer, not the “Circle” layer.
Ideally, if there are overlapping observations, zoom in enough to visually separate them. If this is not sufficient, right-click: You will be able to access the list of overlapping observations and select ONLY ONE (this is necessary to open the attributes window, with the display of the photos).

Thank you very much !

If you like it, don’t forget to rate this plugin !

Option 1 : Have you open OSGeo4W Shell in admin mode ?

Option 2 : Via the QGIS Python plugin manager menu.
In QGIS :

  1. Plugins menu → Python Console

  2. Copy and paste this command :
    import subprocess
    import sys
    subprocess.check_call([sys.executable, “-m”, “pip”, “install”, “pyinaturalist”])

  3. Press Enter

  4. Restart QGIS

Now works as intended with admin mode. Thx.
I have done several tries and every work nicely.
Do you plan to add more selection area tools ? It would be ideal being able to directly import a perimeter (as kml or such)

I should actually have thought of that :thinking: . Really great plugin and perfect for a project I’ve got going at the moment :slightly_smiling_face: , a really big thank you.

EDIT: I’ve been playing with it for a while and I can confirm, it’s not just perfect, it’s nothing short of miraculous!! Thanks again :smiling_face_with_three_hearts:.

2 Likes

Thanks, the circle is catching the correct observations now :+1:

It’s true that an area selection by irregular polygon would be nice… We’ll see in a future version.

It’s a bit of my fault because I did not communicate on the plugin I developed a year ago but there is already a QGIS plugin doing some of the functionality you have developed, only the filters needed to be implemented to be similar to yours (and some minor changes as well).

It would have been a good idea to collaborate together or/and to build a plugin with other functionalities but compatible with the other one (you can install other plugins automatically if you specify their name in your metadata.txt).

I don’t have a lot of time to spend on my plugin right now and looks like you are quite dynamic on the subject so I see 2 options

  • I can merge my project to yours, to have only one QGIS plugin for iNaturalist.
  • We keep 2 plugins but we merge your “Script 1 Import iNaturalist” part into mine and maintain the database, taxonomy and migration part in your plugin. In this case both plugin can be dependent so they are both installed if a user install one plugin.

Anyway I see a lot of possible upgrades (technical ones, translation, automatic processing) on your plugin, I can list them here or create Git Tickets if you prefer ?

We can also meet to discuss it we are not far away, I live in Annecy.

Ps: I just saw your PS about this plugin after writing my reply :sweat_smile: .

1 Like