README.rst 4.68 KB
Newer Older
jumu's avatar
jumu committed
1
2
3
4
=============================
HyDesign
=============================

5
A tool for design and control of utility scale wind-solar-storage based hybrid power plant.
jumu's avatar
jumu committed
6
7
8


Features
9
========
jumu's avatar
jumu committed
10
11
12

* TODO

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207


Installation
=============

The ``setup.py`` function is configured to performed all basic setting-up operations from the terminal.


1. Install anaconda (or miniconda)

2. Open the anaconda promt

3. Create the environment

    This can be done with the ``setup.py`` function::

    $ python setup.py create_env
    
    or using ``conda env``::

    $ conda env create -f HyDesign_venv_dev.yml

    or using Anaconda's graphical interface: 
    
    - Click in environments
    - Click in import 
    - Select the ``HyDesign_venv_dev.yml`` file

4. Activate environment

    This can be done in a terminal (or windows promt)::

    $ conda activate HyDesign_dev

    Or from the Anaconda interface:

    - Click in environments
    - Click the arrow in ``HyDesign_dev``
    - Open terminal

5. To install modules

    Modules are dependencies that are themselves repositories that can be updated, HyDesign requires for example LandBOSSE::

    $ python setup.py install_modules

5. Install HyDesign::

    $ python setup.py install

6. Run tests::

    $ python setup.py test

7. Generate the documentation::

    $ python setup.py docs

To see the documentation open in Google Chrome the file:

    ``./HyDesign/docs/documentation/html/index.html``

8. Clean the folder from compiled and additional folders::
    
    $ python setup.py clean

9. Make the code look nice, aka. make the code follow pep8::
    
    $ python setup.py pep8

10. To update environment::

    $ python setup.py update_env
 

Usage
=====

To use HyDesign in a project::

	import HyDesign

Contributing
============

Please consider contributing in any of the following ways:


Report Bugs
-----------

Please use the `GitLab issues <https://gitlab-internal.windenergy.dtu.dk/kdas/hydesign/issues>`_ and include:

* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.

Fix Bugs or Implement Features
-------------------------------

If you have fixed a bug or have implemented a feature, please follow these two steps:

1. Run the provided autoformating pep8 to consistently format all the code:

.. code-block:: bash

    $ python setup.py pep8

3. Clean the repository to avoid committing builds or docs.

.. code-block:: bash

    $ python setup.py clean

4. Create a merge request from another branch:
    
.. code-block:: bash

    $ git checkout -b feature_x
    $ git add new_file.py
    $ git push origin feature_x

    Enumerating objects: 13, done.
    Counting objects: 100% (13/13), done.
    Delta compression using up to 4 threads
    Compressing objects: 100% (7/7), done.
    Writing objects: 100% (7/7), 1.24 KiB | 1.24 MiB/s, done.
    Total 7 (delta 6), reused 0 (delta 0)
    remote: 
    remote: To create a merge request for feature_x, visit:
    remote:   https://gitlab-internal.windenergy.dtu.dk/kdas/hydesign/merge_requests/new?merge_request%5Bsource_branch%5D=feature_x
    remote: 
    To gitlab-internal.windenergy.dtu.dk:kdas/hydesign.git
     * [new branch]      feature_x -> feature_x


Write Documentation
-------------------

HyDesign aims at having full documented functionality. HyDesign documentation is automatically generated using `sphinx <http://www.sphinx-doc.org/en/master/>`_. If you implement feature follow the `numpy documentation guides <https://docs.scipy.org/doc/numpy-1.15.0/docs/howto_document.html>`_.

To compile the documentation use the docs function:

.. code-block:: bash

    $ python setup.py docs

Write Tests
------------

HyDesign aims at having full coverage testing of their functionality. HyDesign uses automatic testing `pytest <https://docs.pytest.org/en/latest/>`_.

To run all the tests in HyDesign use the test function:

.. code-block:: 

    $ python setup.py test


Submit Feedback
---------------

Please proposing functionalities or features you will like to have using `GitLab issues <https://gitlab-internal.windenergy.dtu.dk/kdas/hydesign/issues>`_:

* Explain in details the user case.
* Keep the scope as narrow as possible, to make it easier to implement.

Authors
============

- Kaushik Das (kdas at dtu dot dk)
- Juan Pablo Murcia Leon (jumu at dtu dot dk)

History
=======

0.1.0 (2019-11-29)
------------------

* First release on GitLab.


Feedback
========

If you have any suggestions or questions about **HyDesign** feel free to email me
at kdas at dtu dot dk.

If you encounter any errors or problems with **HyDesign**, please let me know!


Code Coverage Report
====================

`html report <./htmlcov/index.html>`_