{"id":22156052,"url":"https://github.com/daniel-furman/pysdms","last_synced_at":"2025-07-19T11:34:13.822Z","repository":{"id":62583343,"uuid":"355413323","full_name":"daniel-furman/PySDMs","owner":"daniel-furman","description":"A Python class for AutoML spatial classification (designed for Species Distribution Modeling applications).","archived":false,"fork":false,"pushed_at":"2021-09-05T22:51:57.000Z","size":27302,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"pypi-deployed","last_synced_at":"2025-07-14T07:29:16.664Z","etag":null,"topics":["ecological-modeling","geospatial-analysis","pycaret","species-distribution-modeling"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/PySDMs/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daniel-furman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-07T04:37:58.000Z","updated_at":"2025-05-21T15:08:56.000Z","dependencies_parsed_at":"2022-11-03T21:34:21.839Z","dependency_job_id":null,"html_url":"https://github.com/daniel-furman/PySDMs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daniel-furman/PySDMs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-furman%2FPySDMs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-furman%2FPySDMs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-furman%2FPySDMs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-furman%2FPySDMs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daniel-furman","download_url":"https://codeload.github.com/daniel-furman/PySDMs/tar.gz/refs/heads/pypi-deployed","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-furman%2FPySDMs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265926967,"owners_count":23850886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ecological-modeling","geospatial-analysis","pycaret","species-distribution-modeling"],"created_at":"2024-12-02T02:35:05.928Z","updated_at":"2025-07-19T11:34:10.057Z","avatar_url":"https://github.com/daniel-furman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## PySDMs\n\n[![Build Status](https://travis-ci.com/daniel-furman/PySDMs.svg?branch=pypi-updates)](https://travis-ci.com/daniel-furman/PySDMs)\n\n`from PySDMs import PySDMs`\n\n---\n\n## Example 1: \"EcoRisk Forecasts - California\" for DAT/Artathon 2021\n\n\n\u003cimg src=\"examples/datartathon/ecorisk-zoo-landscape.gif\"/\u003e\n\n\n\u003cbr\u003e\n\n### Descriptive Stats for Climatic Change between 1985 to 2070 at Species Presences:\n\nBioclimatic Variable  | Coast redwood % Change | Giant sequoia % Change | Joshua tree % Change\n-----|-------|-------|-------\nTemperature Annual Mean | +22% | +47% | +24%\nTemperature Annual Range | +5% | +4% | +2%\nPrecipitation Driest Month | -1% | -2% | -7%\n\n* SSP 370 [CMIP6](https://www.worldclim.org/data/cmip6/cmip6climate.html) models for the IPCC6 report.\n* Bioclimatic Features from [WorldClim2](https://www.worldclim.org/data/worldclim21.html)\n* Species presences from GBIF and carefully cleaned\n\n\u003cbr\u003e\n\n## Example 2: Probablistic near-current interpolation\n\n* Blending methods boosted model performances to ~ two-zero false negatives per species.\n\n**Coast redwood** SDM geo-classification (*Sequoia sempervirens*) | Standard deviations from multiple seeds/samples. \n:---------------------------------:|:----------------------------------------:\n![](examples/coast_redwoods/curr-cr.png) | ![](examples/coast_redwoods/current-sd.png)\n\n**Giant sequioa** SDM geo-classification (*Sequoiadendron giganteum*) | Standard deviations from multiple seeds/samples.\n:---------------------------------:|:----------------------------------------:\n![](examples/giant_sequoias/curr-gs.png) | ![](examples/giant_sequoias/curr-sd.png)\n\n**Joshua tree** SDM geo-classification (*Yucca brevifolia*) | Standard deviations from multiple seeds/samples. \n:---------------------------------:|:----------------------------------------:\n![](examples/joshua_trees/curr-jtree.png) | ![](examples/joshua_trees/curr-sd2.png)\n\n\n## Bio\n\nAn object-oriented Python class for semi-auto ML geo-classification (running on PyCaret). Compares gradient boosted tree algorithms by default, with options to include soft voters and NNs. Designed for Species Distribution Modeling applications.\n\n## Package Layout\n\n* [PySDMs](https://github.com/daniel-furman/PySDMs/tree/main/PySDMs)/ - the library code itself\n* [LICENSE](https://github.com/daniel-furman/PySDMs/blob/main/LICENSE) - the MIT license, which applies to this package\n* README.md - the README file, which you are now reading\n* [requirements.txt](https://github.com/daniel-furman/PySDMs/blob/main/requirements.txt) - prerequisites to install this package, used by pip\n* [setup.py](https://github.com/daniel-furman/PySDMs/blob/main/setup.py) - installer script\n* [tests](https://github.com/daniel-furman/PySDMs/tree/main/test)/ - unit tests\n\n## Functions\n\n   **self.fit():** Model training with PyCaret, considering tree-based\n        methods, neural nets, and best-subset-selection soft voting blends.\n        Requires a data-frame with a classification target and numerical\n        explanatory features. Returns the voter with the best validation\n        metric performance (default metric=F1).\n\n   **self.interpolate():** Geo-classification function for model interpolation to\n        raster feature surfaces. Saves to file both probabilistic and binary\n        distribution predictions.\n\n   **self.validation_performance():** Metric scores and AUC visuals on the test set.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-furman%2Fpysdms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniel-furman%2Fpysdms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-furman%2Fpysdms/lists"}