{"id":30201479,"url":"https://github.com/esipfed/lakepy","last_synced_at":"2025-08-13T10:50:18.512Z","repository":{"id":60722499,"uuid":"322186575","full_name":"ESIPFed/LakePy","owner":"ESIPFed","description":"A global lake level database","archived":false,"fork":false,"pushed_at":"2022-02-18T03:07:35.000Z","size":18818,"stargazers_count":35,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-11T16:35:00.986Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/ESIPFed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-17T05:04:29.000Z","updated_at":"2025-06-02T18:27:08.000Z","dependencies_parsed_at":"2022-10-03T21:15:29.255Z","dependency_job_id":null,"html_url":"https://github.com/ESIPFed/LakePy","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ESIPFed/LakePy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ESIPFed%2FLakePy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ESIPFed%2FLakePy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ESIPFed%2FLakePy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ESIPFed%2FLakePy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ESIPFed","download_url":"https://codeload.github.com/ESIPFed/LakePy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ESIPFed%2FLakePy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270228429,"owners_count":24548817,"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","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"keywords":[],"created_at":"2025-08-13T10:50:13.818Z","updated_at":"2025-08-13T10:50:18.472Z","avatar_url":"https://github.com/ESIPFed.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"## LakePy\n[![DOI](https://zenodo.org/badge/322186575.svg)](https://zenodo.org/badge/latestdoi/322186575)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/img/LakePyLogoUpdated.jpg\" /\u003e\n\u003c/p\u003e\n\nLakePy is the pythonic user-centered front-end to the [Global Lake Level Database](https://github.com/ESIPFed/Global-Lake-Level-Database). This package can instantly\n deliver lake water levels for some 2000+ lakes scattered across the globe. Data comes from three sources (so far!)\n - [United States Geological Survey National Water Information System](https://waterdata.usgs.gov/nwis)\n - [United States Department of Agriculture: Foreign Agricultural Service's G-REALM Database](https://ipad.fas.usda.gov/cropexplorer/global_reservoir/)\n - [Theia's HydroWeb Database](http://hydroweb.theia-land.fr/)\n\n \n**Funding for this work comes from the Earth Science Information Partners (ESIP) Winter 2020 Grant**\n\n_See the funded proposal [here](https://www.esipfed.org/wp-content/uploads/2020/04/Gearon.pdf)_\n\n## Motivation\nLake level data is incredibly important to federal and local governments, scientists, and citizens. Until now,\naccessing lake level data involves laborious data-preparation and wrangling. We aim to provide this data quickly\nand on-demand.\n\n## Software Used\n\u003cb\u003eBuilt with\u003c/b\u003e\n- [Python](https://www.python.org/)\n  - [Pandas](https://pandas.pydata.org/)\n  - [PyMySQL](https://pymysql.readthedocs.io/en/latest/)\n  - [Boto3](https://boto3.readthedocs.io/)\n- [Amazon MySQL RDS](https://aws.amazon.com/rds/mysql/)\n- [Amazon API Gateway](https://aws.amazon.com/api-gateway/)\n- [Amazon Lambda](https://aws.amazon.com/lambda/)\n\n## Quickstart\n- For a full API Reference, please consult LakePy's [documentation](http://lakepydocs.com.s3-website.us-east-2.amazonaws.com)\n- For a list of Lakes with corresponding ID numbers, see the [Lake Reference List](docs/resources/LakeReferenceList_Oct2021.csv)\n### Installation\n```\npip install lakepy\n```\nif you are using conda for package management you can\n [still use pip!](https://medium.com/@msarahan/anaconda-also-comes-with-pip-and-you-can-use-it-to-install-pypi-packages-into-conda-environments-9e7f021509f7)\n### Searching the Global Lake Level Database\n The database can be searched using a name, a source (\"grealm\", \"hydroweb\", or \"usgs\"), or an identification number\n . The best practice for searching is to first specify a name.\n \n Let's search for [Lake Mead](https://en.wikipedia.org/wiki/Lake_Mead) instantiating a Lake() object.\n```\nimport lakepy as lk\nmy_lake = lk.search(\"mead\")\n```\nIf there is more than one Lake matching \"Mead\", the search function will return a RuntimeWarning and display a table.\n\n\u003e \"Search Result: 'Mead' has more than 1 Result. Showing the 2 most relevant results.\nSpecify 'id_No' or narrow search name.\"\n\n|    |   id_No | source   | lake_name                           |\n|---:|--------:|:---------|:------------------------------------|\n|  0 |     138 | hydroweb | Mead                                |\n|  1 |    1556 | usgs     | MEAD LAKE WEST BAY NEAR WILLARD, WI |\n\nWe will select id_No 138 corresponding to Lake Mead from HydroWeb's database and re-run our search 1 of 2 ways:\n- Specify the **id_No** explicitly as a string\n\n```\nmy_lake = lk.search(id_No = \"138\")\n```\n\n- Specify a **name** and a **source**\n```\nmy_lake = lk.search(name=\"mead\", source=\"hydroweb\", markdown=True)\n```\nWe _highly recommend_ specifying an id_No _whenever possible_ to avoid issues with similarly named lakes. Either way\n, the search returns a metadata markdown dataframe\n\n|    |   id_No | source   | lake_name   | basin    | status   | country   | end_date         |   latitude |   longitude | identifier   | start_date       |\n|---:|--------:|:---------|:------------|:---------|:---------|:----------|:-----------------|-----------:|------------:|:-------------|:-----------------|\n|  0 |     138 | hydroweb | Mead        | Colorado | research | USA       | 2014-12-29 00:21 |      36.13 |     -114.45 | L_mead       | 2000-06-14 10:22 |\n\nIt is important to note that different databases will return different types and amounts of metadata. Currently\n latitude \u0026 longitude are only available from the USGS and HydroWeb databases, but GREALM lakes will soon have them!\n \n### Lake() object\n \n The \"my_lake\" variable is now an object of class Lake() which comes with several attributes\n \n - name\n - country\n - continent _(currently not supported for HydroWeb)_\n - source\n - original_id\n - id_No\n - observation_period\n - latitude _(currently not supported for G-REALM)_\n - longitude _(currently not supported for G-REALM)_\n - misc_data \n - dataframe \n - data \n\nimportantly, my_lake.dataframe and my_lake.data are pandas dataframe instances with associated methods\n\n```\nmy_lake.dataframe.describe().to_markdown()\n```\n\n|       |   water_level |\n|:------|--------------:|\n| count |     119       |\n| mean  |     342.807   |\n| std   |       7.34547 |\n| min   |     330.75    |\n| 25%   |     337.905   |\n| 50%   |     342.26    |\n| 75%   |     347.555   |\n| max   |     365.43    |\n\n### Plotting\n\nLakePy allows for native time series plotting as well as map-view plots\n```\nmy_lake.plot_timeseries()\n```\nPlotly (default)\n![](docs/resources/plotly.png)\n---\nSeaborn/Matplotlib\n```\nmy_lake.plot_timeseries(how='seaborn')\n```\n![](docs/resources/seaborn.png)\n---\n```\nmy_lake.plot_mapview()\n```\n![](docs/resources/contextily.png)\n\n## API Reference\nPlease refer to the [LakePy documentation](http://lakepydocs.com.s3-website.us-east-2.amazonaws.com)\n\n## Contribute\n\nWe would love your help in making this project better. Please refer to our\n[contribution guide](https://github.com/ESIPFed/LakePy/blob/master/docs/contributing.md) to learn how. \n\n## Citing LakePy\nPlease consider citing us if you use LakePy in your research! The recommended citation is:\n\u003e James Gearon, \u0026 John Franey. (2021, January 4). ESIPFed/LakePy v2.1.0 (Version v2.1.0). Zenodo. http://doi.org/10.\n5281/zenodo.4415936\n\n## Credits\nThis work is based on funding provided by the ESIP Lab with support from the National Aeronautics and Space\nAdministration (NASA), National Oceanic and Atmospheric Administration (NOAA) and the United States Geologic\nSurvey (USGS). LakePy received additional, generous support in 2021 from Derek Masaki and Farial Shahnaz. Many thanks to them.\n\n## License\n\nMIT © [James Hooker Gearon \u0026 John Franey](https://github.com/ESIPFed/GlobalLakeLevelDatabase/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesipfed%2Flakepy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesipfed%2Flakepy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesipfed%2Flakepy/lists"}