{"id":11974,"name":"Ecological Forecasting \u0026 Dynamics Course","description":"This is a course on how ecological systems change through time and how to forecast how they will change in the future.","url":"https://github.com/weecology/forecasting-course","last_synced_at":"2026-05-19T11:02:52.660Z","repository":{"id":49114323,"uuid":"283032599","full_name":"weecology/forecasting-course","owner":"weecology","description":"Morgan Ernest \u0026 Ethan White's Ecological Forecasting \u0026 Dynamics Course","archived":false,"fork":false,"pushed_at":"2025-10-23T13:17:30.000Z","size":4048,"stargazers_count":24,"open_issues_count":21,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-27T13:58:39.683Z","etag":null,"topics":["ecology","forecasting","hugo-theme","open-educational-resources"],"latest_commit_sha":null,"homepage":"https://course.naturecast.org/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weecology.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-07-27T22:35:04.000Z","updated_at":"2025-10-23T13:17:35.000Z","dependencies_parsed_at":"2023-09-24T12:10:22.072Z","dependency_job_id":"89982ca3-84d1-4d9a-ada4-c24d283438fc","html_url":"https://github.com/weecology/forecasting-course","commit_stats":{"total_commits":334,"total_committers":7,"mean_commits":"47.714285714285715","dds":0.3323353293413174,"last_synced_commit":"3625734ead5b1f00e171ddc1fcf41e1262904ea3"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/weecology/forecasting-course","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weecology","download_url":"https://codeload.github.com/weecology/forecasting-course/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29007303,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T06:37:10.400Z","status":"ssl_error","status_checked_at":"2026-02-02T06:37:09.383Z","response_time":58,"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":{"login":"weecology","name":"Weecology","uuid":"1156696","kind":"organization","description":null,"email":null,"website":"http://weecology.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1156696?v=4","repositories_count":93,"last_synced_at":"2023-03-11T03:45:49.249Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/weecology","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T21:15:58.355Z","updated_at":"2023-03-11T03:45:49.264Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weecology","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weecology/repositories"},"packages":[],"commits":{"id":1327509,"full_name":"weecology/forecasting-course","default_branch":"main","total_commits":377,"total_committers":7,"total_bot_commits":6,"total_bot_committers":1,"mean_commits":53.857142857142854,"dds":0.31034482758620685,"past_year_total_commits":43,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":21.5,"past_year_dds":0.13953488372093026,"last_synced_at":"2026-01-24T22:21:23.142Z","last_synced_commit":"4c4dc95fae50cf83b567acdd985ee86cda2b0f9a","created_at":"2023-09-11T16:23:01.633Z","updated_at":"2026-01-24T22:20:53.302Z","committers":[{"name":"Ethan White","email":"ethan@weecology.org","login":"ethanwhite","count":260},{"name":"Morgan Ernest","email":"morgan@weecology.org","login":"skmorgane","count":100},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":6},{"name":"Ethan White","email":"ethan@system76-pc.localdomain","login":null,"count":6},{"name":"Hao Ye","email":"lhopitalified@gmail.com","login":"ha0ye","count":3},{"name":"omahs","email":"73983677+omahs","login":"omahs","count":1},{"name":"Ariel Rokem","email":"arokem@gmail.com","login":"arokem","count":1}],"past_year_committers":[{"name":"Ethan White","email":"ethan@weecology.org","login":"ethanwhite","count":37},{"name":"Morgan Ernest","email":"morgan@weecology.org","login":"skmorgane","count":6}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-01-26T03:55:48.553Z","repositories_count":6168019,"commits_count":931568085,"contributors_count":36200771,"owners_count":1139103,"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":"weecology/forecasting-course","html_url":"https://github.com/weecology/forecasting-course","last_synced_at":"2025-12-19T09:06:38.369Z","status":"active","issues_count":24,"pull_requests_count":68,"avg_time_to_close_issue":13224216.0,"avg_time_to_close_pull_request":227441.95454545456,"issues_closed_count":10,"pull_requests_closed_count":66,"pull_request_authors_count":6,"issue_authors_count":4,"avg_comments_per_issue":0.4583333333333333,"avg_comments_per_pull_request":0.14705882352941177,"merged_pull_requests_count":64,"bot_issues_count":0,"bot_pull_requests_count":6,"past_year_issues_count":7,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":413.6,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":5,"past_year_pull_request_authors_count":1,"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":5,"created_at":"2023-09-11T16:23:31.281Z","updated_at":"2025-12-19T09:06:38.370Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/weecology%2Fforecasting-course/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":6},"issue_author_associations_count":{"MEMBER":21,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"MEMBER":60,"CONTRIBUTOR":8},"issue_authors":{"ethanwhite":19,"arokem":3,"skmorgane":1,"ha0ye":1},"pull_request_authors":{"ethanwhite":47,"skmorgane":11,"dependabot[bot]":6,"ha0ye":2,"omahs":1,"arokem":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-01-27T00:00:08.394Z","repositories_count":12933389,"issues_count":35538752,"pull_requests_count":115555370,"authors_count":11132857,"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":{"MEMBER":7},"past_year_pull_request_author_associations_count":{"MEMBER":5},"past_year_issue_authors":{"ethanwhite":7},"past_year_pull_request_authors":{"ethanwhite":5},"maintainers":[{"login":"ethanwhite","count":66,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ethanwhite"},{"login":"skmorgane","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/skmorgane"},{"login":"ha0ye","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ha0ye"}],"active_maintainers":[{"login":"ethanwhite","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ethanwhite"}]},"events":{"total":{"IssuesEvent":9,"WatchEvent":2,"PushEvent":14,"PullRequestEvent":5,"ForkEvent":2,"CreateEvent":4},"last_year":{"IssuesEvent":9,"WatchEvent":2,"PushEvent":14,"PullRequestEvent":5,"ForkEvent":1,"CreateEvent":4}},"keywords":["ecology","forecasting","hugo-theme","open-educational-resources"],"dependencies":[{"ecosystem":"npm","filepath":"package-lock.json","sha":null,"kind":"lockfile","created_at":"2022-09-05T14:01:30.553Z","updated_at":"2022-09-05T14:01:30.553Z","repository_link":"https://github.com/weecology/forecasting-course/blob/main/package-lock.json","dependencies":[{"id":3913242313,"package_name":"@nodelib/fs.scandir","ecosystem":"npm","requirements":"2.1.3","direct":false,"kind":"development","optional":false},{"id":3913242314,"package_name":"@nodelib/fs.stat","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"development","optional":false},{"id":3913242315,"package_name":"@nodelib/fs.walk","ecosystem":"npm","requirements":"1.2.4","direct":false,"kind":"development","optional":false},{"id":3913242316,"package_name":"@types/color-name","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":3913242317,"package_name":"ansi-regex","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":3913242318,"package_name":"ansi-styles","ecosystem":"npm","requirements":"3.2.1","direct":false,"kind":"development","optional":false},{"id":3913242319,"package_name":"anymatch","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":3913242320,"package_name":"argparse","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"development","optional":false},{"id":3913242321,"package_name":"array-union","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":3913242322,"package_name":"at-least-node","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":3913242323,"package_name":"autoprefixer","ecosystem":"npm","requirements":"9.8.0","direct":false,"kind":"development","optional":false},{"id":3913242324,"package_name":"binary-extensions","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242325,"package_name":"braces","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":3913242326,"package_name":"browserslist","ecosystem":"npm","requirements":"4.16.6","direct":false,"kind":"development","optional":false},{"id":3913242327,"package_name":"caniuse-lite","ecosystem":"npm","requirements":"1.0.30001230","direct":false,"kind":"development","optional":false},{"id":3913242328,"package_name":"electron-to-chromium","ecosystem":"npm","requirements":"1.3.739","direct":false,"kind":"development","optional":false},{"id":3913242329,"package_name":"node-releases","ecosystem":"npm","requirements":"1.1.72","direct":false,"kind":"development","optional":false},{"id":3913242330,"package_name":"caller-callsite","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242331,"package_name":"caller-path","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242332,"package_name":"callsites","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242333,"package_name":"camelcase","ecosystem":"npm","requirements":"5.3.1","direct":false,"kind":"development","optional":false},{"id":3913242334,"package_name":"caniuse-lite","ecosystem":"npm","requirements":"1.0.30001064","direct":false,"kind":"development","optional":false},{"id":3913242335,"package_name":"chalk","ecosystem":"npm","requirements":"2.4.2","direct":false,"kind":"development","optional":false},{"id":3913242336,"package_name":"chokidar","ecosystem":"npm","requirements":"3.4.0","direct":false,"kind":"development","optional":false},{"id":3913242337,"package_name":"cliui","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"development","optional":false},{"id":3913242338,"package_name":"color-convert","ecosystem":"npm","requirements":"1.9.3","direct":false,"kind":"development","optional":false},{"id":3913242339,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":3913242340,"package_name":"colorette","ecosystem":"npm","requirements":"1.2.2","direct":false,"kind":"development","optional":false},{"id":3913242341,"package_name":"cosmiconfig","ecosystem":"npm","requirements":"5.2.1","direct":false,"kind":"development","optional":false},{"id":3913242342,"package_name":"decamelize","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":3913242343,"package_name":"dependency-graph","ecosystem":"npm","requirements":"0.9.0","direct":false,"kind":"development","optional":false},{"id":3913242344,"package_name":"dir-glob","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":3913242345,"package_name":"emoji-regex","ecosystem":"npm","requirements":"8.0.0","direct":false,"kind":"development","optional":false},{"id":3913242346,"package_name":"error-ex","ecosystem":"npm","requirements":"1.3.2","direct":false,"kind":"development","optional":false},{"id":3913242347,"package_name":"escalade","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":3913242348,"package_name":"escape-string-regexp","ecosystem":"npm","requirements":"1.0.5","direct":false,"kind":"development","optional":false},{"id":3913242349,"package_name":"esprima","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":3913242350,"package_name":"fast-glob","ecosystem":"npm","requirements":"3.2.2","direct":false,"kind":"development","optional":false},{"id":3913242351,"package_name":"fastq","ecosystem":"npm","requirements":"1.8.0","direct":false,"kind":"development","optional":false},{"id":3913242352,"package_name":"fill-range","ecosystem":"npm","requirements":"7.0.1","direct":false,"kind":"development","optional":false},{"id":3913242353,"package_name":"fs-extra","ecosystem":"npm","requirements":"9.0.0","direct":false,"kind":"development","optional":false},{"id":3913242354,"package_name":"fsevents","ecosystem":"npm","requirements":"2.1.3","direct":false,"kind":"development","optional":false},{"id":3913242355,"package_name":"get-caller-file","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"development","optional":false},{"id":3913242356,"package_name":"get-stdin","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":3913242357,"package_name":"glob-parent","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"development","optional":false},{"id":3913242358,"package_name":"globby","ecosystem":"npm","requirements":"11.0.0","direct":false,"kind":"development","optional":false},{"id":3913242359,"package_name":"graceful-fs","ecosystem":"npm","requirements":"4.2.4","direct":false,"kind":"development","optional":false},{"id":3913242360,"package_name":"has-flag","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":3913242361,"package_name":"ignore","ecosystem":"npm","requirements":"5.1.6","direct":false,"kind":"development","optional":false},{"id":3913242362,"package_name":"import-cwd","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":3913242363,"package_name":"import-fresh","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242364,"package_name":"import-from","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":3913242365,"package_name":"is-arrayish","ecosystem":"npm","requirements":"0.2.1","direct":false,"kind":"development","optional":false},{"id":3913242366,"package_name":"is-binary-path","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":3913242367,"package_name":"is-directory","ecosystem":"npm","requirements":"0.3.1","direct":false,"kind":"development","optional":false},{"id":3913242368,"package_name":"is-extglob","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":3913242369,"package_name":"is-fullwidth-code-point","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":3913242370,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":3913242371,"package_name":"is-number","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":3913242372,"package_name":"js-yaml","ecosystem":"npm","requirements":"3.14.0","direct":false,"kind":"development","optional":false},{"id":3913242373,"package_name":"json-parse-better-errors","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":3913242374,"package_name":"jsonfile","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"development","optional":false},{"id":3913242375,"package_name":"lodash","ecosystem":"npm","requirements":"4.17.21","direct":false,"kind":"development","optional":false},{"id":3913242376,"package_name":"log-symbols","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":3913242377,"package_name":"merge2","ecosystem":"npm","requirements":"1.3.0","direct":false,"kind":"development","optional":false},{"id":3913242378,"package_name":"micromatch","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"development","optional":false},{"id":3913242379,"package_name":"normalize-path","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":3913242380,"package_name":"normalize-range","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":3913242381,"package_name":"num2fraction","ecosystem":"npm","requirements":"1.2.2","direct":false,"kind":"development","optional":false},{"id":3913242382,"package_name":"parse-json","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":3913242383,"package_name":"path-type","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":3913242384,"package_name":"picomatch","ecosystem":"npm","requirements":"2.2.2","direct":false,"kind":"development","optional":false},{"id":3913242385,"package_name":"pify","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":3913242386,"package_name":"postcss","ecosystem":"npm","requirements":"7.0.36","direct":false,"kind":"development","optional":false},{"id":3913242387,"package_name":"supports-color","ecosystem":"npm","requirements":"6.1.0","direct":false,"kind":"development","optional":false},{"id":3913242388,"package_name":"postcss-cli","ecosystem":"npm","requirements":"7.1.1","direct":false,"kind":"development","optional":false},{"id":3913242389,"package_name":"ansi-styles","ecosystem":"npm","requirements":"4.2.1","direct":false,"kind":"development","optional":false},{"id":3913242390,"package_name":"chalk","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":3913242391,"package_name":"color-convert","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":3913242392,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":3913242393,"package_name":"has-flag","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":3913242394,"package_name":"supports-color","ecosystem":"npm","requirements":"7.1.0","direct":false,"kind":"development","optional":false},{"id":3913242395,"package_name":"postcss-load-config","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":3913242396,"package_name":"postcss-reporter","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"development","optional":false},{"id":3913242397,"package_name":"postcss-value-parser","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":3913242398,"package_name":"pretty-hrtime","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":3913242399,"package_name":"read-cache","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":3913242400,"package_name":"readdirp","ecosystem":"npm","requirements":"3.4.0","direct":false,"kind":"development","optional":false},{"id":3913242401,"package_name":"require-directory","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":3913242402,"package_name":"require-main-filename","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242403,"package_name":"resolve-from","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":3913242404,"package_name":"reusify","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":3913242405,"package_name":"run-parallel","ecosystem":"npm","requirements":"1.1.9","direct":false,"kind":"development","optional":false},{"id":3913242406,"package_name":"set-blocking","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242407,"package_name":"slash","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":3913242408,"package_name":"source-map","ecosystem":"npm","requirements":"0.6.1","direct":false,"kind":"development","optional":false},{"id":3913242409,"package_name":"sprintf-js","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":3913242410,"package_name":"string-width","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"development","optional":false},{"id":3913242411,"package_name":"strip-ansi","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"development","optional":false},{"id":3913242412,"package_name":"supports-color","ecosystem":"npm","requirements":"5.5.0","direct":false,"kind":"development","optional":false},{"id":3913242413,"package_name":"to-regex-range","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":3913242414,"package_name":"universalify","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":3913242415,"package_name":"which-module","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":3913242416,"package_name":"wrap-ansi","ecosystem":"npm","requirements":"6.2.0","direct":false,"kind":"development","optional":false},{"id":3913242417,"package_name":"y18n","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":3913242418,"package_name":"yargs","ecosystem":"npm","requirements":"15.3.1","direct":false,"kind":"development","optional":false},{"id":3913242419,"package_name":"find-up","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":3913242420,"package_name":"locate-path","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":3913242421,"package_name":"p-limit","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":3913242422,"package_name":"p-locate","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":3913242423,"package_name":"p-try","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":3913242424,"package_name":"path-exists","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":3913242425,"package_name":"yargs-parser","ecosystem":"npm","requirements":"18.1.3","direct":false,"kind":"development","optional":false}]},{"ecosystem":"go","filepath":"go.mod","sha":null,"kind":"manifest","created_at":"2023-02-02T20:16:06.585Z","updated_at":"2023-02-02T20:16:06.585Z","repository_link":"https://github.com/weecology/forecasting-course/blob/main/go.mod","dependencies":[{"id":7323128999,"package_name":"github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy-plugin-netlify","ecosystem":"go","requirements":"v1.0.0","direct":true,"kind":"runtime","optional":false},{"id":7323129000,"package_name":"github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy-plugin-netlify-cms","ecosystem":"go","requirements":"v1.0.0","direct":true,"kind":"runtime","optional":false},{"id":7323129001,"package_name":"github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy/v5","ecosystem":"go","requirements":"v5.6.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"go","filepath":"go.sum","sha":null,"kind":"lockfile","created_at":"2023-02-02T20:16:07.023Z","updated_at":"2023-02-02T20:16:07.023Z","repository_link":"https://github.com/weecology/forecasting-course/blob/main/go.sum","dependencies":[{"id":7323129061,"package_name":"github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy-plugin-netlify","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":7323129062,"package_name":"github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy-plugin-netlify-cms","ecosystem":"go","requirements":"v1.0.0","direct":false,"kind":"runtime","optional":false},{"id":7323129063,"package_name":"github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy/v5","ecosystem":"go","requirements":"v5.6.0","direct":false,"kind":"runtime","optional":false}]}],"score":5.752572638825633,"created_at":"2023-09-11T14:41:06.160Z","updated_at":"2026-05-19T11:02:52.671Z","avatar_url":"https://github.com/weecology.png","language":"HTML","category":"Sustainable Development","sub_category":"Education","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"[![DOI](https://jose.theoj.org/papers/10.21105/jose.00198/status.svg)](https://doi.org/10.21105/jose.00198)\n[![DOI](https://zenodo.org/badge/283032599.svg)](https://zenodo.org/badge/latestdoi/283032599)\n\n# Ecological Forecasting \u0026 Dynamics Course\n\nThis is a course on how ecological systems change through time and how to forecast how they will change in the future.\nIt combines reading and discussing primary scientific literature with R tutorials on how to work with time-series data and make forecasts in R.\nIt is taught each Fall at the University of Florida by Drs. Morgan Ernest and Ethan White.\nThe full course including lecture notes and R tutorials is openly available so that students can learn these important approaches and skills for themselves and so that other teachers can reuse and remix the content of the course.\n\n## Getting Started\n\n### Using Materials to Learn About Ecological Forecasting\n\nTo use the materials for learning we recommend viewing them through [the rendered website](https://course.naturecast.org). Check out the [Getting Started page](https://course.naturecast.org/getting-started) to find out how to best use the site for independent learning.\n\n### Using Materials to Teach Ecological Forecasting\n\nAll of the code, lesson content, data, and infrastructure for this site is openly licensed so you can use any of it in your own courses.\n\nLesson material can be accessed from [the website](https://course.naturecast.org) or using the raw markdown files in the [`content/lessons` directory](https://github.com/weecology/forecasting-course/tree/main/content/lessons) of this repository. Each lesson is stored in its own named subdirectory. \n\nThere are three general approaches to using the material in teaching:\n\n1. Use the existing website by linking to one or more lessons from your course site and reading the associated instructors material\n2. Copy material from either the website or this GitHub repository and place it on your own site. You can modify this version however you would like (or leave it unchanged), just provide a link back to the original version for attribution.\n3. Create a copy of the full website and (optionally) modify the lessons and/or change which lessons are included. More information on how to do this is provided in the rest of the README.\n\n## Installation\n\nThe course website is written in Hugo using the [Wowchemy Documentation theme](https://github.com/wowchemy/hugo-documentation-theme) and broader [Wowchemy system](https://wowchemy.com/)\n\n### Netlify\n\nThe easiest way to create your own version of the course is the create a deployed course on Netlify via this template. You need a GitHub account to do this.\n\nFollow the Wowchemy instructions for [Creating a site with Hugo and GitHub](https://wowchemy.com/docs/getting-started/hugo-github-quickstart/),\nbut instead of using the \"Choose a template\" button [click this template link](https://app.netlify.com/start/deploy?repository=https://github.com/weecology/forecasting-course).\n\nThis will create a GitHub repository in your GitHub account and live version of the site.\nYou can then edit files in the GitHub repository and they will automatically deploy to the website.\n\nEdit `config/_default/params.yaml` to match your version of course.\nIn particular update the repository url to match the new repository you created.\nThis will ensure that the `Edit this page` links on each page direct you to your version of the material.\n\n### Locally\n\nBuilding a Hugo site locally requires that Go, git, NodeJS, and Hugo all be installed.\nDetailed instructions for all operating systems are available on the [Wowchemy - Edit on your PC with Hugo Extended page](https://wowchemy.com/docs/getting-started/install-hugo-extended/).\n\nOnce you have a local Hugo installation working clone the site using:\n\n```sh\ngit clone https://github.com/weecology/forecasting-course.git\n```\n\nYou can build the site locally in the terminal from the root directory of this repository using:\n\n```sh\nhugo server\n```\n\n## Modifying the Site\n\n* Most content is stored in one folder per lesson in the [`content/lessons` folder](https://github.com/weecology/forecasting-course/tree/main/content/lessons)\n* To add a new lesson make a copy of the [lesson template folder](https://github.com/weecology/forecasting-course/tree/main/content/lessons/LessonTemplate) and modifying the pages in the resulting folder using [markdown](https://www.markdownguide.org/)\n* To modify a lesson edit the markdown files in that lesson folder with the appropriate name. If you followed the instructions on installing on Netlify above, the easiest way to do this is to go to the page you want to edit on the deployed site and click the `Edit this page` link at the bottom.\n* To modify the schedule edit `content/schedule/schedule.md`. In the `lessons` section list the titles of the lessons you want to teach in the order you want to teach them. If you want to include specific dates for each lesson then edit the `dates` section to include those dates in the same order.\n\n## Contributing\n\nContributions are always welcome!\n\n* [Open an issue](https://github.com/weecology/forecasting-course/issues/new) to say Hi or if there’s anything we can do to help!\n* Contributions of new lessons are welcome as Pull Requests or we can work with you to add new material and data to the site\n* If you want to create a modified copy of the course including the website either following the instructions for installing on Netlify above or fork/copy the repository and [connect it to Netlify](https://wowchemy.com/docs/hugo-tutorials/deployment/) to automatically build the site.\n\nFor more information see our [CONTRIBUTING page](https://github.com/weecology/forecasting-course/tree/main/CONTRIBUTING.md)\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.21105/jose.00198"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["oscibio","workshop","open-science","portal","community-ecology","small-mammal-trapping","spreadsheet"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/11974","html_url":"https://ost.ecosyste.ms/projects/11974"}