Skip to main content

eeSDM: Google Earth Engine-based SDM

eeSDM is a Python package designed for conducting species distribution modeling(SDM) using Google Earth Engine. This package provides researchers in ecology, environmental science, and data science with an efficient toolset to explore and predict the relationship between species distribution and environmental factors.

Features

  • Preprocessing of GBIF Occurrence Data (e.g., heatmap plotting, duplicate removal)
  • Multicollinearity Removal for Environmental Variables (VIF)
  • Generation of Pseudo-Absence Data (Full extent, spatial constraints, and environmental profiling)
  • Spatial Grid Generation
  • SDM SDM fitting and prediction
  • Compute Variable Importance scores and visualization
  • Accuracy assessment (e.g., EUC-ROC, EUC-PR, Sensitivity, Specificity) and Curve Plotting
  • Potential Distribution Plotting using Optimal Thresholds

Installation

To install the eeSDM package, you can use the following pip command:

pip install eeSDM

Usage

Here's a simple example of how to use the geokakao package:

import eeSDM
# Plot Yearly & Monthly data distribution
eeSDM.plot_data_distribution(gdf)

# Plot heatmap
eeSDM.plot_heatmap(gdf)

# Apply the function to the raw data with the specified GrainSize
Data = eeSDM.remove_duplicates(data_raw, GrainSize)
# Perform filtering using VIF (Variance Inflation Factor)
# Apply the function to remove variables with high multicollinearity
# Obtain the list of remaining column names after VIF-based filtering
filtered_PixelVals_df, bands = eeSDM.filter_variables_by_vif(PixelVals_df)
# Plot correlation heatmap
eeSDM.plot_correlation_heatmap(filtered_PixelVals_df, h_size=6)

# Generate Random Pseudo-Absence Data in the Entire Area of Interest
AreaForPA = eeSDM.generate_pa_full_area(Data, GrainSize, AOI)

# Generate Spatially Constrained Pseudo-Absence Data (Presence Buffer)
AreaForPA = eeSDM.generate_pa_spatial_constraint(Data, GrainSize, AOI)

# Generate Environmental Pseudo-Absence Data (Environmental Profiling)
AreaForPA = eeSDM.generate_pa_environmental_profiling(Data, GrainSize, AOI, predictors)

# Create a grid of polygons over a specified geometry
Grid = eeSDM.createGrid(AOI, scale=50000)
# Fit SDM
results = eeSDM.batchSDM(Grid, Data, AreaForPA, GrainSize, bands, predictors, numiter, split=0.7, seed=None)
# Plot Average Variable Importance
eeSDM.plot_avg_variable_importance(results, numiter)

# Calculate AUC-ROC and AUC-PR
eeSDM.calculate_and_print_auc_metrics(images, TestingDatasets, GrainSize, numiter)

# Calculate Sensitivity and Specificity
eeSDM.calculate_and_print_ss_metrics(images, TestingDatasets, GrainSize, numiter)

# Plot ROC and PR curves
eeSDM.plot_roc_pr_curves(images, TestingDatasets, GrainSize, numiter)

# Potential Distribution Map using the optimal threshold
DistributionMap2 = eeSDM.create_DistributionMap2(images, TestingDatasets, GrainSize, numiter, ModelAverage)

Case Study 1: Habitat Suitability and Potential Distribution Modeling of Fairy Pitta (Pitta nympha) Using Presence-Only Data

References

The content of this packges presents a conversion and enhancement of JavaScript source code provided by researchers from the Smithsonian Conservation Biology Institute. The original JavaScript code has been translated and refined into Python to achieve the same objectives.

  1. Crego, R. D., Stabach, J. A., & Connette, G. (2022). Implementation of species distribution models in Google Earth Engine. Diversity and Distributions, 28, 904–916. DOI
  2. Smithsonian SDMinGEE GitHub Repository

Release files for eeSDM 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eeSDM 0.1.3
File Size Uploaded
eeSDM-0.1.3.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eeSDM 0.1.3
File Interpreter ABI Platform
eeSDM-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / eeSDM-0.1.3.tar.gz

Download URL eeSDM-0.1.3.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ada4cc1271fb968335377de6c394e93f9156ce69ea86bf95c47e69c97aaa080f
BLAKE2b-256 checksum
How to use checksums
6304c55234d7f52a4daa1c4f8a55d697c7feb3ddb2f28d10a4baa61eb575c5cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / eeSDM-0.1.3-py3-none-any.whl

Download URL eeSDM-0.1.3-py3-none-any.whl
Size 9.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
616adf4ebd9d10fe654d2007e45ffa0d622129af678a9e37eef3a3f3050d9ce4
BLAKE2b-256 checksum
How to use checksums
e6542868b2891c9ddc067eaa3218c29eb89ba4b8cdb95ca6c8352da86e29261b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page