{"id":12114,"name":"earthlib","description":"Contains several thousand unique spectral endmembers representing green vegetation, soil, non-photosynthetic vegetation, urban materials, and burned materials.","url":"https://github.com/earth-chris/earthlib-legacy","last_synced_at":"2026-04-27T23:00:49.045Z","repository":{"id":43063447,"uuid":"138663356","full_name":"earth-chris/earthlib-legacy","owner":"earth-chris","description":"Spectral endmembers and unmixing tools for satellite land cover mapping.","archived":false,"fork":false,"pushed_at":"2023-09-10T19:19:25.000Z","size":135051,"stargazers_count":25,"open_issues_count":5,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-07T13:03:37.331Z","etag":null,"topics":["conservation","earth-engine","ecology","remote-sensing","spectral-unmixing"],"latest_commit_sha":null,"homepage":"https://earth-chris.github.io/earthlib","language":"Jupyter Notebook","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/earth-chris.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,"governance":null}},"created_at":"2018-06-26T00:17:21.000Z","updated_at":"2026-02-04T19:04:25.000Z","dependencies_parsed_at":"2023-01-20T20:02:48.510Z","dependency_job_id":null,"html_url":"https://github.com/earth-chris/earthlib-legacy","commit_stats":null,"previous_names":["earth-chris/earthlib-legacy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/earth-chris/earthlib-legacy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/earth-chris","download_url":"https://codeload.github.com/earth-chris/earthlib-legacy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31851057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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"}},"owner":{"login":"earth-chris","name":"Christopher Anderson","uuid":"10216182","kind":"user","description":"ecology | space | design","email":"","website":"https://earth-chris.github.io","location":"San Francisco, CA","twitter":"earth_chris","company":"@planetlabs","icon_url":"https://avatars.githubusercontent.com/u/10216182?u=abccdd72eae96ab5042a5a9a11580202af0adfdf\u0026v=4","repositories_count":17,"last_synced_at":"2026-03-01T15:07:02.694Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/earth-chris","funding_links":[],"total_stars":136,"followers":40,"following":26,"created_at":"2022-11-12T02:14:20.934Z","updated_at":"2026-03-01T15:07:02.694Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/earth-chris","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/earth-chris/repositories"},"packages":[],"commits":{"id":1327619,"full_name":"earth-chris/earthlib-legacy","default_branch":"main","total_commits":255,"total_committers":2,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":127.5,"dds":0.0039215686274509665,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-25T22:02:00.439Z","last_synced_commit":"03f3aa7f2ba10cdc668c6442a6faf79b84d477c7","created_at":"2023-09-11T16:24:49.522Z","updated_at":"2026-04-25T22:01:43.550Z","committers":[{"name":"earth-chris","email":"cbanderson08@gmail.com","login":"earth-chris","count":254},{"name":"unknown","email":"lingling.liu@stanford.edu","login":null,"count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-27T00:00:06.983Z","repositories_count":6220561,"commits_count":899882043,"contributors_count":34880297,"owners_count":1146465,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"earth-chris/earthlib-legacy","html_url":"https://github.com/earth-chris/earthlib-legacy","last_synced_at":"2026-04-17T18:01:08.171Z","status":"error","issues_count":0,"pull_requests_count":0,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":0,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-09-11T16:24:54.426Z","updated_at":"2026-04-17T18:01:08.171Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/earth-chris%2Fearthlib-legacy/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{},"pull_request_authors":{},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-23T00:00:09.119Z","repositories_count":14374397,"issues_count":34467654,"pull_requests_count":112825859,"authors_count":11243636,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"WatchEvent":1},"last_year":{"WatchEvent":1}},"keywords":["conservation","earth-engine","ecology","remote-sensing","spectral-unmixing"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements-dev.txt","sha":null,"kind":"manifest","created_at":"2022-09-12T09:00:17.470Z","updated_at":"2022-09-12T09:00:17.470Z","repository_link":"https://github.com/earth-chris/earthlib-legacy/blob/main/requirements-dev.txt","dependencies":[{"id":4586166613,"package_name":"geemap","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4586166614,"package_name":"jupyter","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4586166615,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4586166616,"package_name":"twine","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-09-12T09:00:17.536Z","updated_at":"2022-09-12T09:00:17.536Z","repository_link":"https://github.com/earth-chris/earthlib-legacy/blob/main/requirements.txt","dependencies":[{"id":4586166745,"package_name":"earthengine-api","ecosystem":"pypi","requirements":"\u003e=0.1.317","direct":true,"kind":"runtime","optional":false},{"id":4586166746,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.21.5","direct":true,"kind":"runtime","optional":false},{"id":4586166747,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=1.3.5","direct":true,"kind":"runtime","optional":false},{"id":4586166748,"package_name":"spectral","ecosystem":"pypi","requirements":"\u003e=0.22.4","direct":true,"kind":"runtime","optional":false},{"id":4586166749,"package_name":"tqdm","ecosystem":"pypi","requirements":"\u003e=4.63.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/deploy-docs.yml","sha":null,"kind":"manifest","created_at":"2023-01-20T20:02:48.400Z","updated_at":"2023-01-20T20:02:48.400Z","repository_link":"https://github.com/earth-chris/earthlib-legacy/blob/main/.github/workflows/deploy-docs.yml","dependencies":[{"id":7068646227,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7068646228,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/run-pytest.yml","sha":null,"kind":"manifest","created_at":"2023-01-20T20:02:48.449Z","updated_at":"2023-01-20T20:02:48.449Z","repository_link":"https://github.com/earth-chris/earthlib-legacy/blob/main/.github/workflows/run-pytest.yml","dependencies":[{"id":7068646230,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7068646231,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]}],"score":4.0943445622221,"created_at":"2023-09-11T14:41:06.906Z","updated_at":"2026-04-27T23:00:49.047Z","avatar_url":"https://github.com/earth-chris.png","language":"Jupyter Notebook","category":"Natural Resources","sub_category":"Soil and Land","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# The Earth Library\n\n\u003cimg src=\"docs/img/earth-unmixed.png\"\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eA global reference library for land cover spectra, and tools for working with it.\u003c/em\u003e\n\u003c/p\u003e\n\n![GitHub](https://img.shields.io/github/license/earth-chris/earthlib)\n![PyPI](https://img.shields.io/pypi/v/earthlib)\n![GitHub Workflow Status](https://img.shields.io/github/workflow/status/earth-chris/earthlib/run-pytest)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/earthlib)\n![GitHub last commit](https://img.shields.io/github/last-commit/earth-chris/earthlib)\n\n\n---\n\n**Documentation**: [earth-chris.github.io/earthlib](https://earth-chris.github.io/earthlib)\n\n**Source code**: [earth-chris/earthlib](https://github.com/earth-chris/earthlib)\n\n---\n\n## Introduction\n\n`earthlib` is a spectral library and a set of software tools for satellite-base land cover mapping.\n\nThe library contains several thousand unique spectral endmembers representing green vegetation, soil, non-photosynthetic vegetation, urban materials, and burned materials. The reflectance data cover the visible to the shortwave infrared wavelengths (400-2450 nm) at 10 nm band widths.\n\nThe software tools (1) resample these data to match the wavelenths of popular satellite and airborne earth observing sensors and (2) run [spectral mixture analysis](docs/introduction.md) in Google Earth Engine via the `earthengine` python package.\n\nThe goal is to quantify spatial and temporal patterns of change in global vegetation cover, as well as patterns of soil cover, burned area, non-photosynthetic vegetation, and impervious surfaces. With `earthlib`, you can do this using most public satellite [data sources](docs/sources.md).\n\n\n## Installation\n\nThis library can be installed via `pip`.\n\n```bash\npip install earthlib\n```\n\nYou can also clone the source repository and install it locally.\n\n```bash\ngit clone https://github.com/earth-chris/earthlib.git\ncd earthlib\npip install -e .\n```\n\n### conda\n\nI recommend working with `earthlib` in `conda` (download from [here](https://docs.conda.io/en/latest/miniconda.html)). The `environment.yml` file in this repository contains a series of packages that are either required (`earthengine-api`) or just convenient (`jupyter`, `folium`) to have.\n\n```bash\ngit clone https://github.com/earth-chris/earthlib.git\ncd earthlib\nconda env update\n```\n\nOnce the environment has been created, you can activate it with `conda activate earthlib`.\n\n\n## Contact\n\n![Twitter Follow](https://img.shields.io/twitter/follow/earth_chris)\n\nThis work is supported by the Stanford Center for Conservation Biology and the Natural Capital Project.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["california","wildfire","biodiversity-informatics","biogeography","maxent","niche-modelling","species-distribution-modelling"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/12114","html_url":"https://ost.ecosyste.ms/projects/12114"}