Using Python to characterize the geospatial database of the International Union for Conservation of Nature (IUCN).
The International Union for Conservation of Nature (IUCN) launched several projects to protect wildlife. One of these efforts led to a high-quality global geospatial database containing the habitats of more than 100,000 species. In this article, I explore its subset, focusing on terrestrial mammals.
The IUCN Red List of Threatened Species database contains more than 150,000 species, with geospatial information on habitats attributed to more than 80% of them. The sheer size of this database poses several challenges, which I may address in a later article. For now, I will focus on a smaller subset: the global database consisting of terrestrial mammals with 12,436 records, each corresponding to one habitat patch per species. This mammal habitat database is based on around four hundred different sources and contains 5,626 species identified by their binomial names, recorded between 2008 and 2022. In addition, the database includes detailed taxonomic information, such as the order and family of the species. Additionally, one of the main advantages of the database is that it contains detailed geospatial information on habitats in the form of polygonal files, which I will explore in more detail later.
First, I will present and explore the non-geometric characteristics of this data set and then perform some analytical steps specific to the geospatial distribution of the different species. With this analysis, I hope to popularize this data source and encourage future work with potential applications for wildlife protection policies.
You can find all IUCN data sources. herefrom which I downloaded the data of the terrestrial mammal polygon (search date: 2023–10–02 at 15:30:02)
All images in this article were created by the author.
1.1. Analyze the data set
First, let’s analyze the database using GeoPandas and see what it contains:
import geopandas as gpd # version: 0.9.0gdf_iucn = gpd.read_file('MAMMALS_TERRESTRIAL_ONLY')
print('Number of records: ', len(gdf_iucn))…