{"id":351112,"name":"Pyretechnics","description":"Provides modules that implement the fundamental equations used in most operational wildland fire behavior models like GridFire, ELMFIRE, FlamMap, FARSITE, FSIM, and BehavePlus.","url":"https://github.com/pyregence/pyretechnics","last_synced_at":"2026-05-12T11:30:16.573Z","repository":{"id":260555497,"uuid":"727848614","full_name":"pyregence/pyretechnics","owner":"pyregence","description":"A new, more scriptable fire model","archived":false,"fork":false,"pushed_at":"2026-05-05T14:25:10.000Z","size":18190,"stargazers_count":12,"open_issues_count":4,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-05-07T09:05:29.824Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyregence.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"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-12-05T17:45:13.000Z","updated_at":"2026-05-05T14:28:52.000Z","dependencies_parsed_at":"2024-11-01T01:34:39.078Z","dependency_job_id":"e951f8fd-4b80-49dc-9888-a9cb65cf536e","html_url":"https://github.com/pyregence/pyretechnics","commit_stats":null,"previous_names":["pyregence/pyretechnics"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/pyregence/pyretechnics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyregence","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32891966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"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":"pyregence","name":"pyregence.org","uuid":"61761393","kind":"organization","description":"EPIC: Open Fire Modeling Environment","email":"dssaah@usfca.edu","website":"https://pyregence.org","location":"San Francisco, CA USA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/61761393?v=4","repositories_count":1,"last_synced_at":"2023-06-28T20:27:20.472Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pyregence","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-06-28T20:27:20.481Z","updated_at":"2023-06-28T20:27:20.481Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyregence","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyregence/repositories"},"packages":[{"id":11009992,"name":"pyretechnics","ecosystem":"pypi","description":"A Python library for simulating fire behavior in a variety of ways.","homepage":"https://pyregence.github.io/pyretechnics/","licenses":"epl-2.0","normalized_licenses":["EPL-2.0"],"repository_url":"https://github.com/pyregence/pyretechnics","keywords_array":["fire","wildfire","fire behavior","fire spread"],"namespace":null,"versions_count":13,"first_release_published_at":"2024-11-01T01:16:24.000Z","latest_release_published_at":"2026-03-25T13:51:52.000Z","latest_release_number":"2026.3.25","last_synced_at":"2026-05-09T12:20:08.056Z","created_at":"2024-11-01T01:31:05.447Z","updated_at":"2026-05-09T13:43:00.285Z","registry_url":"https://pypi.org/project/pyretechnics/","install_command":"pip install pyretechnics --index-url https://pypi.org/simple","documentation_url":"https://pyregence.github.io/pyretechnics/","metadata":{"funding":null,"documentation":"https://pyregence.github.io/pyretechnics/","classifiers":["Development Status :: 4 - Beta","Natural Language :: English","Operating System :: OS Independent","Programming Language :: Python :: 3","Topic :: Scientific/Engineering"],"normalized_name":"pyretechnics","project_status":null},"repo_metadata":{"id":260555497,"uuid":"727848614","full_name":"pyregence/pyretechnics","owner":"pyregence","description":"A new, more scriptable fire model","archived":false,"fork":false,"pushed_at":"2026-03-25T13:36:57.000Z","size":18009,"stargazers_count":10,"open_issues_count":4,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-08T06:37:43.757Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyregence.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"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-12-05T17:45:13.000Z","updated_at":"2026-03-25T13:36:54.000Z","dependencies_parsed_at":"2024-11-01T01:34:39.078Z","dependency_job_id":"7e9c9b2f-1fdc-4be6-86ae-3d4f035335c4","html_url":"https://github.com/pyregence/pyretechnics","commit_stats":null,"previous_names":["pyregence/pyretechnics"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/pyregence/pyretechnics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyregence","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32072323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T21:26:33.338Z","status":"ssl_error","status_checked_at":"2026-04-20T21:26:22.081Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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_record":{"login":"pyregence","name":"pyregence.org","uuid":"61761393","kind":"organization","description":"EPIC: Open Fire Modeling Environment","email":"dssaah@usfca.edu","website":"https://pyregence.org","location":"San Francisco, CA USA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/61761393?v=4","repositories_count":1,"last_synced_at":"2023-06-28T20:27:20.472Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pyregence","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-06-28T20:27:20.481Z","updated_at":"2023-06-28T20:27:20.481Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyregence","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyregence/repositories"},"tags":[{"name":"2026.3.25","sha":"3172d4d726d35e3add3b326886f58e154ff11b2a","kind":"commit","published_at":"2026-03-25T13:33:51.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2026.3.25","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2026.3.25","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2026.3.25","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2026.3.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2026.3.25/manifests"},{"name":"2025.6.13","sha":"6f6fab3b7d7d82325c6f80194c53880931649357","kind":"commit","published_at":"2025-06-13T21:25:22.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.6.13","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.6.13","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.6.13","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.6.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.6.13/manifests"},{"name":"2025.6.3","sha":"0f3e80718a671a7d43d4f4d4c56f084b8ec70a23","kind":"commit","published_at":"2025-06-03T15:26:34.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.6.3","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.6.3/manifests"},{"name":"2025.5.15","sha":"50f49edd3509e6b64ba2faef7ae4c274a4db36a1","kind":"commit","published_at":"2025-05-15T22:53:43.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.5.15","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.5.15","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.5.15","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.5.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.5.15/manifests"},{"name":"2025.4.8","sha":"2ec4c9fd8a301a92e67efc929036e3810d062b58","kind":"commit","published_at":"2025-04-08T23:56:06.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.4.8","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.4.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.8/manifests"},{"name":"2025.4.4","sha":"49ed1a3e52615470ce1c716a22c516e055363a05","kind":"commit","published_at":"2025-04-04T21:50:35.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.4.4","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.4.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.4/manifests"},{"name":"2025.4.3","sha":"be8c6599db4c0bce70cdde739dab30f8853ceac2","kind":"commit","published_at":"2025-04-03T16:37:02.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.4.3","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.3/manifests"},{"name":"2025.4.2","sha":"b07ca5966d5266bf6843f188ec9e26477b8b036f","kind":"commit","published_at":"2025-04-02T16:28:10.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.4.2","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.4.2/manifests"},{"name":"2025.3.27","sha":"cf0cf6ce8609a99fe594f31afab4943e3e30b37c","kind":"commit","published_at":"2025-03-27T13:43:29.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.3.27","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.3.27","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.3.27","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.3.27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.3.27/manifests"},{"name":"2025.3.25","sha":"aebc517e00777cdf624ccc3365236b13d936957e","kind":"commit","published_at":"2025-03-25T19:45:40.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.3.25","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.3.25","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.3.25","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.3.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.3.25/manifests"},{"name":"2025.3.8","sha":"dadc22aeddfb25b6677b77c7319e0762fb232a9c","kind":"commit","published_at":"2025-03-08T06:17:11.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.3.8","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.3.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.3.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.3.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.3.8/manifests"},{"name":"2025.2.25","sha":"47e7ded764d9536b04f8176f2c9a8d3e6c34b346","kind":"commit","published_at":"2025-02-26T00:14:15.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.2.25","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.2.25","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.2.25","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.2.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.2.25/manifests"},{"name":"vw-dev-match","sha":"23e84b9042f763ae4e4f8ae07e3a9b2d94cfe3af","kind":"commit","published_at":"2025-01-24T22:01:32.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/vw-dev-match","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/vw-dev-match","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@vw-dev-match","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/vw-dev-match","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/vw-dev-match/manifests"},{"name":"2025.01.02-pre-val-changes","sha":"9660f5676e7d078d0d55924f383ffe450fe3f266","kind":"commit","published_at":"2025-01-02T16:08:55.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2025.01.02-pre-val-changes","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2025.01.02-pre-val-changes","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2025.01.02-pre-val-changes","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.01.02-pre-val-changes","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2025.01.02-pre-val-changes/manifests"},{"name":"val-changes-pre-review","sha":"115b8702f85ee6acfc2dc8bdc38233628267a6bf","kind":"commit","published_at":"2024-12-20T17:36:35.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/val-changes-pre-review","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/val-changes-pre-review","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@val-changes-pre-review","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/val-changes-pre-review","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/val-changes-pre-review/manifests"},{"name":"2024.11.7","sha":"4311af51f3acf659f32fcbcff95269065717ca0b","kind":"commit","published_at":"2024-11-07T15:15:39.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2024.11.7","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2024.11.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2024.11.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2024.11.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2024.11.7/manifests"},{"name":"2024.10.31","sha":"06d40ec76d9aa587bd1f4ee1a25123a462e93479","kind":"commit","published_at":"2024-11-01T00:59:37.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2024.10.31","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2024.10.31","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2024.10.31","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2024.10.31","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2024.10.31/manifests"},{"name":"rothermel-unchanged","sha":"8c11f96a19acf6ee970c1cff8350d8ca6134d2bd","kind":"commit","published_at":"2024-07-24T17:06:51.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/rothermel-unchanged","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/rothermel-unchanged","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@rothermel-unchanged","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/rothermel-unchanged","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/rothermel-unchanged/manifests"},{"name":"2024.5.7-a195933","sha":"a19593314ed5765cb952b783d61a9f3c9d98f485","kind":"commit","published_at":"2024-05-07T14:03:48.000Z","download_url":"https://codeload.github.com/pyregence/pyretechnics/tar.gz/2024.5.7-a195933","html_url":"https://github.com/pyregence/pyretechnics/releases/tag/2024.5.7-a195933","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/pyregence/pyretechnics@2024.5.7-a195933","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2024.5.7-a195933","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/tags/2024.5.7-a195933/manifests"}]},"repo_metadata_updated_at":"2026-05-09T13:43:00.258Z","dependent_packages_count":0,"downloads":517,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":56.904747626834876,"dependent_packages_count":10.110971907754095,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":33.507859767294484},"purl":"pkg:pypi/pyretechnics","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pyretechnics","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pyretechnics","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pyretechnics/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T09:37:17.295Z","issues_count":1,"pull_requests_count":5,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":8814048.0,"issues_closed_count":0,"pull_requests_closed_count":3,"pull_request_authors_count":2,"issue_authors_count":1,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":1,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":866324.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/issues","maintainers":[{"login":"mengsig","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mengsig"}],"active_maintainers":[{"login":"mengsig","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mengsig"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyretechnics/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyretechnics/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyretechnics/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyretechnics/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyretechnics/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyretechnics/codemeta","maintainers":[{"uuid":"sig-gis","login":"sig-gis","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/sig-gis/","role":"Owner","created_at":"2024-11-01T01:33:14.738Z","updated_at":"2024-11-01T01:33:14.738Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/sig-gis/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":860641,"maintainers_count":367606,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","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":11213077,"full_name":"pyregence/pyretechnics","default_branch":"master","total_commits":769,"total_committers":5,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":153.8,"dds":0.08192457737321202,"past_year_total_commits":57,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":57.0,"past_year_dds":0.0,"last_synced_at":"2026-05-09T10:01:26.903Z","last_synced_commit":"880a420ce5baf8ba6bb5bbd62f0ec6439f99ce01","created_at":"2025-09-18T03:57:31.972Z","updated_at":"2026-05-09T10:01:23.100Z","committers":[{"name":"Gary Johnson","email":"lambdatronic@disroot.org","login":null,"count":706},{"name":"Ubuntu","email":"ubuntu@ip-172-31-45-92.eu-north-1.compute.internal","login":null,"count":35},{"name":"Valentin Waeselynck","email":"vwaeselynck@goshawk.sig.sig-gis.com","login":null,"count":23},{"name":"Valentin Waeselynck","email":"val.vvalval@gmail.com","login":"vvvvalvalval","count":4},{"name":"Gary Johnson","email":"gjohnson@sig-gis.com","login":"lambdatronic","count":1}],"past_year_committers":[{"name":"Gary Johnson","email":"lambdatronic@disroot.org","login":null,"count":57}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-11T00:00:23.725Z","repositories_count":6232555,"commits_count":895040808,"contributors_count":34895387,"owners_count":1151502,"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":"pyregence/pyretechnics","html_url":"https://github.com/pyregence/pyretechnics","last_synced_at":"2025-08-31T09:37:17.295Z","status":null,"issues_count":1,"pull_requests_count":5,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":8814048.0,"issues_closed_count":0,"pull_requests_closed_count":3,"pull_request_authors_count":2,"issue_authors_count":1,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":1,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":866324.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"created_at":"2025-08-29T13:35:44.881Z","updated_at":"2025-09-03T05:00:33.147Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyregence%2Fpyretechnics/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":1},"pull_request_author_associations_count":{"NONE":2,"CONTRIBUTOR":2,"COLLABORATOR":1},"issue_authors":{"mengsig":1},"pull_request_authors":{"vvvvalvalval":4,"mengsig":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-21T00:00:07.919Z","repositories_count":14341801,"issues_count":34438576,"pull_requests_count":112730557,"authors_count":11241209,"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":{"NONE":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":1,"CONTRIBUTOR":1},"past_year_issue_authors":{"mengsig":1},"past_year_pull_request_authors":{"mengsig":1,"vvvvalvalval":1},"maintainers":[{"login":"mengsig","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mengsig"}],"active_maintainers":[{"login":"mengsig","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mengsig"}]},"events":{"total":{"DeleteEvent":12,"PullRequestEvent":7,"IssuesEvent":1,"WatchEvent":6,"IssueCommentEvent":5,"PublicEvent":1,"PushEvent":264,"CreateEvent":21},"last_year":{"PullRequestEvent":2,"IssuesEvent":1,"WatchEvent":1,"IssueCommentEvent":4,"PushEvent":29,"CreateEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-11-01T01:34:38.832Z","updated_at":"2024-11-01T01:34:38.832Z","repository_link":"https://github.com/pyregence/pyretechnics/blob/main/pyproject.toml","dependencies":[{"id":20510734487,"package_name":"hatchling","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20510734499,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20510734500,"package_name":"twine","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20510734501,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20510734502,"package_name":"rasterio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20510734503,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2024-11-01T01:34:38.994Z","updated_at":"2024-11-01T01:34:38.994Z","repository_link":"https://github.com/pyregence/pyretechnics/blob/main/requirements.txt","dependencies":[{"id":20510734504,"package_name":"hatchling","ecosystem":"pypi","requirements":"==1.14.0","direct":true,"kind":"runtime","optional":false},{"id":20510734505,"package_name":"pytest","ecosystem":"pypi","requirements":"==8.2.2","direct":true,"kind":"runtime","optional":false},{"id":20510734506,"package_name":"twine","ecosystem":"pypi","requirements":"==5.1.1","direct":true,"kind":"runtime","optional":false},{"id":20510734507,"package_name":"numpy","ecosystem":"pypi","requirements":"==1.23.2","direct":true,"kind":"runtime","optional":false},{"id":20510734508,"package_name":"rasterio","ecosystem":"pypi","requirements":"==1.3.7","direct":true,"kind":"runtime","optional":false},{"id":20510734509,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.8.2","direct":true,"kind":"runtime","optional":false}]}],"score":10.632001876933364,"created_at":"2026-04-08T06:37:45.176Z","updated_at":"2026-05-12T11:30:16.583Z","avatar_url":"https://github.com/pyregence.png","language":"HTML","category":"Biosphere","sub_category":"Wildfire","monthly_downloads":517,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Pyretechnics\n\nA Python library for simulating fire behavior in a variety of ways.\n\nLatest API Documentation: https://pyregence.github.io/pyretechnics/\n\nConda installation instructions: https://www.anaconda.com/docs/tools/working-with-conda/packages/pip-install\n\n## Overview\n\nThe Pyretechnics library provides modules that implement the fundamental equations used in most operational wildland fire behavior models like GridFire, ELMFIRE, FlamMap, FARSITE, FSIM, and BehavePlus. These fall into the following categories:\n\n- pyretechnics.fuel_models: Fuel Model and Moisture Definitions\n- pyretechnics.surface_fire: Surface Fire Equations\n- pyretechnics.crown_fire: Crown Fire Equations\n- pyretechnics.spot_fire: Spot Fire Equations\n- pyretechnics.burn_cells: Burning Cells on a Grid\n- pyretechnics.eulerian_level_set: Fire Spread Algorithm (ELMFIRE)\n\nIn addition, it provides a module for unifying 0D (constant), 1D (temporal), 2D (spatial), and 3D (spatiotemporal) input datasets (of potentially different resolutions) for fuels, topography, wind, and moisture called `pyretechnics.space_time_cube`.\n\nThe user of this library simply loads in their input datasets as Numpy arrays, wraps them in `SpaceTimeCube` objects to make all of their dimensions and resolutions match, and feeds them into the functions for burning cells (`pyretechnics.burn_cells`) or spreading a fire from a point or existing burn scar (`pyretechnics.eulerian_level_set`).\nThe cell-burning functions will return the fire behavior metrics for the burned cell (i.e., fire type, spread rate, spread direction, fireline intensity, flame length) as a Python dictionary. The fire spreading functions return a dictionary containing these same metrics (+ time of arrival) in Numpy arrays, covering the simulation area.\n\nSince the library's main functions take and return Numpy arrays, you are free to create them as needed for your own projects. You can load arrays from numerous geospatial file formats using the Python `rasterio` library. You could grab data from a PostGIS raster using `psycopg2` or load in NetCDF files with the `netCDF4` library. You could also create your own arrays using Numpy or Scipy functions based on your needs. And, of course, you could use these same libraries to apply random noise, value perturbations, or other preprocessing steps on the arrays before initiating fire spread simulations.\n\nSimilary, you can use any Python library or algorithm to post-process the output arrays into aggregate arrays (e.g., annual/conditional burn frequency), visualize them (e.g., with `matplotlib`), and/or write them out as raster files, CSVs, or any other format that you can think of.\n\nNotably, Pyretechnics is written as a Literate Program, which you can read online here: https://pyregence.github.io/pyretechnics\n\nEach module has its own dedicated chapter, with two subsections:\n- For Developers\n- For Users\n\nThe `For Developers` sections are the literate programming implementation of the equations and algorithms included in that module. Read these sections if you want to understand the science and engineering behind that module.\n\nThe `For Users` sections are notebook programming examples of *how to use* the public functions in each module along with their computed outputs. If you just want to use the Pyretechnics library, you can jump to these sections and cut-and-paste the example scripts into your own Python file or Jupyter notebook to get yourself going quickly.\n\n## Design Principles\n\n### Free and Open Source Software\n\nTo promote open review and encourage collaborative development of the\nvarious algorithms implemented in Pyretechnics, this library is\nreleased under a free and open source license. See the\n[License](#license) section in this document for more information.\n\n### Reproducible Research\n\nOne of the most persistently challenging aspects of software\ndevelopment is the fact that the environments in which software is\nbuilt vary from one person's computer to another, including but not\nlimited to different types and versions of operating systems,\napplications, libraries, and services installed. Since most software,\nincluding Pyretechnics, is written so as to rely on external libraries\nand applications at both build and run time, it is necessary to be\nable to easily reproduce the computer environments needed for these\nsteps on new users' machines.\n\nTo do so, Pyretechnics uses [GNU Guix](https://guix.gnu.org) to\nautomatically install software dependencies and create ephemeral\ndevelopment environments without requiring root privileges or\ninterfering with the main package manager of the underlying operating\nsystem.\n\nIf you are running a GNU/Linux distribution on your computer, the\neasiest way to install Guix is to simply follow the \"Binary\nInstallation\" instructions in the manual here:\n\nhttps://guix.gnu.org/manual/en/html_node/Binary-Installation.html\n\nThis will add the `guix` command as an auxiliary package, environment,\nand container manager on your machine.\n\nIf you are not running GNU/Linux, you will need to run Guix System in\na virtual machine. This is a complete GNU/Linux distribution that uses\nGuix as its package manager and Shepherd as its service manager. You\ncan find instructions on getting this installed and running through\nQEMU in the \"Running Guix in a Virtual Machine\" section of the Guix\nmanual here:\n\nhttps://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html\n\n1.  Creating a Reproducible Development Environment\n\n    Once installed, you can tell Guix to download all the necessary\n    dependencies for Pyretechnics development and enter a shell in\n    which they are available by running this command from the root\n    directory of this repository:\n\n    ```sh\n    ./make.sh shell\n    ```\n\n    On its first invocation, this command will download the necessary\n    software packages and install them under `/gnu/store`. When this\n    is done, you will be dropped into a shell environment in which the\n    environment variables have been automatically configured to point\n    to these newly downloaded packages.\n    \n    On subsequent calls to `./make.sh shell`, you should be dropped\n    directly into the shell environment without the need to install\n    any new software unless the [guix.scm](guix.scm) or\n    [channels.scm](channels.scm) files have been updated.\n\n2.  Authorizing Guix to Automatically Read guix.scm\n\n    The first time that you run `./make.sh shell`, you will be\n    prompted to authorize Guix to read the [guix.scm](guix.scm) file\n    in this repository for instructions on what to download and how to\n    set up your ephemeral shell environment. Assuming you have set the\n    `PYRETECHNICS_REPO` shell variable to the directory containing\n    this repository, you can do so with this command:\n\n    ```sh\n    echo $PYRETECHNICS_REPO \u003e\u003e $HOME/.config/guix/shell-authorized-directories\n    ```\n\n3.  Exiting the Reproducible Development Environment\n\n    You can always exit from the shell with this command:\n\n    ```sh\n    exit\n    ```\n\n4.  Running the Test Suite\n\n    You can run the Pyretechnics library's test suite by invoking\n    `pytest` through the Guix shell like so:\n\n    ```sh\n    ./make.sh test\n    ```\n\n5.  Building the Pyretechnics Library with Guix\n\n    To build the Pyretechnics library, including running its tests,\n    constructing a Python wheel, and unpacking it into the Guix\n    /gnu/store directory, simply run this command:\n\n    ```sh\n    ./make.sh build-guix\n    ```\n\n6.  Building the Pyretechnics Library as a Distribution\n\n    To create a *dist* folder containing source (*.tar.gz*) and built (*.whl*)\n    distributions of the Pyretechnics library, you can run this command:\n\n    ```sh\n    ./make.sh build-dist\n    ```\n\n7.  Uploading the Built Distribution to TestPyPI\n\n    To upload the built distribution to\n    [TestPyPI](https://test.pypi.org/), you can use this command:\n\n    ```sh\n    ./make.sh upload-testpypi\n    ```\n\n    You will be prompted for a username and password. For the\n    username, use `__token__`. For the password, use the TestPyPI API\n    token value that you created\n    [here](https://test.pypi.org/manage/account/#api-tokens), including the\n    `pypi-` prefix.\n\n8.  Uploading the Built Distribution to PyPI\n\n    To upload the built distribution to [PyPI](https://pypi.org/), you\n    can use this command:\n\n    ```sh\n    ./make.sh upload-pypi\n    ```\n\n    You will be prompted for a username and password. For the\n    username, use `__token__`. For the password, use the PyPI API\n    token value that you created\n    [here](https://pypi.org/manage/account/#api-tokens), including the\n    `pypi-` prefix.\n\n9.  Installing the Pyretechnics Library with Guix\n\n    You have two options for installing the Pyretechnics library locally:\n\n    First, you can simply install it into a temporary shell\n    environment like so:\n\n    ```sh\n    ./make.sh install-shell\n    ```\n\n    You can leave this shell by typing `exit`.\n\n    Your second option is to install the Pyretechnics library into\n    your Guix profile with this command:\n\n    ```sh\n    ./make.sh install-guix\n    ```\n\n    Next, you will need to invoke the following Bash commands in your\n    shell to make the newly installed library available via\n    `$GUIX_PYTHONPATH`. This environment variable is referenced\n    automatically by the Guix-installed Python package.\n\n    ```sh\n    GUIX_PROFILE=\"$HOME/.guix-profile\"\n    . \"$GUIX_PROFILE/etc/profile\"\n    ```\n\n    It is recommended that you add these two lines to your\n    `$HOME/.bash_profile`, so that they are run automatically each\n    time you login.\n\n10. Using the Pyretechnics Library\n\n    Once you have installed the library into a temporary shell\n    environment, installed it into your Guix profile, or downloaded it\n    from [PyPI](https://pypi.org/), you should be able to launch\n    `python` and load the library as follows:\n\n    ```python\n    import pyretechnics\n    ```\n\n### Literate Programming\n\nPyretechnics has been coded as a [literate\nprogram](https://en.wikipedia.org/wiki/Literate_programming) using\nEmacs' [org-mode](http://orgmode.org/worg/org-contrib/babel/). This\nmeans that its source code is embedded within a larger document, which\nexplains the rationale behind the code using text, equations,\ncitations, tables, and figures. The reason for this approach is to\nmake the science and engineering decisions within Pyretechnics fully\ntransparent to our users, whether or not they feel confident reading\nsource code directly. We believe that this better promotes the goals\nof open science than open source software alone.\n\nWhat this means practically is that the [org](org) directory in this\nsoftware repository contains a single literate program document called\n[org/pyretechnics.org](org/pyretechnics.org), which is used to\nautomatically generate all of the other source code and documentation\nfiles within this repository.\n\n1.  Regenerating HTML Documentation\n\n    The latest HTML documentation can always be found in\n    [docs/index.html](docs/index.html).\n\n    After editing [org/pyretechnics.org](org/pyretechnics.org), you can\n    regenerate the HTML documentation by running this command:\n\n    ```sh\n    ./make.sh weave\n    ```\n\n2.  Regenerating the Source Code Tree\n\n    After editing [org/pyretechnics.org](org/pyretechnics.org), you can\n    regenerate all the source code files in this repository by running\n    this command:\n\n    ```sh\n    ./make.sh tangle\n    ```\n\n3.  Bringing Source Code File Edits Back into the Literate Program\n\n    If you edit a source code file directly, its changes can be\n    automatically incorporated back into the literate program by\n    running this command:\n\n    ```sh\n    ./make.sh detangle\n    ```\n\n4.  Running All the Source Code Blocks in the Literate Program\n\n    If your changes would impact the results of the example code\n    blocks in the literate program, then you can run them again to\n    update their results in\n    [org/pyretechnics.org](org/pyretechnics.org) with this command:\n\n    ```sh\n    ./make.sh org-eval\n    ```\n\n## Contact\n\n### Authors\n\n- Gary W. Johnson, PhD\n  - Email: gjohnson@sig-gis.com\n  - Web: https://sig-gis.com\n\n- Valentin Waeselynck\n  - Email: vwaeselynck@sig-gis.com\n  - Web: https://sig-gis.com\n\n- Chris Lautenberger, PhD, PE\n  - Email: chris@cloudfire.com\n  - Web: https://cloudfire.com\n\n- David Saah, PhD\n  - Email: dsaah@sig-gis.com\n  - Web: https://sig-gis.com\n\n\u003ca id=\"license\"\u003e\u003c/a\u003e\n## License\n\nCopyright © 2023-2026 Spatial Informatics Group, LLC.\n\nPyretechnics is distributed by Spatial Informatics Group, LLC. under\nthe terms of the Eclipse Public License version 2.0 (EPLv2). See\n[LICENSE](LICENSE) in this directory for more information.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/351112","html_url":"https://ost.ecosyste.ms/projects/351112"}