{"id":194046,"name":"Hydrocron","description":"An API that repackages hydrology datasets from the Surface Water and Ocean Topography satellite into formats that make time-series analysis easier.","url":"https://github.com/podaac/hydrocron","last_synced_at":"2026-05-29T04:01:53.242Z","repository":{"id":171741538,"uuid":"648349626","full_name":"podaac/hydrocron","owner":"podaac","description":"API for retreiving time series of SWOT data","archived":false,"fork":false,"pushed_at":"2026-05-11T21:34:50.000Z","size":81642,"stargazers_count":32,"open_issues_count":41,"forks_count":8,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2026-05-11T23:35:04.744Z","etag":null,"topics":["development","tva"],"latest_commit_sha":null,"homepage":"https://podaac.github.io/hydrocron/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/podaac.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-01T19:09:50.000Z","updated_at":"2026-05-11T21:34:53.000Z","dependencies_parsed_at":"2024-04-11T15:50:40.394Z","dependency_job_id":"d06b03e9-ee52-469e-aa61-cc8bd9518113","html_url":"https://github.com/podaac/hydrocron","commit_stats":{"total_commits":200,"total_committers":8,"mean_commits":25.0,"dds":0.55,"last_synced_commit":"39a1cc748ab2b763855759315ba435e6f8450c9c"},"previous_names":["podaac/hydrocron"],"tags_count":179,"template":false,"template_full_name":null,"purl":"pkg:github/podaac/hydrocron","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/podaac","download_url":"https://codeload.github.com/podaac/hydrocron/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33043249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"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"}},"owner":{"login":"podaac","name":"PO.DAAC","uuid":"22459078","kind":"organization","description":"Physical Oceanography Distributed Active Archive Center (PO.DAAC)","email":"podaac@podaac.jpl.nasa.gov","website":"http://podaac.jpl.nasa.gov","location":"United States of America","twitter":"NASAEarthData","company":null,"icon_url":"https://avatars.githubusercontent.com/u/22459078?v=4","repositories_count":33,"last_synced_at":"2023-03-03T21:57:47.208Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/podaac","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T05:51:32.583Z","updated_at":"2023-03-03T21:57:47.219Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/podaac","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/podaac/repositories"},"packages":[],"commits":{"id":1549529,"full_name":"podaac/hydrocron","default_branch":"develop","total_commits":306,"total_committers":12,"total_bot_commits":9,"total_bot_committers":1,"mean_commits":25.5,"dds":0.7058823529411764,"past_year_total_commits":95,"past_year_total_committers":6,"past_year_total_bot_commits":9,"past_year_total_bot_committers":1,"past_year_mean_commits":15.833333333333334,"past_year_dds":0.3789473684210526,"last_synced_at":"2026-05-14T21:11:59.603Z","last_synced_commit":"c4547f998db49ed159b74591da91f1cb101b1137","created_at":"2024-06-08T00:10:44.841Z","updated_at":"2026-05-14T21:10:01.813Z","committers":[{"name":"frankinspace","email":"frankinspace","login":"frankinspace","count":90},{"name":"Nikki Tebaldi","email":"17799906+nikki-t","login":"nikki-t","count":76},{"name":"James Wood","email":"8115931+jamesfwood","login":"jamesfwood","count":60},{"name":"Victoria McDonald","email":"49625194+torimcd","login":"torimcd","count":45},{"name":"thomas loubrieu","email":"60993872+tloubrieu-jpl","login":"tloubrieu-jpl","count":9},{"name":"podaac-cicd[bot]","email":"podaac-cicd[bot]","login":"podaac-cicd[bot]","count":9},{"name":"Vanesa","email":"131063992+vggonzal","login":"vggonzal","count":9},{"name":"Simon Liu","email":"69875423+sliu008","login":"sliu008","count":2},{"name":"Cassie Nickles","email":"44206543+cassienickles","login":"cassienickles","count":2},{"name":"James Wood","email":"James.F.Wood@jpl.nasa.gov","login":null,"count":2},{"name":"Brandi Downs","email":"34132383+BrandiDowns","login":"BrandiDowns","count":1},{"name":"vggonzal","email":"9Tcostoamm","login":null,"count":1}],"past_year_committers":[{"name":"James Wood","email":"8115931+jamesfwood","login":"jamesfwood","count":59},{"name":"nikki-t","email":"nikki-t","login":"nikki-t","count":15},{"name":"thomas loubrieu","email":"60993872+tloubrieu-jpl","login":"tloubrieu-jpl","count":9},{"name":"podaac-cicd[bot]","email":"podaac-cicd[bot]","login":"podaac-cicd[bot]","count":9},{"name":"Simon Liu","email":"69875423+sliu008","login":"sliu008","count":2},{"name":"Brandi Downs","email":"34132383+BrandiDowns","login":"BrandiDowns","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-25T00:00:11.816Z","repositories_count":6241059,"commits_count":883110360,"contributors_count":34910625,"owners_count":1157204,"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":"podaac/hydrocron","html_url":"https://github.com/podaac/hydrocron","last_synced_at":"2026-05-20T07:02:09.098Z","status":null,"issues_count":197,"pull_requests_count":182,"avg_time_to_close_issue":5248190.803030303,"avg_time_to_close_pull_request":644168.9440993789,"issues_closed_count":132,"pull_requests_closed_count":161,"pull_request_authors_count":10,"issue_authors_count":21,"avg_comments_per_issue":1.3096446700507614,"avg_comments_per_pull_request":0.6593406593406593,"merged_pull_requests_count":147,"bot_issues_count":0,"bot_pull_requests_count":12,"past_year_issues_count":23,"past_year_pull_requests_count":26,"past_year_avg_time_to_close_issue":2190465.1,"past_year_avg_time_to_close_pull_request":421302.1666666667,"past_year_issues_closed_count":10,"past_year_pull_requests_closed_count":18,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":13,"past_year_avg_comments_per_issue":1.2608695652173914,"past_year_avg_comments_per_pull_request":0.4230769230769231,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":12,"past_year_merged_pull_requests_count":9,"created_at":"2024-06-08T00:11:06.108Z","updated_at":"2026-05-20T07:02:09.098Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fhydrocron/issues","issue_labels_count":{"enhancement":73,"bug":39,"documentation":13,"team:tva":8,"priority:must-have":6,"dependency":5,"question":4,"esdis":4,"help wanted":3,"priority:could-have":1,"theme":1},"pull_request_labels_count":{"python":12,"dependencies":12,"enhancement":3,"documentation":2,"dependency":1},"issue_author_associations_count":{"CONTRIBUTOR":64,"MEMBER":62,"COLLABORATOR":47,"NONE":24},"pull_request_author_associations_count":{"COLLABORATOR":75,"CONTRIBUTOR":74,"MEMBER":19,"NONE":14},"issue_authors":{"frankinspace":59,"torimcd":53,"nikki-t":47,"jamesfwood":6,"merrittharlan":5,"devincowan":4,"vggonzal":4,"cassienickles":4,"tloubrieu-jpl":2,"ScienceCat18":2,"czarmanu":1,"lidapeng":1,"schuter":1,"viviant100":1,"Andy-Ye-Brown":1,"bhandariravi":1,"Travis-Simmons":1,"jameshgrn":1,"efried130":1,"hy-net-tech":1,"Reza-Jamshidi":1},"pull_request_authors":{"nikki-t":75,"torimcd":54,"frankinspace":15,"vggonzal":13,"dependabot[bot]":12,"jamesfwood":5,"cassienickles":4,"sliu008":2,"BrandiDowns":1,"zykron1":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-25T00:00:55.688Z","repositories_count":14693537,"issues_count":33976022,"pull_requests_count":111262843,"authors_count":11273256,"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":{"team:tva":7,"enhancement":4,"priority:must-have":4,"bug":3,"question":1,"esdis":1,"theme":1},"past_year_pull_request_labels_count":{"dependencies":12,"python":12},"past_year_issue_author_associations_count":{"NONE":10,"CONTRIBUTOR":9,"COLLABORATOR":2,"MEMBER":1},"past_year_pull_request_author_associations_count":{"NONE":12,"CONTRIBUTOR":8,"COLLABORATOR":6},"past_year_issue_authors":{"jamesfwood":6,"frankinspace":2,"nikki-t":2,"ScienceCat18":2,"tloubrieu-jpl":2,"Andy-Ye-Brown":1,"bhandariravi":1,"devincowan":1,"hy-net-tech":1,"jameshgrn":1,"lidapeng":1,"merrittharlan":1,"Reza-Jamshidi":1},"past_year_pull_request_authors":{"dependabot[bot]":12,"nikki-t":6,"jamesfwood":5,"sliu008":2,"BrandiDowns":1},"maintainers":[{"login":"nikki-t","count":93,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nikki-t"},{"login":"frankinspace","count":73,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/frankinspace"},{"login":"torimcd","count":28,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/torimcd"},{"login":"cassienickles","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cassienickles"},{"login":"zykron1","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zykron1"}],"active_maintainers":[{"login":"nikki-t","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nikki-t"},{"login":"frankinspace","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/frankinspace"}]},"events":{"total":{"ReleaseEvent":41,"DeleteEvent":28,"PullRequestEvent":44,"ForkEvent":1,"IssuesEvent":77,"WatchEvent":12,"IssueCommentEvent":94,"PushEvent":161,"PullRequestReviewCommentEvent":20,"PullRequestReviewEvent":31,"CreateEvent":73},"last_year":{"ReleaseEvent":10,"DeleteEvent":12,"PullRequestEvent":15,"ForkEvent":1,"IssuesEvent":22,"WatchEvent":3,"IssueCommentEvent":19,"PushEvent":67,"PullRequestReviewCommentEvent":4,"PullRequestReviewEvent":5,"CreateEvent":22}},"keywords":["development","tva"],"dependencies":[{"ecosystem":"docker","filepath":"docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-10-23T18:38:25.443Z","updated_at":"2023-10-23T18:38:25.443Z","repository_link":"https://github.com/podaac/hydrocron/blob/develop/docker-compose.yml","dependencies":[{"id":14273271235,"package_name":"amazon/dynamodb-local","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2023-10-23T18:38:25.558Z","updated_at":"2023-10-23T18:38:25.558Z","repository_link":"https://github.com/podaac/hydrocron/blob/develop/poetry.lock","dependencies":[{"id":14273271276,"package_name":"aiobotocore","ecosystem":"pypi","requirements":"2.5.4","direct":false,"kind":null,"optional":false},{"id":14273271710,"package_name":"aiohttp","ecosystem":"pypi","requirements":"3.8.5","direct":false,"kind":null,"optional":false},{"id":14273271711,"package_name":"aioitertools","ecosystem":"pypi","requirements":"0.11.0","direct":false,"kind":null,"optional":false},{"id":14273271804,"package_name":"aiosignal","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":null,"optional":false},{"id":14273271807,"package_name":"astroid","ecosystem":"pypi","requirements":"2.15.8","direct":false,"kind":null,"optional":false},{"id":14273271809,"package_name":"async-timeout","ecosystem":"pypi","requirements":"4.0.3","direct":false,"kind":null,"optional":false},{"id":14273271811,"package_name":"attrs","ecosystem":"pypi","requirements":"23.1.0","direct":false,"kind":null,"optional":false},{"id":14273271813,"package_name":"boto3","ecosystem":"pypi","requirements":"1.28.17","direct":false,"kind":null,"optional":false},{"id":14273271815,"package_name":"boto3-stubs","ecosystem":"pypi","requirements":"1.28.56","direct":false,"kind":null,"optional":false},{"id":14273271944,"package_name":"botocore","ecosystem":"pypi","requirements":"1.31.17","direct":false,"kind":null,"optional":false},{"id":14273271945,"package_name":"botocore-stubs","ecosystem":"pypi","requirements":"1.31.56","direct":false,"kind":null,"optional":false},{"id":14273272118,"package_name":"bounded-pool-executor","ecosystem":"pypi","requirements":"0.0.3","direct":false,"kind":null,"optional":false},{"id":14273272151,"package_name":"certifi","ecosystem":"pypi","requirements":"2023.7.22","direct":false,"kind":null,"optional":false},{"id":14273272152,"package_name":"cffi","ecosystem":"pypi","requirements":"1.15.1","direct":false,"kind":null,"optional":false},{"id":14273272153,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.2.0","direct":false,"kind":null,"optional":false},{"id":14273272154,"package_name":"click","ecosystem":"pypi","requirements":"8.1.7","direct":false,"kind":null,"optional":false},{"id":14273272155,"package_name":"click-plugins","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":null,"optional":false},{"id":14273272156,"package_name":"clickclick","ecosystem":"pypi","requirements":"20.10.2","direct":false,"kind":null,"optional":false},{"id":14273272157,"package_name":"cligj","ecosystem":"pypi","requirements":"0.7.2","direct":false,"kind":null,"optional":false},{"id":14273272158,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":null,"optional":false},{"id":14273272159,"package_name":"connexion","ecosystem":"pypi","requirements":"2.14.2","direct":false,"kind":null,"optional":false},{"id":14273272160,"package_name":"cryptography","ecosystem":"pypi","requirements":"41.0.4","direct":false,"kind":null,"optional":false},{"id":14273272161,"package_name":"dill","ecosystem":"pypi","requirements":"0.3.7","direct":false,"kind":null,"optional":false},{"id":14273272162,"package_name":"earthaccess","ecosystem":"pypi","requirements":"0.5.3","direct":false,"kind":null,"optional":false},{"id":14273272171,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.1.3","direct":false,"kind":null,"optional":false},{"id":14273272172,"package_name":"fiona","ecosystem":"pypi","requirements":"1.9.4.post1","direct":false,"kind":null,"optional":false},{"id":14273272173,"package_name":"flake8","ecosystem":"pypi","requirements":"6.1.0","direct":false,"kind":null,"optional":false},{"id":14273272174,"package_name":"flask","ecosystem":"pypi","requirements":"2.2.5","direct":false,"kind":null,"optional":false},{"id":14273272175,"package_name":"flask-testing","ecosystem":"pypi","requirements":"0.8.1","direct":false,"kind":null,"optional":false},{"id":14273272198,"package_name":"frozenlist","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":null,"optional":false},{"id":14273272199,"package_name":"fsspec","ecosystem":"pypi","requirements":"2023.9.2","direct":false,"kind":null,"optional":false},{"id":14273272200,"package_name":"geopandas","ecosystem":"pypi","requirements":"0.13.2","direct":false,"kind":null,"optional":false},{"id":14273272201,"package_name":"hydrocron-db","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":null,"optional":false},{"id":14273272264,"package_name":"idna","ecosystem":"pypi","requirements":"3.4","direct":false,"kind":null,"optional":false},{"id":14273272265,"package_name":"inflection","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":null,"optional":false},{"id":14273272266,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":null,"optional":false},{"id":14273272267,"package_name":"isort","ecosystem":"pypi","requirements":"5.12.0","direct":false,"kind":null,"optional":false},{"id":14273272268,"package_name":"itsdangerous","ecosystem":"pypi","requirements":"2.1.2","direct":false,"kind":null,"optional":false},{"id":14273272269,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.2","direct":false,"kind":null,"optional":false},{"id":14273272270,"package_name":"jmespath","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":null,"optional":false},{"id":14273272271,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.19.1","direct":false,"kind":null,"optional":false},{"id":14273272272,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"2023.7.1","direct":false,"kind":null,"optional":false},{"id":14273272273,"package_name":"lazy-object-proxy","ecosystem":"pypi","requirements":"1.9.0","direct":false,"kind":null,"optional":false},{"id":14273272274,"package_name":"markupsafe","ecosystem":"pypi","requirements":"2.1.3","direct":false,"kind":null,"optional":false},{"id":14273272275,"package_name":"mccabe","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":null,"optional":false},{"id":14273272276,"package_name":"mirakuru","ecosystem":"pypi","requirements":"2.5.1","direct":false,"kind":null,"optional":false},{"id":14273272277,"package_name":"multidict","ecosystem":"pypi","requirements":"6.0.4","direct":false,"kind":null,"optional":false},{"id":14273272278,"package_name":"multimethod","ecosystem":"pypi","requirements":"1.10","direct":false,"kind":null,"optional":false},{"id":14273272394,"package_name":"mypy-boto3-dynamodb","ecosystem":"pypi","requirements":"1.28.55","direct":false,"kind":null,"optional":false},{"id":14273272460,"package_name":"numpy","ecosystem":"pypi","requirements":"1.25.2","direct":false,"kind":null,"optional":false},{"id":14273272461,"package_name":"packaging","ecosystem":"pypi","requirements":"23.1","direct":false,"kind":null,"optional":false},{"id":14273272462,"package_name":"pandas","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":null,"optional":false},{"id":14273272463,"package_name":"pandas","ecosystem":"pypi","requirements":"2.1.1","direct":false,"kind":null,"optional":false},{"id":14273272464,"package_name":"platformdirs","ecosystem":"pypi","requirements":"3.10.0","direct":false,"kind":null,"optional":false},{"id":14273272465,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":null,"optional":false},{"id":14273272466,"package_name":"port-for","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":null,"optional":false},{"id":14273272624,"package_name":"pqdm","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":null,"optional":false},{"id":14273272729,"package_name":"psutil","ecosystem":"pypi","requirements":"5.9.5","direct":false,"kind":null,"optional":false},{"id":14273272730,"package_name":"pycodestyle","ecosystem":"pypi","requirements":"2.11.0","direct":false,"kind":null,"optional":false},{"id":14273272731,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.21","direct":false,"kind":null,"optional":false},{"id":14273272732,"package_name":"pyflakes","ecosystem":"pypi","requirements":"3.1.0","direct":false,"kind":null,"optional":false},{"id":14273272733,"package_name":"pylint","ecosystem":"pypi","requirements":"2.17.6","direct":false,"kind":null,"optional":false},{"id":14273272734,"package_name":"pymysql","ecosystem":"pypi","requirements":"1.1.0","direct":false,"kind":null,"optional":false},{"id":14273272735,"package_name":"pyproj","ecosystem":"pypi","requirements":"3.6.1","direct":false,"kind":null,"optional":false},{"id":14273272736,"package_name":"pytest","ecosystem":"pypi","requirements":"7.4.2","direct":false,"kind":null,"optional":false},{"id":14273272737,"package_name":"pytest-dynamodb","ecosystem":"pypi","requirements":"2.2.3","direct":false,"kind":null,"optional":false},{"id":14273272856,"package_name":"python-cmr","ecosystem":"pypi","requirements":"0.9.0","direct":false,"kind":null,"optional":false},{"id":14273272859,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.8.2","direct":false,"kind":null,"optional":false},{"id":14273272860,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":null,"optional":false},{"id":14273272861,"package_name":"pytz","ecosystem":"pypi","requirements":"2023.3.post1","direct":false,"kind":null,"optional":false},{"id":14273272862,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.1","direct":false,"kind":null,"optional":false},{"id":14273272863,"package_name":"referencing","ecosystem":"pypi","requirements":"0.30.2","direct":false,"kind":null,"optional":false},{"id":14273272864,"package_name":"requests","ecosystem":"pypi","requirements":"2.31.0","direct":false,"kind":null,"optional":false},{"id":14273272865,"package_name":"rpds-py","ecosystem":"pypi","requirements":"0.10.3","direct":false,"kind":null,"optional":false},{"id":14273272866,"package_name":"s3fs","ecosystem":"pypi","requirements":"2023.9.2","direct":false,"kind":null,"optional":false},{"id":14273272867,"package_name":"s3transfer","ecosystem":"pypi","requirements":"0.6.2","direct":false,"kind":null,"optional":false},{"id":14273272868,"package_name":"shapely","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":null,"optional":false},{"id":14273272869,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":null,"optional":false},{"id":14273272870,"package_name":"swagger-ui-bundle","ecosystem":"pypi","requirements":"0.0.9","direct":false,"kind":null,"optional":false},{"id":14273272951,"package_name":"tinynetrc","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":null,"optional":false},{"id":14273273120,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":null,"optional":false},{"id":14273273121,"package_name":"tomlkit","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":null,"optional":false},{"id":14273273122,"package_name":"tqdm","ecosystem":"pypi","requirements":"4.66.1","direct":false,"kind":null,"optional":false},{"id":14273273123,"package_name":"types-awscrt","ecosystem":"pypi","requirements":"0.19.1","direct":false,"kind":null,"optional":false},{"id":14273273165,"package_name":"types-s3transfer","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":null,"optional":false},{"id":14273273252,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.8.0","direct":false,"kind":null,"optional":false},{"id":14273273253,"package_name":"tzdata","ecosystem":"pypi","requirements":"2023.3","direct":false,"kind":null,"optional":false},{"id":14273273254,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.16","direct":false,"kind":null,"optional":false},{"id":14273273255,"package_name":"werkzeug","ecosystem":"pypi","requirements":"2.2.3","direct":false,"kind":null,"optional":false},{"id":14273273256,"package_name":"wrapt","ecosystem":"pypi","requirements":"1.15.0","direct":false,"kind":null,"optional":false},{"id":14273273257,"package_name":"yarl","ecosystem":"pypi","requirements":"1.9.2","direct":false,"kind":null,"optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-10-23T18:38:38.516Z","updated_at":"2023-10-23T18:38:38.516Z","repository_link":"https://github.com/podaac/hydrocron/blob/develop/pyproject.toml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-11-07T02:50:52.711Z","updated_at":"2023-11-07T02:50:52.711Z","repository_link":"https://github.com/podaac/hydrocron/blob/develop/.github/workflows/build.yml","dependencies":[{"id":14337282101,"package_name":"getsentry/action-github-app-token","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":14337282111,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14337282112,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":14337282113,"package_name":"snyk/actions/python-3.9","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":14337282116,"package_name":"docker/login-action","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":14337282117,"package_name":"docker/metadata-action","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":14337282118,"package_name":"docker/build-push-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"docker/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-11-07T02:50:52.908Z","updated_at":"2023-11-07T02:50:52.908Z","repository_link":"https://github.com/podaac/hydrocron/blob/develop/docker/Dockerfile","dependencies":[{"id":14337282247,"package_name":"public.ecr.aws/lambda/python","ecosystem":"docker","requirements":"3.10","direct":true,"kind":"build","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/deploy-pages.yml","sha":null,"kind":"manifest","created_at":"2023-11-14T01:41:08.526Z","updated_at":"2023-11-14T01:41:08.526Z","repository_link":"https://github.com/podaac/hydrocron/blob/develop/.github/workflows/deploy-pages.yml","dependencies":[{"id":14481445253,"package_name":"getsentry/action-github-app-token","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":14481445594,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14481445595,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":14481445596,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":14481446212,"package_name":"actions/configure-pages","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":14481446213,"package_name":"actions/upload-pages-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":14481446214,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release-created.yml","sha":null,"kind":"manifest","created_at":"2024-02-26T22:44:16.392Z","updated_at":"2024-02-26T22:44:16.392Z","repository_link":"https://github.com/podaac/hydrocron/blob/develop/.github/workflows/release-created.yml","dependencies":[{"id":16467493510,"package_name":"getsentry/action-github-app-token","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":16467493511,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":16467493512,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":16467493513,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]}],"score":6.775366090936391,"created_at":"2024-06-08T00:10:43.708Z","updated_at":"2026-05-29T04:01:53.284Z","avatar_url":"https://github.com/podaac.png","language":"Python","category":"Hydrosphere","sub_category":"Ocean and Hydrology Data Access","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"## Overview\n\nHydrocron is an API that repackages hydrology datasets from the Surface Water and Ocean Topography (SWOT) satellite into formats that make time-series analysis easier, including GeoJSON and CSV. To use Hydrocron, see the official documentation with examples and tutorials here: [https://podaac.github.io/hydrocron/intro.html](https://podaac.github.io/hydrocron/intro.html)\n\nThe following sections of this readme describe how to install and run a development version of Hydrocron locally on your own computer. This is not recommended if you just want to access SWOT data through Hydrocron. To access data, see the documentation linked above.\n\nTo contribute to the development of Hydrocron, see the [contributing guidelines](https://github.com/podaac/hydrocron/blob/develop/CONTRIBUTING.md) and browse the open issues.\n\n***NOTE: the following instructions for installing and running a local version of Hydrocron are out of date, and may result in a broken install. We are aware of the issue and working on restoring local development functionality. Please open a new issue or ask a question on the [PO.DAAC forum](https://podaac.jpl.nasa.gov/node/584) if you need to run a local installation.***\n\n## Requirements\n\nPython 3.12+\n\n## Running Locally with Docker\n\n1. Build or pull the hydrocron docker image\n2. Run docker compose to launch dynamodb local and hydrocron local\n3. Load test data into dynamodb local\n4. Execute sample requests\n\n### 1. Build or Pull Hydrocron Docker\n\nBuild the docker container:\n\n```bash\n\ndocker build . -f docker/Dockerfile -t hydrocron:latest\n```\n\nPull a pre-built image from [https://github.com/podaac/hydrocron/pkgs/container/hydrocron](https://github.com/podaac/hydrocron/pkgs/container/hydrocron):\n\n```bash\ndocker pull ghcr.io/podaac/hydrocron:latest\n```\n\n### 2. Run Docker Compose\n\nLaunch dynamodb local on port 8000 and hyrdrocron on port 9000\n\n```bash\ndocker-compose up\n```\n\n### 3. Load Test Data\n\nIf you have not setup a python environment yet, use poetry to first initialize the virtual environment.\n\n```bash\npoetry install\n```\n\nThis will load the data in `test/data` into the local dynamo db instance.\n\n```bash\npython tests/load_data_local.py\n```\n\n**NOTE** - By default data will be removed when the container is stopped. There are some commented lines in `docker-compose.yml`\nthat can be used to allow the data to persist across container restarts if desired.\n\n### 4. Execute Sample Requests\n\nThe docker container is running a lambda container image. By posting data to port 9000, the lambda handler will be invoked\nand will return results from the loaded test data. For example:\n\n```bash\ncurl --location 'http://localhost:9000/2015-03-31/functions/function/invocations' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"body\":{\n        \"feature\": \"Reach\",\n        \"reach_id\": \"71224100223\",\n        \"start_time\": \"2022-08-04T00:00:00+00:00\",\n        \"end_time\": \"2022-08-23T00:00:00+00:00\",\n        \"output\": \"csv\",\n        \"fields\": \"feature_id,time_str,wse\"\n    }\n}'\n```\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["data-access","end-user-facing"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/194046","html_url":"https://ost.ecosyste.ms/projects/194046"}