{"id":326043,"name":"Fundamentals of Solar Cells and Photovoltaic Systems Engineering","description":"Learn modeling solar radiation, calculating IV curves for varying irradiance and temperature, modeling electricity generation from PV installations, optimizing PV module orientation and inclination, and conducting time series analysis of solar generation.","url":"https://martavp.github.io/pv-textbook/","last_synced_at":"2026-04-11T21:02:26.790Z","repository":{"id":206078808,"uuid":"405077838","full_name":"martavp/pv-textbook","owner":"martavp","description":"This repository includes relevant code associated with the book \"Fundamentals of Solar Cells and Photovoltaic Systems Engineering\"","archived":false,"fork":false,"pushed_at":"2025-05-15T09:26:55.000Z","size":537804,"stargazers_count":12,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-05T18:02:45.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://martavp.github.io/pv-textbook/intro.html","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/martavp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-09-10T12:45:32.000Z","updated_at":"2026-02-03T19:07:22.000Z","dependencies_parsed_at":"2025-08-26T22:53:03.253Z","dependency_job_id":null,"html_url":"https://github.com/martavp/pv-textbook","commit_stats":{"total_commits":464,"total_committers":13,"mean_commits":35.69230769230769,"dds":0.4655172413793104,"last_synced_commit":"1acf4b15232c701e74f8f56f341aca3c5840136c"},"previous_names":["martavp/pv-textbook"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/martavp/pv-textbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/martavp","download_url":"https://codeload.github.com/martavp/pv-textbook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31695165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T20:18:30.949Z","status":"ssl_error","status_checked_at":"2026-04-11T20:18:29.982Z","response_time":54,"last_error":"SSL_read: 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":"martavp","name":null,"uuid":"30744159","kind":"user","description":null,"email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/30744159?v=4","repositories_count":31,"last_synced_at":"2024-06-11T15:54:58.298Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/martavp","funding_links":[],"total_stars":37,"followers":39,"following":3,"created_at":"2022-11-17T12:17:37.630Z","updated_at":"2024-06-11T15:55:00.056Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/martavp","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/martavp/repositories"},"packages":[],"commits":{"id":1608962,"full_name":"martavp/pv-textbook","default_branch":"main","total_commits":492,"total_committers":10,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":49.2,"dds":0.44308943089430897,"past_year_total_commits":1,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.0,"last_synced_at":"2026-04-09T20:23:09.266Z","last_synced_commit":"d8b13316e56e10802055894e0c09ef885ee20d64","created_at":"2024-06-11T20:46:52.229Z","updated_at":"2026-04-07T19:02:03.850Z","committers":[{"name":"martavp","email":"martavictoriaperez@gmail.com","login":"martavp","count":274},{"name":"i-ramiro","email":"i.ramiro@upm.es","login":"i-ramiro","count":84},{"name":"kikeuma","email":"109112129+kikeuma","login":"kikeuma","count":38},{"name":"rubennj","email":"rubennj","login":"rubennj","count":29},{"name":"paglinares","email":"p.garcia-linares@upm.es","login":"paglinares","count":21},{"name":"cesardd","email":"48208196+cesardd","login":"cesardd","count":18},{"name":"ivangarciavara","email":"igarcia@ies.upm.es","login":"ivangarciavara","count":14},{"name":"Adam-Dvorak1","email":"92300992+Adam-Dvorak1","login":"Adam-Dvorak1","count":7},{"name":"javiermunozcano","email":"javier.munoz@upm.es","login":"javiermunozcano","count":4},{"name":"cristobal-GC","email":"83344529+cristobal-GC","login":"cristobal-GC","count":3}],"past_year_committers":[{"name":"martavp","email":"martavictoriaperez@gmail.com","login":"martavp","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-09T00:00:23.197Z","repositories_count":6212742,"commits_count":905232325,"contributors_count":34959257,"owners_count":1143750,"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":"martavp/pv-textbook","html_url":"https://github.com/martavp/pv-textbook","last_synced_at":"2026-03-20T10:00:49.145Z","status":"error","issues_count":11,"pull_requests_count":10,"avg_time_to_close_issue":9691205.857142856,"avg_time_to_close_pull_request":2910768.3,"issues_closed_count":7,"pull_requests_closed_count":10,"pull_request_authors_count":2,"issue_authors_count":5,"avg_comments_per_issue":1.7272727272727273,"avg_comments_per_pull_request":0.9,"merged_pull_requests_count":10,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":428985.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2024-06-11T20:46:54.290Z","updated_at":"2026-03-20T10:00:49.145Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/martavp%2Fpv-textbook/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":4,"OWNER":1,"NONE":1},"pull_request_author_associations_count":{"OWNER":6,"COLLABORATOR":1},"issue_authors":{"cesardd":2,"rubennj":1,"Adam-Dvorak1":1,"AdamRJensen":1,"martavp":1},"pull_request_authors":{"martavp":6,"Adam-Dvorak1":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-09T00:00:10.509Z","repositories_count":14168959,"issues_count":34547286,"pull_requests_count":112988799,"authors_count":11231467,"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":"martavp","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/martavp"},{"login":"cesardd","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cesardd"},{"login":"Adam-Dvorak1","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Adam-Dvorak1"},{"login":"rubennj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rubennj"}],"active_maintainers":[]},"events":{"total":{"ForkEvent":1,"IssuesEvent":1,"WatchEvent":6,"PushEvent":13},"last_year":{"ForkEvent":1,"WatchEvent":2,"PushEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/deploy.yml","sha":null,"kind":"manifest","created_at":"2023-11-13T09:50:34.561Z","updated_at":"2023-11-13T09:50:34.561Z","repository_link":"https://github.com/martavp/pv-textbook/blob/main/.github/workflows/deploy.yml","dependencies":[{"id":14463522303,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":14463522304,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":14463522305,"package_name":"peaceiris/actions-gh-pages","ecosystem":"actions","requirements":"v3.6.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2025-04-05T11:35:56.824Z","updated_at":"2025-04-05T11:35:56.824Z","repository_link":"https://github.com/martavp/pv-textbook/blob/main/requirements.txt","dependencies":[{"id":22556887896,"package_name":"jupyter-book","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887908,"package_name":"cookiecutter","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887909,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887910,"package_name":"black","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887911,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887912,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=2","direct":true,"kind":"runtime","optional":false},{"id":22556887913,"package_name":"atlite","ecosystem":"pypi","requirements":"\u003e=0.2.11","direct":true,"kind":"runtime","optional":false},{"id":22556887917,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887918,"package_name":"pvlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887919,"package_name":"openpyxl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887920,"package_name":"pvmismatch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":22556887921,"package_name":"geopy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"environment.yaml","sha":null,"kind":"manifest","created_at":"2025-08-26T22:52:57.885Z","updated_at":"2025-08-26T22:52:57.885Z","repository_link":"https://github.com/martavp/pv-textbook/blob/main/environment.yaml","dependencies":[{"id":24853733513,"package_name":"atlite","ecosystem":"conda","requirements":"\u003e=0.2.11","direct":true,"kind":"runtime","optional":false},{"id":24853733579,"package_name":"geopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733703,"package_name":"ipython","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733802,"package_name":"jupyter-book","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733821,"package_name":"jupyterlab","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733840,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733841,"package_name":"matplotlib","ecosystem":"conda","requirements":"\u003e=3.6","direct":true,"kind":"runtime","optional":false},{"id":24853733842,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733843,"package_name":"openpyxl","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733844,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733888,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853733889,"package_name":"pvlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853734019,"package_name":"pvmismatch","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":24853734020,"package_name":"python","ecosystem":"conda","requirements":"\u003e=3.11","direct":true,"kind":"runtime","optional":false},{"id":24853734068,"package_name":"xlrd","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]}],"score":4.941642422609304,"created_at":"2025-10-05T00:37:17.961Z","updated_at":"2026-04-11T21:02:26.791Z","avatar_url":"https://github.com/martavp.png","language":"Jupyter Notebook","category":"Sustainable Development","sub_category":"Education","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":null,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["energy-system","energy-system-model","energy-model","power-systems","pypsa","capacity-expansion-model","capacity-expansion-planning","energy-data","energy-system-analysis","europe"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/326043","html_url":"https://ost.ecosyste.ms/projects/326043"}