{"id":54258,"name":"Intensity duration frequency analysis","description":"Reads the measurement data of the rainfall and calculates the distribution of the rainfall as a function of the return period and the duration for duration steps up to 12 hours.","url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis","last_synced_at":"2026-04-07T00:30:17.648Z","repository":{"id":34889876,"uuid":"142560436","full_name":"MarkusPic/intensity_duration_frequency_analysis","owner":"MarkusPic","description":"Heavy rainfall intensity as a function of duration and return period is defined according to DWA-A 531 (2012). This program reads rainfall measurement data and calculates the distribution of design rainfall as a function of both return period and duration, for durations up to 12 hours (and beyond) and return periods in the range 0.5 a ≤ Tₙ ≤ 100 a.","archived":false,"fork":false,"pushed_at":"2026-02-18T07:16:47.000Z","size":86461,"stargazers_count":51,"open_issues_count":0,"forks_count":16,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-30T21:05:21.083Z","etag":null,"topics":["analysis","design-rainfall","duration","duration-steps","dwa","dwa-a-531","dwd","heavy-rain","idf","intensity-duration-frequency","kostra","measurement-data","precipitation","python","rainfall","return-period"],"latest_commit_sha":null,"homepage":"","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/MarkusPic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","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},"funding":{"buy_me_a_coffee":"MarkusP"}},"created_at":"2018-07-27T09:57:52.000Z","updated_at":"2026-02-18T07:16:51.000Z","dependencies_parsed_at":"2023-02-16T19:45:44.484Z","dependency_job_id":"f0df9855-a800-46f7-a748-ee6eeedd7c9b","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis","commit_stats":{"total_commits":271,"total_committers":5,"mean_commits":54.2,"dds":"0.047970479704797064","last_synced_commit":"c89c767bba0be11da965acfa5d13ca4326d534b0"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/MarkusPic/intensity_duration_frequency_analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkusPic","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/sbom","scorecard":{"id":90305,"data":{"date":"2025-08-11","repo":{"name":"github.com/MarkusPic/intensity_duration_frequency_analysis","commit":"87beb7b4da5fa9e0b43ab24d0ee4cb46befd9c35"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":3,"reason":"4 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/package_release.yaml:16","Warn: no topLevel permission defined: .github/workflows/package_release.yaml:1","Warn: no topLevel permission defined: .github/workflows/sphinx_docs_to_gh_pages.yaml:1","Warn: no topLevel permission defined: .github/workflows/tests.yaml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/package_release.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/package_release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/package_release.yaml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/package_release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/package_release.yaml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/package_release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sphinx_docs_to_gh_pages.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/sphinx_docs_to_gh_pages.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/sphinx_docs_to_gh_pages.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/sphinx_docs_to_gh_pages.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/sphinx_docs_to_gh_pages.yaml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/sphinx_docs_to_gh_pages.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/tests.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/MarkusPic/intensity_duration_frequency_analysis/tests.yaml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/sphinx_docs_to_gh_pages.yaml:34","Warn: pipCommand not pinned by hash: .github/workflows/tests.yaml:21","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2021-142 / GHSA-8q59-q68h-6hv4","Warn: Project is vulnerable to: PYSEC-2018-49","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/package_release.yaml:11"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}}]},"last_synced_at":"2025-08-15T07:47:31.946Z","repository_id":34889876,"created_at":"2025-08-15T07:47:31.946Z","updated_at":"2025-08-15T07:47:31.946Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31381007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T21:40:47.592Z","status":"ssl_error","status_checked_at":"2026-04-03T21:40:05.436Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":"MarkusPic","name":"Markus Pichler","uuid":"11568131","kind":"user","description":"https://gitlab.com/markuspichler","email":"","website":"http://www.sww.tugraz.at/","location":"Graz","twitter":null,"company":"Institute of Urban Water Management and Landscape Water Engineering","icon_url":"https://avatars.githubusercontent.com/u/11568131?u=ecbfa85a4be072957eecdc04641d2442e3bd2f56\u0026v=4","repositories_count":3,"last_synced_at":"2023-03-02T20:55:20.240Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/MarkusPic","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-13T11:17:21.356Z","updated_at":"2023-03-02T20:55:20.268Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkusPic","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkusPic/repositories"},"packages":[{"id":2764150,"name":"idf-analysis","ecosystem":"pypi","description":"heavy rainfall intensity as a function of duration and return period acc. to DWA-A 531 (2012)","homepage":null,"licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis","keywords_array":["duration","analysis","rainfall","dwd","idf","measurement-data","precipitation","kostra","dwa","heavy-rain","intensity-duration-frequency","design-rainfall","duration-steps","return-period","dwa-a-531"],"namespace":null,"versions_count":57,"first_release_published_at":"2019-05-18T21:36:20.000Z","latest_release_published_at":"2026-01-07T15:08:19.000Z","latest_release_number":"0.4.1","last_synced_at":"2026-04-01T22:00:48.776Z","created_at":"2022-04-10T11:17:19.519Z","updated_at":"2026-04-01T22:00:48.777Z","registry_url":"https://pypi.org/project/idf-analysis/","install_command":"pip install idf-analysis --index-url https://pypi.org/simple","documentation_url":"https://markuspic.github.io/intensity_duration_frequency_analysis/","metadata":{"funding":"https://www.buymeacoffee.com/MarkusP","documentation":"https://markuspic.github.io/intensity_duration_frequency_analysis/","classifiers":["Development Status :: 4 - Beta","Intended Audience :: Science/Research","Natural Language :: English","Operating System :: OS Independent","Programming Language :: Python :: 3","Topic :: Scientific/Engineering","Topic :: Scientific/Engineering :: Hydrology"],"normalized_name":"idf-analysis","project_status":null},"repo_metadata":{"id":34889876,"uuid":"142560436","full_name":"MarkusPic/intensity_duration_frequency_analysis","owner":"MarkusPic","description":"heavy rain as a function of the duration and the return period acc. to DWA-A 531 (2012)      This program reads the measurement data of the rainfall     and calculates the distribution of the rainfall as a function of the return period and the duration          for duration steps up to 12 hours (and more) and return period in a range of '0.5a \u003c= T_n \u003c= 100a'","archived":false,"fork":false,"pushed_at":"2024-10-21T09:10:05.000Z","size":76400,"stargazers_count":39,"open_issues_count":0,"forks_count":15,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-29T22:31:38.964Z","etag":null,"topics":["analysis","design-rainfall","duration","duration-steps","dwa","dwa-a-531","dwd","heavy-rain","idf","intensity-duration-frequency","kostra","measurement-data","precipitation","python","rainfall","return-period"],"latest_commit_sha":null,"homepage":null,"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/MarkusPic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-27T09:57:52.000Z","updated_at":"2024-10-21T09:08:36.000Z","dependencies_parsed_at":"2023-02-16T19:45:44.484Z","dependency_job_id":"f0df9855-a800-46f7-a748-ee6eeedd7c9b","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis","commit_stats":{"total_commits":251,"total_committers":5,"mean_commits":50.2,"dds":0.05179282868525892,"last_synced_commit":"fc941a5f86c1a1b39ef84c80d88b72b6270fcdac"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkusPic","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222155734,"owners_count":16940398,"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"},"owner_record":{"login":"MarkusPic","name":"Markus Pichler","uuid":"11568131","kind":"user","description":"https://gitlab.com/markuspichler","email":"","website":"http://www.sww.tugraz.at/","location":"Graz","twitter":null,"company":"Institute of Urban Water Management and Landscape Water Engineering","icon_url":"https://avatars.githubusercontent.com/u/11568131?u=ecbfa85a4be072957eecdc04641d2442e3bd2f56\u0026v=4","repositories_count":3,"last_synced_at":"2023-03-02T20:55:20.240Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/MarkusPic","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-13T11:17:21.356Z","updated_at":"2023-03-02T20:55:20.268Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkusPic","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkusPic/repositories"},"tags":[{"name":"v0.2.6","sha":"fc941a5f86c1a1b39ef84c80d88b72b6270fcdac","kind":"tag","published_at":"2024-05-16T16:18:33.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.2.6","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.6/manifests"},{"name":"v0.2.5","sha":"c309ed53e0aa6cfdf51ee9a19193e1ee086888f4","kind":"tag","published_at":"2024-05-13T09:27:52.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.2.5","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.5/manifests"},{"name":"v0.2.4","sha":"b7d804b017c59cd4ca92a9828f04c028822acf96","kind":"tag","published_at":"2024-01-24T09:56:35.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.2.4","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.4/manifests"},{"name":"v0.2.3","sha":"be01b90896e6c127ade90a25f2e32840b813b837","kind":"tag","published_at":"2023-11-07T15:08:17.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.2.3","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.3/manifests"},{"name":"v0.2.2","sha":"2ab4b232acaef8e0254d85e2a782f1675fdc9546","kind":"tag","published_at":"2023-08-07T16:55:35.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.2.2","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.2/manifests"},{"name":"v0.2.1","sha":"43c45ad643c8e860d1a376faac0485ff682ac816","kind":"tag","published_at":"2023-08-07T13:15:20.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.2.1","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"fcf5ace711e404052e12a937d388f240effb31fe","kind":"tag","published_at":"2023-08-05T22:53:28.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.2.0","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.2.0/manifests"},{"name":"v0.1.16","sha":"84b2494124634d818a64b53825c581b2c5d08813","kind":"tag","published_at":"2023-07-27T21:15:10.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.1.16","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.1.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.16/manifests"},{"name":"v0.1.15","sha":"030994fec09b39d703da2363b289a2efd0281f7d","kind":"tag","published_at":"2023-04-13T14:45:09.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.1.15","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.1.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.15/manifests"},{"name":"v0.1.14","sha":"1cca9c20fd21225a06d9c96efe3b73139c30bee3","kind":"tag","published_at":"2023-03-07T09:51:54.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.1.14","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.1.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.14/manifests"},{"name":"v0.1.13","sha":"42d3f52094eb66710787dca683998f676f83e90c","kind":"tag","published_at":"2022-12-23T20:39:05.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.1.13","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.1.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.13/manifests"},{"name":"v0.1.12","sha":"484861167cfaea56bff4706c71d6e8f796befcf3","kind":"commit","published_at":"2022-12-23T14:01:04.000Z","download_url":"https://codeload.github.com/MarkusPic/intensity_duration_frequency_analysis/tar.gz/v0.1.12","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/releases/tag/v0.1.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/tags/v0.1.12/manifests"}]},"repo_metadata_updated_at":"2024-10-30T02:59:05.601Z","dependent_packages_count":0,"downloads":342,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":11.987795988207104,"dependent_repos_count":21.559058535118407,"dependent_packages_count":10.108852264313626,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":14.551902262546378},"purl":"pkg:pypi/idf-analysis","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/idf-analysis","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/idf-analysis","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/idf-analysis/dependencies","status":null,"funding_links":["https://www.buymeacoffee.com/MarkusP"],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T21:03:11.886Z","issues_count":4,"pull_requests_count":4,"avg_time_to_close_issue":11788356.5,"avg_time_to_close_pull_request":347536.0,"issues_closed_count":4,"pull_requests_closed_count":4,"pull_request_authors_count":4,"issue_authors_count":4,"avg_comments_per_issue":2.25,"avg_comments_per_pull_request":0.75,"merged_pull_requests_count":2,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":3034258.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":5.0,"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,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/issues","maintainers":[{"login":"MarkusPic","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MarkusPic"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/idf-analysis/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/idf-analysis/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/idf-analysis/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/idf-analysis/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/idf-analysis/codemeta","maintainers":[{"uuid":"markusp","login":"markusp","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/markusp/","role":null,"created_at":"2023-02-24T10:50:48.014Z","updated_at":"2023-02-24T10:50:48.014Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/markusp/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":831939,"maintainers_count":355113,"namespaces_count":0,"keywords_count":0,"github":"pypi","metadata":{"funded_packages_count":53036},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-03T06:19:43.792Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":1366514,"full_name":"MarkusPic/intensity_duration_frequency_analysis","default_branch":"main","total_commits":364,"total_committers":4,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":91.0,"dds":0.03296703296703296,"past_year_total_commits":18,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":18.0,"past_year_dds":0.0,"last_synced_at":"2026-04-03T23:00:48.032Z","last_synced_commit":"fb8b25d5ae34063d0cfb3843cdf1898497f851fc","created_at":"2023-09-13T14:31:24.202Z","updated_at":"2026-04-03T23:00:38.369Z","committers":[{"name":"Markus Pichler","email":"markus.pichler@tugraz.at","login":"MarkusPic","count":352},{"name":"github-actions","email":"github-actions@github.com","login":"invalid-email-address","count":6},{"name":"Markus","email":"ma.pichler@gmx.net","login":null,"count":5},{"name":"The Gitter Badger","email":"badger@gitter.im","login":"gitter-badger","count":1}],"past_year_committers":[{"name":"Markus Pichler","email":"maxi.pi+github@mailbox.org","login":"MarkusPic","count":18}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:08.903Z","repositories_count":6211188,"commits_count":923272957,"contributors_count":35716138,"owners_count":1144010,"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":"MarkusPic/intensity_duration_frequency_analysis","html_url":"https://github.com/MarkusPic/intensity_duration_frequency_analysis","last_synced_at":"2026-03-02T07:01:07.639Z","status":"error","issues_count":4,"pull_requests_count":4,"avg_time_to_close_issue":11788356.5,"avg_time_to_close_pull_request":347536.0,"issues_closed_count":4,"pull_requests_closed_count":4,"pull_request_authors_count":4,"issue_authors_count":4,"avg_comments_per_issue":3.0,"avg_comments_per_pull_request":0.75,"merged_pull_requests_count":2,"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-13T14:31:37.939Z","updated_at":"2026-03-02T07:01:07.639Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusPic%2Fintensity_duration_frequency_analysis/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":4},"pull_request_author_associations_count":{"NONE":2,"OWNER":1,"CONTRIBUTOR":1},"issue_authors":{"schoeller":1,"Simone1085":1,"babybearming":1,"philipphoehn":1},"pull_request_authors":{"gitter-badger":1,"AndreGilerson":1,"Riezebos":1,"MarkusPic":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-03T00:00:08.051Z","repositories_count":14069434,"issues_count":34450910,"pull_requests_count":112566279,"authors_count":11220972,"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":[{"login":"MarkusPic","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MarkusPic"}],"active_maintainers":[]},"events":{"total":{"ReleaseEvent":2,"ForkEvent":1,"WatchEvent":8,"IssueCommentEvent":2,"PushEvent":66,"CreateEvent":2},"last_year":{"WatchEvent":3,"IssueCommentEvent":2,"PushEvent":8}},"keywords":["analysis","design-rainfall","duration","duration-steps","dwa","dwa-a-531","dwd","heavy-rain","idf","intensity-duration-frequency","kostra","measurement-data","precipitation","python","rainfall","return-period"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-28T06:50:26.405Z","updated_at":"2022-08-28T06:50:26.405Z","repository_link":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/requirements.txt","dependencies":[{"id":3017500186,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.14","direct":true,"kind":"runtime","optional":false},{"id":3017500187,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3017500188,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3","direct":true,"kind":"runtime","optional":false},{"id":3017500189,"package_name":"tzlocal","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3017500190,"package_name":"pytz","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3017500191,"package_name":"tqdm","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3017500192,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3017500193,"package_name":"PyYAML","ecosystem":"pypi","requirements":"\u003e=5","direct":true,"kind":"runtime","optional":false},{"id":3017500194,"package_name":"pyarrow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/package_release.yaml","sha":null,"kind":"manifest","created_at":"2023-02-16T19:45:43.902Z","updated_at":"2023-02-16T19:45:43.902Z","repository_link":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/.github/workflows/package_release.yaml","dependencies":[{"id":7722347837,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7722347838,"package_name":"relekang/python-semantic-release","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/sphinx_docs_to_gh_pages.yaml","sha":null,"kind":"manifest","created_at":"2023-02-16T19:45:44.019Z","updated_at":"2023-02-16T19:45:44.019Z","repository_link":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/.github/workflows/sphinx_docs_to_gh_pages.yaml","dependencies":[{"id":7722348856,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7722348857,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7722348858,"package_name":"uibcdf/action-sphinx-docs-to-gh-pages","ecosystem":"actions","requirements":"v1.0.0","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-02-16T19:45:44.081Z","updated_at":"2023-02-16T19:45:44.081Z","repository_link":"https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/pyproject.toml","dependencies":[{"id":7722349125,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.14","direct":true,"kind":"runtime","optional":false},{"id":7722349126,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7722349127,"package_name":"tqdm","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7722349128,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3","direct":true,"kind":"runtime","optional":false},{"id":7722349129,"package_name":"tzlocal","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7722349130,"package_name":"pytz","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7722349131,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7722349132,"package_name":"PyYAML","ecosystem":"pypi","requirements":"\u003e=5","direct":true,"kind":"runtime","optional":false},{"id":7722349133,"package_name":"pyarrow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":11.158761651217615,"created_at":"2023-09-13T13:18:42.474Z","updated_at":"2026-04-07T00:30:17.654Z","avatar_url":"https://github.com/MarkusPic.png","language":"Python","category":"Climate Change","sub_category":"Natural Hazard and Storms","monthly_downloads":342,"total_dependent_repos":1,"total_dependent_packages":0,"readme":"© [Institute of Urban Water Management and Landscape Water Engineering](https://www.sww.tugraz.at), [Graz University of Technology](https://www.tugraz.at/home/) and [Markus Pichler](mailto:markus.pichler@tugraz.at)\n\n\n# Intensity duration frequency analysis (based on KOSTRA)\n\n\n[![license](https://img.shields.io/github/license/markuspic/intensity_duration_frequency_analysis.svg?style=flat)](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/idf-analysis)](https://pypi.python.org/pypi/idf-analysis)\n[![DOI](https://zenodo.org/badge/142560436.svg)](https://zenodo.org/doi/10.5281/zenodo.10559991)\n[![Buymeacoffee](https://badgen.net/badge/icon/buymeacoffee?icon=buymeacoffee\u0026label=donate)](https://www.buymeacoffee.com/MarkusP)\n[![JOSS](https://joss.theoj.org/papers/10.21105/joss.07607/status.svg)](https://doi.org/10.21105/joss.07607)\n[![contributing](https://img.shields.io/badge/Contributing-red?style=flat)](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/CONTRIBUTING.md)\n[![docs](https://img.shields.io/badge/Documentation-purple?style=flat\u0026logo=readthedocs)](https://markuspic.github.io/intensity_duration_frequency_analysis/)\n[![code-of-conduct](https://img.shields.io/badge/Code_of_Conduct-grey?style=flat)](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/CODE_OF_CONDUCT.md)\n[![Tests](https://github.com/MarkusPic/intensity_duration_frequency_analysis/actions/workflows/tests.yaml/badge.svg)](https://github.com/MarkusPic/intensity_duration_frequency_analysis/actions/workflows/tests.yaml)\n[![Coverage](https://codecov.io/gh/MarkusPic/intensity_duration_frequency_analysis/branch/main/graph/badge.svg)](https://codecov.io/gh/MarkusPic/intensity_duration_frequency_analysis)\n[![documentation build](https://github.com/MarkusPic/intensity_duration_frequency_analysis/actions/workflows/sphinx_docs_to_gh_pages.yaml/badge.svg)](https://github.com/MarkusPic/intensity_duration_frequency_analysis/actions/workflows/sphinx_docs_to_gh_pages.yaml)\n\n[![PyPI - Downloads](https://img.shields.io/pypi/dd/idf-analysis)](https://pypi.python.org/pypi/idf-analysis)\n[![PyPI - Downloads](https://img.shields.io/pypi/dw/idf-analysis)](https://pypi.python.org/pypi/idf-analysis)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/idf-analysis)](https://pypi.python.org/pypi/idf-analysis)\n\nHeavy rainfall intensity as a function of duration and return period is defined according to [DWA-A 531 (2012)](https://shop.dwa.de/DWA-A-531-Starkregen-in-Abhaengigkeit-von-Wiederkehrzeit-und-Dauer-September-2012-Stand-korrigierte-Fassung-Mai-2017/A-531-Hauptprodukt-12-main).\nThis program reads rainfall measurement data \nand calculates the distribution of design rainfall as a function of both return period and duration, for durations \nup to 12 hours (and beyond) and return periods in the range 0.5 a ≤ Tₙ ≤ 100 a.\n\nThe guideline was also applied in the [KOSTRA-DWD](https://www.dwd.de/DE/leistungen/kostra_dwd_rasterwerte/kostra_dwd_rasterwerte.html) application.\n\nSince version 0.4, the updated guidelines of [DWA-A 531 (2025)](https://shop.dwa.de/DWA-A-531-Starkregen-in-Abhaengigkeit-von-Wiederkehrzeit-und-Dauer-Juni-2025/A-531-Hauptprodukt-25-main) have also been implemented.\n\n----\n\n\u003e Heavy rainfall data are among the most important planning parameters in water management and hydraulic engineering practice. In urban areas, for example, they are required as initial parameters for the design of rainwater drainage systems and in watercourses for the dimensioning of hydraulic structures. The accuracy of the target values of the corresponding calculation methods and models depends crucially on their accuracy. Their overestimation can lead to considerable additional costs in the structural implementation, their underestimation to an unacceptable, excessive residual risk of failure during the operation of water management and hydraulic engineering facilities. Despite the area-wide availability of heavy rainfall data through \"Coordinated Heavy Rainfall Regionalisation Analyses\" (KOSTRA), there is still a need for local station analyses, e.g. to evaluate the now extended data series, to evaluate recent developments or to classify local peculiarities in comparison to the KOSTRA data. However, this is only possible without restrictions if the methodological approach recommended in the worksheet is followed. \n\n**[DWA-A 531 (2012)](http://www.dwa.de/dwa/shop/shop.nsf/Produktanzeige?openform\u0026produktid=P-DWAA-8XMUY2) Translated with www.DeepL.com/Translator**\n\n----\n\n\u003e An intensity-duration-frequency (IDF) curve is a mathematical function that relates the rainfall intensity with its duration and frequency of occurrence. These curves are commonly used in hydrology for flood forecasting and civil engineering for urban drainage design. However, the IDF curves are also analysed in hydrometeorology because of the interest in the time concentration or time-structure of the rainfall.\n\n**[Wikipedia](https://en.wikipedia.org/wiki/Intensity-duration-frequency_curve)**\n\n----\n\nThis package was developed by [Markus Pichler](mailto:markus.pichler@tugraz.at) during his bachelor thesis and finalised it in the course of his employment at the [Institute of Urban Water Management and Landscape Water Engineering](https://www.sww.tugraz.at).\n\n## Documentation\n\nRead the docs [here 📖](https://markuspic.github.io/intensity_duration_frequency_analysis).\n\n## Please cite as\n\nPichler, M. (2025). idf-analysis: Heavy rainfall intensity as a function of duration and return period. Journal of Open Source Software, 10(106), 7607. https://doi.org/10.21105/joss.07607\n\n## Installation\n\nThis package is written in Python3. (use a version \u003e 3.5)\n\n```\npip install idf-analysis\n```\n\nAdd the following tags to the command for special options:\n\n- ```--user```: To install the package only for the local user account (no admin rights needed)\n- ```--upgrade```: To update the package\n\n### Windows\n\nYou have to install python first (i.e. the original python from the [website](https://www.python.org/downloads/)).\n\nTo use the command-line-tool, it is advisable to add the path to your Python binary to the environment variables [^path1].\nThere is also an option during the installation to add python to the PATH automatically. [^path2]\n\n[^path1]: https://geek-university.com/python/add-python-to-the-windows-path/\n[^path2]: https://datatofish.com/add-python-to-windows-path/\n\n\n### Linux/Unix\n\nPython is pre-installed on most operating systems (as you probably knew).\n\n### Dependencies\n\nPackages required for this program will be installed with pip during the installation process and can be seen \nin the [`requirements.txt`](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/requirements.txt) file.\n\n\n```mermaid\nflowchart TD\n    contourpy[\"contourpy\u003cbr\u003e1.3.1\"]\n    cycler[\"cycler\u003cbr\u003e0.12.1\"]\n    fonttools[\"fonttools\u003cbr\u003e4.54.1\"]\n    kiwisolver[\"kiwisolver\u003cbr\u003e1.4.7\"]\n    matplotlib[\"matplotlib\u003cbr\u003e3.9.2\"]\n    mpmath[\"mpmath\u003cbr\u003e1.3.0\"]\n    numpy[\"numpy\u003cbr\u003e2.1.3\"]\n    packaging[\"packaging\u003cbr\u003e24.2\"]\n    pandas[\"pandas\u003cbr\u003e2.2.3\"]\n    pillow[\"pillow\u003cbr\u003e11.0.0\"]\n    pyparsing[\"pyparsing\u003cbr\u003e3.2.0\"]\n    python-dateutil[\"python-dateutil\u003cbr\u003e2.9.0.post0\"]\n    pytz[\"pytz\u003cbr\u003e2024.2\"]\n    pyyaml[\"PyYAML\u003cbr\u003e6.0.2\"]\n    scipy[\"scipy\u003cbr\u003e1.14.1\"]\n    six[\"six\u003cbr\u003e1.16.0\"]\n    sympy[\"sympy\u003cbr\u003e1.13.3\"]\n    tqdm[\"tqdm\u003cbr\u003e4.67.0\"]\n    tzdata[\"tzdata\u003cbr\u003e2024.2\"]\n    contourpy -- \"\u0026ge;1.23\" --\u003e numpy\n    matplotlib -- \"\u0026ge;0.10\" --\u003e cycler\n    matplotlib -- \"\u0026ge;1.0.1\" --\u003e contourpy\n    matplotlib -- \"\u0026ge;1.23\" --\u003e numpy\n    matplotlib -- \"\u0026ge;1.3.1\" --\u003e kiwisolver\n    matplotlib -- \"\u0026ge;2.3.1\" --\u003e pyparsing\n    matplotlib -- \"\u0026ge;2.7\" --\u003e python-dateutil\n    matplotlib -- \"\u0026ge;20.0\" --\u003e packaging\n    matplotlib -- \"\u0026ge;4.22.0\" --\u003e fonttools\n    matplotlib -- \"\u0026ge;8\" --\u003e pillow\n    pandas -- \"\u0026ge;1.26.0\" --\u003e numpy\n    pandas -- \"\u0026ge;2.8.2\" --\u003e python-dateutil\n    pandas -- \"\u0026ge;2020.1\" --\u003e pytz\n    pandas -- \"\u0026ge;2022.7\" --\u003e tzdata\n    python-dateutil -- \"\u0026ge;1.5\" --\u003e six\n    scipy -- \"\u0026ge;1.23.5,\u0026lt;2.3\" --\u003e numpy\n    sympy -- \"\u0026ge;1.1.0,\u0026lt;1.4\" --\u003e mpmath\n```\n\n## Usage\n\nThe documentation of the Python-package can be found [here](https://markuspic.github.io/intensity_duration_frequency_analysis/api.html).\n\nOne basic usage could be:\n\n```python\nimport pandas as pd\nfrom idf_analysis import IntensityDurationFrequencyAnalyse\nfrom idf_analysis.definitions import *\n\n# initialize of the analysis class\nidf = IntensityDurationFrequencyAnalyse(series_kind=SERIES.PARTIAL, worksheet=METHOD.KOSTRA, extended_durations=True)\n\nseries = pd.Series(index=pd.DatetimeIndex(...), data=...)  # this is just a placeholder\n\n# setting the series for the analysis\nidf.set_series(series)\n# auto-save the calculated parameter so save time for a later use, as the parameters doesn't have to be calculated again.\nidf.auto_save_parameters('idf_parameters.yaml')\n```\n\nIf you only want to analyse an already existing IDF-table\n\n```python\nimport pandas as pd\nfrom idf_analysis import IntensityDurationFrequencyAnalyse\n\nidf_table = pd.DataFrame(...)  # this is just a placeholder\n# index: Duration Steps in minutes as int or float\n# columns: Return Periods in years as int or float\n# values: rainfall height in mm\nidf = IntensityDurationFrequencyAnalyse.from_idf_table(idf_table)\n```\n\n## Commandline tool\n\nThe following commands show the usage for Linux/Unix systems.\nTo use these features on Windows you have to add ```python -m``` before each command.\n\nTo start the script use following commands in the terminal/Prompt\n\n```idf_analysis```\n\n\u003e ```idf_analysis -h```\n\n```\nusage: __main__.py [-h] -i INPUT\n                   [-ws {ATV-A_121,KOSTRA,convective_vs_advective}]\n                   [-kind {partial,annual}] [-t {\u003e= 0.5 a and \u003c= 100 a}]\n                   [-d {\u003e= 5 min and \u003c= 8640 min}] [-r {\u003e= 0 L/s*ha}]\n                   [-h_N {\u003e= 0 mm}] [--r_720_1] [--plot] [--export_table]\n\nheavy rain as a function of the duration and the return period acc. to DWA-A\n531 (2012) All files will be saved in the same directory of the input file but\nin a subfolder called like the inputfile + \"_idf_data\". Inside this folder a\nfile called \"idf_parameter.yaml\"-file will be saved and contains interim-\ncalculation-results and will be automatically reloaded on the next call.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -i INPUT, --input INPUT\n                        input file with the rain time-series (csv or parquet)\n  -ws {ATV-A_121,KOSTRA,convective_vs_advective}, --worksheet {ATV-A_121,KOSTRA,convective_vs_advective}\n                        From which worksheet the recommendations for\n                        calculating the parameters should be taken.\n  -kind {partial,annual}, --series_kind {partial,annual}\n                        The kind of series used for the calculation.\n                        (Calculation with partial series is more precise and\n                        recommended.)\n  -t {\u003e= 0.5 a and \u003c= 100 a}, --return_period {\u003e= 0.5 a and \u003c= 100 a}\n                        return period in years (If two of the three variables\n                        (rainfall (height or flow-rate), duration, return\n                        period) are given, the third variable is calculated.)\n  -d {\u003e= 5 min and \u003c= 8640 min}, --duration {\u003e= 5 min and \u003c= 8640 min}\n                        duration in minutes (If two of the three variables\n                        (rainfall (height or flow-rate), duration, return\n                        period) are given, the third variable is calculated.)\n  -r {\u003e= 0 L/(s*ha)}, --flow_rate_of_rainfall {\u003e= 0 L/(s*ha)}\n                        rainfall in Liter/(s * ha) (If two of the three\n                        variables (rainfall (height or flow-rate), duration,\n                        return period) are given, the third variable is\n                        calculated.)\n  -h_N {\u003e= 0 mm}, --height_of_rainfall {\u003e= 0 mm}\n                        rainfall in mm or Liter/m^2 (If two of the three\n                        variables (rainfall (height or flow-rate), duration,\n                        return period) are given, the third variable is\n                        calculated.)\n  --r_720_1             design rainfall with a duration of 720 minutes (=12 h)\n                        and a return period of 1 year\n  --plot                get a plot of the idf relationship\n  --export_table        get a table of the most frequent used values\n```\n\n## Example\n\nIn these examples you can see the usage in a reproducible way. This examples uses open data provided from the Austrian government. You can also find a link to the script used to download this data.\n\n[Example Jupyter notebook for the commandline](examples/example_commandline.ipynb) (or in the [docs](https://markuspic.github.io/intensity_duration_frequency_analysis/examples/example_python_api.html))\n\n[Example Jupyter notebook for the python api](examples/example_python_api.ipynb) (or in the [docs](https://markuspic.github.io/intensity_duration_frequency_analysis/examples/example_python_api.html))\n\n[Example Jupyter notebook for the python api of the DWA 2025 methodology](examples/example_python_api_2025.ipynb) (or in the [docs](https://markuspic.github.io/intensity_duration_frequency_analysis/examples/example_python_api_2025.html))\n\n[Example python skript](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/examples/example_python_api.py)\n\n\n### Example Files\n\n[Interim Results of the idf analysis](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/examples/ehyd_112086_idf_data/idf_parameters.yaml)\n\n### Example Plot using the DWA 2012 methodology\n\n![IDF-Curves-Plot](https://raw.githubusercontent.com/MarkusPic/intensity_duration_frequency_analysis/refs/heads/main/examples/ehyd_112086_idf_data/idf_curves_plot.png)\n\n### Example Plot using the DWA 2025 methodology\n\n![IDF-Curves-Plot](https://raw.githubusercontent.com/MarkusPic/intensity_duration_frequency_analysis/refs/heads/main/examples/ehyd_112086_idf_data_new/idf_curves_plot_color_logx.png)\n\n\n### Example IDF table\n\n[IDF-Table](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/examples/ehyd_112086_idf_data/idf_table_UNIX.csv)\n\n\n| return period in a\u003cbr\u003eduration in min |     1 |      2 |      3 |      5 |     10 |     20 |     25 |     30 |     50 |     75 |    100 |\n|--------------------------------------:|------:|-------:|-------:|-------:|-------:|-------:|-------:|-------:|-------:|-------:|-------:|\n|                                     5 |  9.39 |  10.97 |  11.89 |  13.04 |  14.61 |  16.19 |  16.69 |  17.11 |  18.26 |  19.18 |  19.83 |\n|                                    10 | 15.15 |  17.62 |  19.06 |  20.88 |  23.35 |  25.82 |  26.62 |  27.27 |  29.09 |  30.54 |  31.56 |\n|                                    15 | 19.03 |  22.25 |  24.13 |  26.51 |  29.72 |  32.94 |  33.98 |  34.83 |  37.20 |  39.08 |  40.42 |\n|                                    20 | 21.83 |  25.71 |  27.99 |  30.85 |  34.73 |  38.62 |  39.87 |  40.89 |  43.75 |  46.02 |  47.63 |\n|                                    30 | 25.60 |  30.66 |  33.62 |  37.35 |  42.41 |  47.47 |  49.10 |  50.43 |  54.16 |  57.12 |  59.22 |\n|                                    45 | 28.92 |  35.51 |  39.37 |  44.23 |  50.83 |  57.42 |  59.54 |  61.28 |  66.14 |  69.99 |  72.73 |\n|                                    60 | 30.93 |  38.89 |  43.54 |  49.40 |  57.36 |  65.31 |  67.88 |  69.97 |  75.83 |  80.49 |  83.79 |\n|                                    90 | 33.37 |  41.74 |  46.64 |  52.80 |  61.17 |  69.54 |  72.23 |  74.43 |  80.60 |  85.49 |  88.96 |\n|                                   180 | 38.01 |  47.13 |  52.46 |  59.18 |  68.30 |  77.42 |  80.36 |  82.76 |  89.48 |  94.81 |  98.60 |\n|                                   270 | 41.01 |  50.60 |  56.21 |  63.28 |  72.87 |  82.46 |  85.55 |  88.07 |  95.14 | 100.75 | 104.73 |\n|                                   360 | 43.29 |  53.23 |  59.04 |  66.37 |  76.31 |  86.25 |  89.45 |  92.06 |  99.39 | 105.20 | 109.33 |\n|                                   450 | 45.14 |  55.36 |  61.33 |  68.87 |  79.08 |  89.30 |  92.59 |  95.28 | 102.81 | 108.79 | 113.03 |\n|                                   600 | 47.64 |  58.23 |  64.43 |  72.23 |  82.82 |  93.41 |  96.82 |  99.61 | 107.42 | 113.61 | 118.01 |\n|                                   720 | 49.29 |  60.13 |  66.47 |  74.45 |  85.29 |  96.12 |  99.61 | 102.46 | 110.44 | 116.78 | 121.28 |\n|                                  1080 | 54.41 |  64.97 |  71.15 |  78.94 |  89.50 | 100.06 | 103.46 | 106.24 | 114.02 | 120.20 | 124.58 |\n|                                  1440 | 58.02 |  67.72 |  73.39 |  80.54 |  90.24 |  99.93 | 103.05 | 105.61 | 112.75 | 118.42 | 122.45 |\n|                                  2880 | 66.70 |  77.41 |  83.68 |  91.57 | 102.29 | 113.00 | 116.45 | 119.26 | 127.16 | 133.42 | 137.87 |\n|                                  4320 | 71.93 |  85.72 |  93.78 | 103.95 | 117.73 | 131.52 | 135.96 | 139.58 | 149.75 | 157.81 | 163.53 |\n|                                  5760 | 78.95 |  95.65 | 105.42 | 117.72 | 134.43 | 151.13 | 156.50 | 160.89 | 173.20 | 182.97 | 189.90 |\n|                                  7200 | 83.53 | 101.38 | 111.82 | 124.98 | 142.83 | 160.68 | 166.43 | 171.12 | 184.28 | 194.72 | 202.13 |\n|                                  8640 | 85.38 | 104.95 | 116.40 | 130.82 | 150.38 | 169.95 | 176.25 | 181.40 | 195.82 | 207.27 | 215.39 |\n\n## Contributing and Support\n\nIf you're interested in contributing or need help, check out the [CONTRIBUTING.md](https://github.com/MarkusPic/intensity_duration_frequency_analysis/blob/main/CONTRIBUTING.md) file for guidelines.\n\n\n## Testing\n\nThe code is written in pure python so no compiling is needed.\n\nMost of the code is (or at least will be) automatically tested using the test suite in the [./tests](./tests) folder. To run the tests, use:\n\n```sh\npytest tests\n```\n\n## Background\n\nPseudocode for the parameter calculation.\n\n```\nFor every duration step\n    calculating maximum rainfall intensity for each event for the corresponding duration step\n    \n    if using annual event series:  # only recommeded for measurements longer than 20 year\n        converting max event rainfall intensities per year to a series\n        calculating parameters u and w using the gumbel distribution\n        \n    elif using partial event series:\n        converting the n (approximatly 2.72 x measurement duration in years) biggest event rainfall intensities to a series\n        calculating parameters u and w using the exponential distribution\n    \nSplitting IDF curve formulation in to several duration ranges\nFor each duration range:\n    For each parameter (u and w):\n        balancing the parameter over all duation steps (in the range) using a given formulation (creating parameters a and b)\n        # one-folded-logaritmic | two-folded-logarithmic | hyperbolic\n\nu(D) = f(a_u, b_u, D)\nw(D) = f(a_w, b_w, D)\n\nh(D,Tn) = u(D) + w(D) * ln(Tn)\n```\n","funding_links":["https://www.buymeacoffee.com/MarkusP","https://buymeacoffee.com/MarkusP"],"readme_doi_urls":["https://doi.org/10.21105/joss.07607"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["public-transportation","simulations","observational","barcode","serialize","actor","charts","parallel","feature-engineering","interview"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/54258","html_url":"https://ost.ecosyste.ms/projects/54258"}