{"id":20612624,"url":"https://github.com/pypsa/efuels-server","last_synced_at":"2025-04-15T07:08:04.012Z","repository":{"id":146649480,"uuid":"573520320","full_name":"PyPSA/efuels-server","owner":"PyPSA","description":"Online optimisation of efuels delivery","archived":false,"fork":false,"pushed_at":"2023-08-17T15:01:47.000Z","size":452,"stargazers_count":5,"open_issues_count":7,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T07:07:58.019Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PyPSA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-12-02T16:56:06.000Z","updated_at":"2024-03-02T02:40:10.000Z","dependencies_parsed_at":"2023-09-25T16:37:56.645Z","dependency_job_id":null,"html_url":"https://github.com/PyPSA/efuels-server","commit_stats":{"total_commits":65,"total_committers":1,"mean_commits":65.0,"dds":0.0,"last_synced_commit":"f83ca8ecda3fbe30e8ea0df30e96f1f7e7c5f965"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyPSA%2Fefuels-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyPSA%2Fefuels-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyPSA%2Fefuels-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyPSA%2Fefuels-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PyPSA","download_url":"https://codeload.github.com/PyPSA/efuels-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249023723,"owners_count":21199960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T11:05:56.731Z","updated_at":"2025-04-15T07:08:03.973Z","avatar_url":"https://github.com/PyPSA.png","language":"Python","readme":"\n# model.energy/products: online optimisation of hydrogen-based e-product delivery\n\nThis is the code for the online optimisation of hydrogen-based e-product\ndelivery from wind and solar.\n\nIt uses only free software and open data, including [Python for Power\nSystem Analysis (PyPSA)](https://github.com/PyPSA/PyPSA) for the\noptimisation framework, the European Centre for Medium-Range Weather\nForecasts (ECMWF) [ERA5\ndataset](https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-single-levels)\nfor the open weather data, the [atlite\nlibrary](https://github.com/FRESNA/atlite) for converting weather data\nto generation profiles, [Clp](https://projects.coin-or.org/Clp) for\nthe solver, [D3.js](https://d3js.org/) for graphics,\n[Mapbox](https://www.mapbox.com/), [Leaflet](http://leafletjs.com/)\nand [Natural Earth](https://www.naturalearthdata.com/) for maps, and\nfree software for the server infrastructure (GNU/Linux, nginx, Flask,\ngunicorn, Redis).\n\nYou can find a live version at:\n\n\u003chttps://model.energy/products/\u003e\n\nThe tool is a simplified version of the model behind the research\npaper [Import options for chemical energy carriers from renewable\nsources to Germany](https://doi.org/10.1371/journal.pone.0281380) by\nJohannes Hampp, Michael Düren and Tom Brown in PLOS ONE, 2023.\n\n\n\n## Requirements\n\n### Software\n\nThis software has only been tested on the Ubuntu distribution of GNU/Linux.\n\nUbuntu packages:\n\n`sudo apt install coinor-clp coinor-cbc redis-server`\n\nTo install, we recommend using [miniconda](https://docs.conda.io/en/latest/miniconda.html) in combination with [mamba](https://github.com/QuantStack/mamba).\n\n\tconda install -c conda-forge mamba\n\tmamba env create -f environment.yaml\n\nFor (optional) server deployment:\n\n\tsudo apt install nginx\n\tmamba install gunicorn\n\n\n### Data\n\nThis uses the same data as \u003chttps://model.energy/\u003e, see the [WHOBS-server repository](https://github.com/PyPSA/whobs-server).\n\n\n### Regenerate default assumptions\n\nThe basic assumptions in `defaults-initial.csv` are added to by the script `generate_defaults.py`, which adds assumptions from the [trace repository](https://github.com/euronion/trace) and [technology-data repository](https://github.com/PyPSA/technology-data) (which is in turn largely based on the [Danish Energy Agency's Technology Data](https://ens.dk/en/our-services/projections-and-models/technology-data)). The CSV `defaults.csv` is an output of this script and should not be modified. All modifications should be make in `defaults-initial.csv`.\n\nTo run the script do:\n\n`python generate_defaults.py`\n\n\n## Run server locally on your own computer\n\nTo run locally you need to start the Python Flask server in one terminal, and redis in another:\n\nStart the Flask server in one terminal with:\n\n`python server.py`\n\nThis will serve to local address:\n\nhttp://127.0.0.1:5002/\n\nIn the second terminal start Redis:\n\n`rq worker efuels`\n\nwhere `efuels` is the name of the queue. No jobs will be solved until\nthis is run. You can run multiple workers to process jobs in parallel.\n\n\n## Deploy on a publicly-accessible server\n\nUse nginx, gunicorn for the Python server, rq, and manage with supervisor.\n\n\n## License\n\nCopyright 2022-3 Tom Brown \u003chttps://nworbmot.org/\u003e\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as\npublished by the Free Software Foundation; either [version 3 of the\nLicense](LICENSE.txt), or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the [GNU\nAffero General Public License](LICENSE.txt) for more details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpypsa%2Fefuels-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpypsa%2Fefuels-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpypsa%2Fefuels-server/lists"}