{"id":308131,"name":"WSL Julia Workshop 2023","description":"Practical introduction to Julia for modelling and data analysis in biodiversity and earth sciences.","url":"https://github.com/vboussange/wsljuliaworkshop2023","last_synced_at":"2026-04-18T16:00:43.489Z","repository":{"id":187336927,"uuid":"608563963","full_name":"vboussange/WSLJuliaWorkshop2023","owner":"vboussange","description":"Practical introduction to Julia for modelling and data analysis in biodiversity and earth sciences","archived":false,"fork":false,"pushed_at":"2023-03-28T05:12:58.000Z","size":18919,"stargazers_count":27,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-03T13:56:24.916Z","etag":null,"topics":["julia","tutorials","workshop"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vboussange.png","metadata":{"files":{"readme":"readme.md","changelog":null,"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}},"created_at":"2023-03-02T09:27:10.000Z","updated_at":"2025-10-15T09:37:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"ddbc375f-eb3d-4700-b58d-9e2cbffab423","html_url":"https://github.com/vboussange/WSLJuliaWorkshop2023","commit_stats":null,"previous_names":["vboussange/wsljuliaworkshop2023"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vboussange/WSLJuliaWorkshop2023","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2FWSLJuliaWorkshop2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2FWSLJuliaWorkshop2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2FWSLJuliaWorkshop2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2FWSLJuliaWorkshop2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vboussange","download_url":"https://codeload.github.com/vboussange/WSLJuliaWorkshop2023/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2FWSLJuliaWorkshop2023/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31715492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"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":"vboussange","name":null,"uuid":"28376122","kind":"user","description":"Postdoctoral researcher at ETH Zürich and at the Swiss Federal Institute for Forest, Snow \u0026 Landscape (WSL).","email":"","website":"https://vboussange.github.io","location":"Switzerland","twitter":"VBoussange","company":"ETH Zürich","icon_url":"https://avatars.githubusercontent.com/u/28376122?u=268e54180cc24ca3b139549e1f59a6b62f9e201a\u0026v=4","repositories_count":8,"last_synced_at":"2023-03-03T20:03:13.188Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/vboussange","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T05:12:30.783Z","updated_at":"2023-03-03T20:03:13.190Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vboussange","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vboussange/repositories"},"packages":[],"commits":{"id":3953436,"full_name":"vboussange/wsljuliaworkshop2023","default_branch":"master","total_commits":113,"total_committers":4,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":28.25,"dds":0.36283185840707965,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-16T10:02:19.653Z","last_synced_commit":"4ab04cd54feac8f9554519ef207c8290a5b3b794","created_at":"2024-11-03T08:04:58.040Z","updated_at":"2026-04-16T10:02:06.824Z","committers":[{"name":"Victor","email":"bvictor@ethz.ch","login":null,"count":72},{"name":"Mauro Werder","email":"mauro3@runbox.com","login":"mauro3","count":35},{"name":"vboussange","email":"vic.boussange@gmail.com","login":"vboussange","count":5},{"name":"Ludovic Räss","email":"61313342+luraess","login":"luraess","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2Fwsljuliaworkshop2023/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-18T00:00:07.883Z","repositories_count":6214360,"commits_count":900078926,"contributors_count":34919813,"owners_count":1144082,"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":"vboussange/wsljuliaworkshop2023","html_url":"https://github.com/vboussange/wsljuliaworkshop2023","last_synced_at":"2026-03-19T02:00:28.677Z","status":"error","issues_count":1,"pull_requests_count":2,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":30006.0,"issues_closed_count":0,"pull_requests_closed_count":2,"pull_request_authors_count":1,"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":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":"2024-11-03T08:04:58.281Z","updated_at":"2026-03-19T02:00:28.677Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2Fwsljuliaworkshop2023","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/vboussange%2Fwsljuliaworkshop2023/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":2},"issue_authors":{"mauro3":1},"pull_request_authors":{"luraess":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-18T00:00:07.858Z","repositories_count":14309721,"issues_count":34565670,"pull_requests_count":113106506,"authors_count":11237703,"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":"mauro3","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mauro3"}],"active_maintainers":[]},"events":{"total":{"ForkEvent":1,"WatchEvent":1},"last_year":{}},"keywords":["julia","tutorials","workshop"],"dependencies":[],"score":4.718498871295094,"created_at":"2025-01-20T12:59:59.185Z","updated_at":"2026-04-18T16:00:43.490Z","avatar_url":"https://github.com/vboussange.png","language":"Jupyter Notebook","category":"Sustainable Development","sub_category":"Education","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Practical introduction to Julia for modelling and data analysis in biodiversity and earth sciences\n\nThis repository contains materials for the [WSL Julia Workshop 2023](https://www.wsl.ch/de/ueber-die-wsl/die-wsl-im-dialog/details/practical-introduction-to-julia-for-modelling-and-data-analysis-in-biodiversity-and-earth-sciences.html) **Practical introduction to Julia for modelling and data analysis in biodiversity and earth sciences**, held on the 24th and 27th of March 2023 at WSL Birmensdorf. It should contain useful resources and guidelines to curious ecologists and glaciologists who want to get an overview or get started with the Julia language. It also contains ideas of [research projects](#projects) related to biodiversity and earth sciences, to be conducted with Julia.\n\n# Content\n\nThe repository is organized by days and sessions. Please refer to the [Program](#program) section to navigate within the repo.\n\n# Requirements\n\nTo follow the workshop materials, you need to have the following software installed on your computer:\n- Julia\n- Jupyter\n\nAdditionally, we recommend to use\n- VSCode\n\nas an IDE, together with the Julia extension.\n\nPlease refer to the [installation instructions](Misc/installation_instructions.md) for further information on how to proceed.\n\n\n# Usage\n\nTo use the workshop materials, clone this repository to your local machine:\n\n```sh\ngit clone https://github.com/vboussange/WSLJuliaWorkshop2023.git\n```\n\n# Program\nHow you should read this program\n- 🎤 : Talk\n- 💻: Hands-on exercises\n- 🎤💻: Interactive session\n## Day 1: Introduction to the Language, hands on exercises\n\n**8:50** Arrival at Englersaal, WSL (ask at the reception if you don't\nknow where that is)\n\n### Morning session 1\n**9:00 - 10:30**\n\n- 🎤 [Greetings to the Workshop](Day1/11_welcome.ipynb) (@Mauro and @Victor) **9:00-9:10**\n- 🎤 [Overview of the Julia programming language](Day1/12_julia-overview/12_julia-overview.pdf) (@Mauro) **9:10-9:30**\n- 🎤💻 [**Practical**: your first lines of Julia code](Day1/13_julia-practical-on-jupyter/output/13_julia-practical-on-jupyter.ipynb) (@Mauro) **9:30-10:30**\n  - Basic syntax and data types\n  - Control flow and conditional statements\n\n### Coffee break\n**10:30 - 11:00**\n\n### Morning session 2\n**11-12:30**\n- 🎤 [Why I like Julia](Day1/21_why-i-like-julia-VB/21_why-i-like-julia-VB.ipynb) (@Victor) **11:00-11:15**\n\n- Package and project management (@Victor) **11:15-11:45**\n  - 💻🎤 [Introduction to `Pkg.jl`](Day1/22_pkg_and_project_management/Pkg.ipynb)\n  - 💻[Exercise: activate an environment and run the associated script](Day1/22_pkg_and_project_management/exercise1.md)\n  - 💻[Exercise: Develop your first Julia project - Part 1](Day1/22_pkg_and_project_management/exercise2.md)\n\n- 💻🎤 [VS code workflow and remote development](Day1/23_vscode_remote_dev/vs_code_workflow.ipynb) (@Victor) **11:45-12:30**\n  - VSCode editor\n  - Remote development\n\n### Lunch\n**12:30 - 13:30**\n\n### Afternoon session 3\n**13:30 - 15:00**\n\n- 🎤 [Overview of the ecosystem](Day1/31_julia_ecosystem/31_julia_ecosystem.ipynb) (@Mauro) **13:30-13:45**\n\n- 🎤 💻 [`DataFrames`, broadcasting, loading CSV](Day1/32_dataframe_tuto/32_dataframe_tuto.ipynb) (@Victor) **13:45-14:05**\n\n\n- 💻 [Hands-on exercises](Day1/32_dataframe_tuto/33_dataframe_exercises.md) **14:05-14:30**\n\n\n- 🎤 💻 [Plotting and visualisation](Day1/33_plotting/33_plotting.ipynb) (@Mauro) **14:30-14:45**\n\n- 💻 [Hands-on exercises continued](Day1/32_dataframe_tuto/33_dataframe_exercises.md) **14:45-15:00**\n\n### Coffee break\n**15:00 - 15:30**\n\n### Afternoon session 4\n- 🎤 [Why I like Julia](https://github.com/luraess/WSLJulia2023) (@Ludovic) **15:30-15:40**\n- 🎤 💻 [Saving and loading data in Julia]() (@Mauro) **-15:40-15:55**\n- 💻 [Coding the game of life](Day1/42_game_of_life/42_game_of_life.md) **15:55-17:00**\n\n\n### 🍻 Apéro\n**17:00-🌙**\n\n## Day 2: Project-oriented day\n\nThe goal of this second-day workshop is to provide participants with an opportunity to deepen their knowledge of the Julia programming language through biodiversity and glaciology-related projects.\n\n### Morning session 1\n\n- 🎤 💻 [Geospatial data handling](Day2/11_geodata/11_geodata.ipynb) (@Mauro) **9:00-9:30**\n  - [Hands-on exercises](Day2/11_geodata/11_geodata-ex.ipynb)\n\n- 🎤 💻 [Performant Julia code and profiling](Day2/12_performance/12_performance.md) (@Mauro) **9:30-10:00**\n  - Introduction\n  - Hands-on exercises\n\n\n- 🎤 💻 [Parallel computing](Day2/13_parallel_computing/parallel_computing.ipynb) (@Victor) **10:00-10:30**\n  - Multithreading\n  - Multiprocessing\n  - [Exercise: Parallelizing the Game of Life](Day2/13_parallel_computing/parallel_computing_exercise_with_sol.ipynb)\n\n### Coffee break\n**10:30-11:00**\n\n### Morning session 2\n- 💻🎤[Julia projects managements](Day1/22_pkg_and_project_management/practical_guideline.ipynb) **11:00-11:30**\n  - 💻[Exercise: Develop your first Julia project - Part 2](Day1/22_pkg_and_project_management/exercise2.md) \n\n- 🎤 [Interface with Python, R, MATLAB](Day2/21_interface/interface.ipynb) (@Victor) **11:30-12:00**\n\n- 🎤 Track Introductions (@Victor and @Mauro) **12:00-12:30**\n  - [Biodiversity track](#biodiversity-track)\n  - [Glaciology track](#glaciology-track)\n\n\n### Lunch\n\n### Afternoon session 3\n- 💻 Project session **13:30-15:00**\n\n### Coffee break \n**15:00-15:30**\n\n### Afternoon session 4\n\n- 🎤 Why I like Julia (@Ivan) **15:30-15:40**\n- 💻 Project session **15:40-16:30**\n\n- 🎤 Wrap-up and feedback **16:30 - 17:00**\n\n\n# Projects\n## Biodiversity track\n\n- [Deep learning-based Species Distribution Model](Projects/Victor/ml-based-SDM/DL-based-SDM_project.md)\n- [Constructing a benchmark of PiecewiseInference.jl against ApproxBayes.jl and Turing.jl](Projects/Victor/PiecewiseInference-benchmark/PiecewiseInference-benchmark.md)\n- [Time series modelling](Projects/Victor/time-series-modelling/time-series-modelling.md)\n\n## Glaciology track\n\n- [Subglacial water routing](Projects/Mauro/Flow-routing/flow-routing.md)\n\n- [Ice thickness estimation](Projects/Mauro/IceThickness/u2-julia.ipynb)\n\n# Additional resources\n- [Julia official list of tutorials](https://julialang.org/learning/tutorials/)\n- [Introduction to Julia, JuliaCon 2022](https://github.com/storopoli/Julia-Workshop), and the [YouTube video](https://www.youtube.com/watch?v=uiQpwMQZBTA) (3 hours)\n- [Introductory Julia tutorial by Martin D. Maas](https://www.matecdev.com/posts/julia-tutorial-science-engineering.html)\n- [Julia Workshop for Data Science](https://crsl4.github.io/julia-workshop/session1-get-started.html)\n# Acknowledgments\n\nThe workshop materials are based on numerous resources, which have been indicated in the different sections.\n\nWe thank [WSL Biodiversity center](https://www.wsl.ch/en/about-wsl/organisation/programmes-and-initiatives/wsl-biodiversity-center.html), the [Ecosystem and Landscape Evolution](https://ele.ethz.ch) and [The Laboratory of Hydraulics, Hydrology and Glaciology](https://vaw.ethz.ch/en/) for supporting and funding this workshop.\n\n# Contact\n\nIf you have any questions or feedback, feel free to contact the main authors of this workshop, @vboussange and @mauro3. You can also create a pull request.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/308131","html_url":"https://ost.ecosyste.ms/projects/308131"}