End-user Software License Agreement regarding PyWAsP
Licensee agrees to be bound by the terms of this Agreement, effective as of the date of Licensor’s distribution by e-mail to the Licensee of the necessary information to install and run the Software Package.
Whereas employees of the Technical University of Denmark, the Department of Wind and Energy Systems, have developed software called PyWAsP for the microscale downscaling of wind climates, which is under continual research development at DTU, as part of its extensive research within the field of wind energy;
Whereas Licensee wants to obtain an end user license to the PyWAsP Software – including a right to sub-license to Affiliated Entities - and Licensor is willing to grant such license;
Now, therefore the Parties have agreed as follows:
1. DEFINITIONS
1.1 The following definitions apply:
“Agreement” shall mean this multi-user software end-user license agreement.
“Documentation” shall mean the help files included within the Software Package
“Software Package” shall mean the PyWAsP software which consists of Python scripts and compiled libraries of the WAsP sub-modules, allowing them to be run via Application Programming Interfaces (APIs) in a flexible user-defined manner independent of the constraints of the WAsP graphical user interface. It should be understood that the Software is not "plug and play" and requires expert users.
“Licensee” shall mean the Company on the behalf of which the registered user accepts the terms of this Agreement.
"Affiliated Entities" shall mean in relation to Licensee, a legal person or entity belonging to the Licensee that Controls, is Controlled by, or is under common Control with Licensee. Control is direct or indirect beneficial ownership of fifty (50) % or more of the share capital, stock or other participating interest carrying the right to vote or to distribution of profits of Licensee, as the case may be.
“Licensor” shall mean Technical University of Denmark, Department of Wind Energy, Anker Engelunds Vej 1, DK-2800 Kgs. Lyngby, Denmark, Business Registration No. 30 06 09 46.
Licensee and Licensor are each hereinafter individually referred to as "Party" and jointly as "Parties".
2. GRANT OF LICENSE
2.1 During the term of this Agreement, Licensee shall have the right to order Software licenses under the license model set forth in Annex 1 at the prices set forth in Annex 2 as well as Services subject to the terms and conditions of this Agreement. Subject to the terms and conditions of this Agreement, Licensor hereby grants to Licensee a non-exclusive, worldwide, non-transferable, non-assignable end-user license to use the Software (in object and, partly in source code form) for the purpose set out in this Section 2, and with a limited right to sub-license its rights to Affiliated Entities as end-users, as detailed under Section 2.6.
2.2 The licensee agrees to send the required information to the licensor’s license server in order for the number of pyWAsP runs to be updated. This information contains the licensee ID and licensee license token. Details of the operation of the licensor’s license server can be found in Annex 1.
2.3 Subject to Licensee’s payment of the licensee fee set out under Section 5, the Software must only be used by Licensee and its Affiliates for the purpose of Licensee’s normal business operations within onshore and offshore wind energy.
2.4 This license includes the right to install the Software on computers owned and used solely by Licensee (cf. however Section 2.5 as regards Cloud Services). Licensee may not allow Licensee’s customers or any other third party to gain access to or use the Software, either in executable form, as source code, or use the Software to provide any services for any third party, e.g. as “software as a service”. Licensee is not allowed to provide, disclose, demonstrate, or otherwise make available the Software to any third party, or provide this Software as any services or training for any third party, or sell, lease, lend, rent, transfer, hire-out, license, sub-license, assign, distribute, publish, commercially exploit, or otherwise deal with the Software, or have any software written or developed that is based on or derived from the Software, or in any other way transfer or assign Software, or any of the rights or obligations granted by Licensor to Licensee under this Agreement, to any third party without the prior (and up-to-date) written approval of Licensor, or except as explicitly set out in this Agreement. Licensor may give such approval at its own discretion.
2.5 Cloud services: Notwithstanding anything set out under Section 2.4, the Parties agree that Licensee is entitled to copy and store the Software on remote third-party cloud computing servers which can be accessed through the internet (“Cloud Service”), and to access the Software via said Cloud Service, for the purpose of providing the Software to Licensee’s employees or in-house consultants or affiliated entities on the terms set out under this Agreement. Licensee’s use of such Cloud Service must be under full observance of the terms and conditions set out in this Agreement, and on the following conditions:
2.5.1 Licensee is under an obligation to ensure that any contractual terms agreed between Licensee and the third-party Cloud Service provider regarding the provision of the Cloud Service for the purpose of this Agreement in all aspects are in accordance with and do not contradict the obligations of Licensee as set out under this Agreement. This includes, but is not limited to, the obligations of confidentiality as set out under Section 10. Further, Licensee may not grant any license to the aforementioned third-party Cloud Service provider to use, reproduce, modify, adapt, publish or distribute any copy of the Software or Documentation, except to the extent strictly necessary to ensure Licensee’s compliance with said contractual terms agreed between Licensee and the third-party Cloud Service provider.
2.5.2 At Licensor’s request, Licensee is required to provide Licensor with information regarding the terms of use of the Cloud Service in order to document that the use of the Cloud Service is in accordance with the terms of this Agreement.
2.6 Licensee has a limited right to grant sub-licenses of its licensed rights to use the Software under this Agreement to any of its Affiliated Entities, as end-users, provided that Licensee and any Affiliated Entity complies with the conditions set out under Sections 2.6.1 – 2.6.6 in respect of any such sub-license:
2.6.1 Licensee shall ensure that any sub-licensee (Affiliated Entity) accepts and complies with rights and obligations of this Agreement including but not limited to its limitations of liability, the grant of the license and obligations regarding confidentiality.
2.6.2 No Affiliated Entity shall be entitled to copy or store the Software on any Cloud Service.
2.6.3 The sub-license shall terminate automatically on the termination of this Agreement for any reason;
2.6.4 The sub-license shall not permit the sub-licensee to further sub-license any of its rights to the Software;
2.6.5 Upon written request from Licensor, Licensee shall provide, within a reasonable time, all necessary documentation to Licensor regarding Affiliated Entities’ use of the Software as sub-licensed under this Agreement;
2.6.6 Licensee shall be directly responsible for any breach of the sub-license by the sub-licensee, as if the breach had been that of Licensee under this Agreement, and Licensee shall indemnify Licensor against any losses, damages, costs, claims or expenses which are awarded against or suffered by Licensor as a result of any such breach by the sub-licensee.
2.7 The license does not include any third-party software which may be needed to run/operate the Software, and it is Licensee’s own responsibility to obtain necessary third-party licenses. Annex 3 gives information about dependencies.
2.8 Except to the extent permitted by applicable mandatory law, and except to the extent necessary for the purpose of exercising Licensee’s rights under this Agreement, Licensee is not allowed to make copies of, reproduce, modify or further develop the Software, or in any other way create derivative works or modified versions of the Software or knowingly permit any third party to do so. Licensee may install, load, display, run and make necessary back-up copies of the Software subject to and in accordance with the provisions of this Agreement. Licensee shall not be entitled to reverse engineer, reverse assemble, disassemble or decompile the Software, or in any other way attempt to derive the source code of the Software. Notwithstanding the above, the licensee is allowed to use the API provided by the python library to create their own applications and workflows. The licensee should be aware that the PyWAsP API may change when new versions are released.
2.9 The license granted according to Section 2.1 is a multiple-user multiple-computer license. The Software may be installed on any number of computers, servers and other hardware under the responsibilities of Licensee. It is agreed and understood that under this Agreement Software will be used only on computers, servers and other hardware under the responsibilities of Licensee, and Software will be used only by employees and/or in-house consultants of Licensee.
2.10 Licensee shall at all times adhere strictly to the terms of this Agreement.
2.11 The Licensee shall inform the Licensor of any infringements of the Software Package, which the Licensee suspects or ascertains. The Licensee shall to a reasonable extent assist the Licensor with technical advice and other non-financial assistance, evidence and documentation concerning infringements.
2.12 Licensee shall not disclose or copy the Software Package/Documentation to any third party, sublicense the Software Package/Documentation to third parties or allow third parties use of or access to the Software Package/Documentation.
2.13 If the user is an in-house consultant, Licensee shall be liable for such in-house consultant’s observance of the obligations laid down in this Agreement.
2.14 Licensee agrees that the Software Package and Documentation is the Licensor’s Confidential Information and shall treat and handle confidential information in accordance with the provisions of Section 9 below.
Licensee shall not be entitled to reverse engineer or de-compile the dynamic compiled libraries part of the Software Package.
2.15 Licensee shall maintain reasonable records indicating the location of the installation or the individual user of the Software Package.
3. SUPPORT AND UPDATES
3.1 Unless otherwise agreed by the Parties in writing, Licensor shall have no obligation to upgrade, update, bug-fix, to provide support or maintenance services, or to provide assistance or consultancy services in relation to the Software.
3.2 Notwithstanding Section 3.1, Licensor will assist Licensee’s appointed technical contact person in the use of the Software by telephone or e-mail (up to a maximum of 10 (ten) working hours per year). Licensor will respond to all support calls and e-mails as soon as reasonably possible. All support e-mails have to be directed to pywasp@dtu.dk.
3.3 In addition to the support mentioned under Section 3.2, if Licensor requires any support and/or maintenance services in respect of the Software, Licensor can provide such support subject to the Parties entering into a separate agreement concerning such work, on Licensor’s standard terms for commercial work, and charged according to the standard DTU rate for commercial work, cf. Section 5.1.
4. TERM OF LICENSE
4.1 The license is granted for an initial license period of 12 months. However, the license will upon expiry of a 12-month license period automatically renew for additional 12-month periods until this Agreement is terminated by either Party. Any such renewed license is subject to the terms and conditions applicable at the time of renewal. The terms and conditions applicable will be made available on DTU Wind and Energy Systems’ website at www.pywasp.dk.
4.2 The initial 12-month license period starts on the Effective Date.
4.3 If the number of runs exceeds the maximum total for the licensee’s chosen tier (Annex 1) the licence will be paused until more runs are purchased via upgrading to a new tier (Annex 1).
4.4 The Licensee may terminate this Agreement with four (4) weeks’ prior written notice (sent to pywasp@dtu.dk) to the end of a 12-month licensing period, cf. Section 4.1.
4.5 The Licensor may terminate this Agreement with 6 months’ notice. If this Agreement is terminated by the Licensor, a proportional share of any prepaid license fee for a period beyond the termination date will be returned by the Licensor to the Licensee.
4.6 The Parties agree that the terms and conditions set forth in Sections 7-13 of this Agreement shall survive the termination of this Agreement indefinitely.
4.7 Upon termination of this Agreement for any reason whatsoever, Licensee shall immediately cease any further use of the Software Package/Documentation and shall destroy all existing copies of the Software Package/Documentation in its possession and confirm this by sending a written declaration to the Licensor.
5. LICENSE FEE
5.1 In consideration for the license granted according to this Agreement, Licensee shall pay to Licensor an annual license fee, according to the licensee’s chosen tier (Annex 2). The amount of the annual license fee applicable at any given time shall be available on www.pywasp.dk. The licensee fee, which is ex. VAT, is paid covering the licensing period of 12 months. The license fee includes the support and updates described in Section 3.
5.2 The first annual license fee shall be paid upon purchase of the license to the Software Package, by the payment method chosen by Licensor. If the payment method is by receipt of invoice, the license fee shall be paid by Licensee upon receipt of an invoice from Licensor.
5.3 Licensor is permitted to issue invoices for subsequent license fees up to 6 weeks prior to the commencement of a new 12-month licensing period, and invoices will be payable to Licensor with 30 days payment notice.
5.4 All invoices to Licensee will be sent via e-mail to the e-mail address of the registered user of Licensee.
6. OBLIGATIONS OF LICENSOR
6.1 The Licensor shall forward license keys to Licensee as an attachment to an e-mail, within fourteen (14) calendar days of receipt of the license fee. Licensor will send such e-mail to the e-mail address of the registered user of Licensee.
7. OWNERSHIP OF INTELLECTUAL PROPERTY RIGHTS
7.1 This Agreement does not imply any transfer of intellectual property rights pertaining to the Software Package/Documentation. Thus, Licensee acknowledges that Licensor holds all copyright and any other rights, including intellectual property rights and ownership rights to the Software Package/Documentation and all copies thereof.
7.2 The Software Package/Documentation is protected by the Danish Copyright Act and international treaties and conventions on the protection of copyright and other relevant legislation on intellectual property rights and copyright. Section 36, subsection 1, no. 1, of the Danish Copyright Act does not apply to this Agreement, and thus Licensee is not allowed to make copies of or make any changes to the Software Package.
7.3 Licensee is not permitted to change or remove any marks or notices regarding copyright, trademarks or the like on Software Package or Documentation or copies thereof.
8. DISCLAIMER OF LIABILITY
8.1 The Software Package and Documentation is provided “AS IS”. Any express or implied warranties, including, but not limited to the implied warranties of merchantability and fitness for a particular purpose are disclaimed. The Software Package and Documentation is provided without guarantee or warranty in any way.
8.2 Except in the event that damages are attributable to intentional acts or gross negligence on the part of Licensor, Licensor cannot be held liable for any loss or damage whatsoever caused by the Software Package, the Documentation or Licensor’s support or which may arise in connection with Licensee’s use of the Software Package/Documentation, including, but not limited to the potential infringement of any third party intellectual property rights by the Software Package or Documentation.
8.3 Except for breach of the duty of confidentiality, the Parties shall in no event be liable to each other for any anticipated or indirect loss or damage, including, but not limited to, loss of profits or future business; any damage to reputation or goodwill; any damage, loss, costs or expenses of an indirect, exemplary, consequential, or economic nature, caused by, arising from, associated with or attributable to the activities or obligations of the Parties under this Agreement.
8.4 The Parties' total liability for damages due to breach shall be limited to EUR 45,000 except in case of gross negligence, intentional acts or omissions, or breach of confidentiality.
8.5 Licensee shall indemnify and hold harmless Licensor from and against any and all liability, including but not limited to demands, claims, actions, fees, costs, and expenses (including attorney and expert witness fees), arising from or connected with Licensee’s use of the Software Package or Documentation except as provided in this Agreement including, but not limited to, any claims from its sub-licensees).
8.6 Licensee is aware and accepts that the Software Package relies on third party software components not included in the Software Package (Dependencies). DTU shall bear no responsibility for such Dependencies including, but not limited to their availability, integrity, safety or useability for Licensees purposes. Compliance with the terms and conditions applicable to such dependencies is in all events Licensee's responsibility. DTU shall in no event be liable for any non-compliance with rules, terms or conditions applicable for any such Dependencies. Annex 3 gives information about dependencies.
9. CONFIDENTIALITY
9.1 The Software Package and Documentation shall be regarded as confidential information. Licensee shall not disclose the Software Package or Documentation, or any other confidential information disclosed by or received from Licensor to any third party without the prior written approval from Licensor.
9.2 The duty of confidentiality pursuant to this Section 9 shall survive the termination of this Agreement. Termination of this Agreement shall not release Licensee from the obligations set out in this Section, regardless of the reason for its termination.
10. MATERIAL BREACH
10.1 If a Party has breached this Agreement, and such breach is considered material according to Danish law, the non-breaching Party may terminate this Agreement. However, before such termination the non-breaching Party shall notify the Party in material breach hereof and request that such material breach is remedied within 30 calendar days. If the breach has not been remedied within the above time period or remedy is impossible, the non-breaching Party may terminate this Agreement without further notice.
11. ASSIGNMENT
11.1 Licensee shall not be entitled to assign or otherwise transfer any of its rights or obligations under this Agreement without the prior written consent of Licensor.
12. SEVERABILITY
12.1 If any section of this Agreement is deemed unenforceable or invalid for any reason, the remaining parts of this Agreement shall not be affected hereby. The Parties shall enter into negotiations for the purpose of substituting such section with a corresponding valid and enforceable wording, if possible.
13. SETTLEMENT OF DISPUTES
13.1 This Agreement shall be governed by the laws of Denmark. This applies whether or not international private law and choice of law rules may lead to the application of another country’s laws.
13.2 Should a dispute arise between the Parties in connection with this Agreement, including its interpretation and use, the Parties shall enter into negotiations in good faith in order to solve the dispute.
13.3 Have the Parties been unsuccessful in solving the dispute within 30 calendar days after initiation of negotiations hereof, the Parties may agree to refer the dispute to mediation at Mediationsinstituttet (www.mediationsinstituttet.dk) according to its rules.
13.4 If the Parties do not agree to mediation within 7 calendar days after expiry of the deadline set forth in Section 13.3, or has no solution to the dispute been reached 30 calendar days after commencement of mediation with Mediationsinstituttet, the dispute shall be settled by the District Court of Lyngby, Denmark, as the court of first instance.
END OF LICENSE TERMS
14. ANNEX 1 DESCRIPTION OF PyWAsP SOFTWARE, AND INSTALL AND LICENCING OPERATION
PyWAsP is a powerful software tool that allows users to easily access the functionality of WAsP, software for predicting wind resources of wind turbines in different terrain. With PyWAsP, users can easily integrate WAsP's powerful wind resource prediction capabilities into their own Python-based applications and projects. This allows users to take advantage of the advanced wind resource prediction capabilities of WAsP without using the Graphical User Interface of WAsP.
To install the software the following data is given by licensor to licensee:
• User ID and password for Conda package.
For the purpose of managing the licensing of PyWAsP the following data is given by licensor to licensee:
• License ID and activation token for the PyWAsP license server
• License server URL.
When PyWAsP is used by the licensee the licensee PyWAsP software will execute communication with the PyWAsP license server to verify the license and tally the number of runs and verify the number of points per run is within the allowed limits for the chosen subscription tier. See ANNEX 2 PRICE STRUCTURE. During this communication, the only information DTU will receive, in addition to the provided License ID and activation token, is the IP address of the system calling the server, for routine logging.
15. ANNEX 2 PRICE STRUCTURE
The PyWAsP pricing is based on a tier system, whereby 1-year subscription price banded according to the extent the licensee applies PyWAsP. The tiers are called Bronze, Silver and Gold. The features of PyWAsP are not altered by the tier level. The only difference is the number of runs and the maximum points per run.
The number of runs is the number of times a call to any of the functions get_site_effects(), get_site_effects_rose(), or FourierSpace.create_fourier_space() is made. There are additional functions in PyWAsP that call the get_site_effects functions, these include generalize(), downscale(), and generalize_and_downscale(), which calls it twice. FourierSpace.create_fourier_space is also called by create_lut(). The number of points in each run is the product of the west_east (NX), south_north (NY) and height (NZ) dimensions of the output_locs variable to each function, i.e. the number of points in each run is NX * NY * NZ.
Examples:
In order to calculate local effects on a grid 100 by 100 at 2 heights requires 100 * 100 * 2 = 20000 points. This would be possible with the Bronze Tier subscription.
In order to calculate local effects on a grid of 150 by 150 at 3 heights requires 150 * 150 * 3 = 67500 points. This would require the Silver Tier Subscription.
In order to calculate local effects on a grid of 300 by 300 at 4 heights requires 300 * 300 * 4 = 360000 points. This would require the Gold Tier Subscription.
An example of a run that goes beyond the Gold Tier Subscription would be a grid with dimension 400 by 400 at 5 levels, requiring 800000 points. In this case the run can be split into several smaller runs, thereby increasing the run count. Alternatively the licensee can approach the licensor to make a specific agreement.
The latest version of the pricing can be found in www.pywasp.dk. The pricing for a 1-year subscription starting in January 2023 is given below:
Tier |
Bronze |
Silver |
Gold |
Runs |
6000 |
42000 |
294000 |
Points per run |
25000 |
125000 |
625000 |
Price |
€1,500.00 |
€6,000.00 |
€24,000.00 |
16. ANNEX 3 PYWAsP DEPENDENCIES
PyWAsP relies on third party software components not included in the Software Package (Dependencies). Clause 2.7 and 8.6 refer to these dependencies. It is important that the licensees understand the implications of these clauses.
This annex gives information about how the user can find out about these dependencies.
Dependencies can be split into 2 types:
Direct dependencies: these are libraries that are explicitly called by the PyWAsP installed Python code.
Indirect dependencies: these are libraries that are called by the direct dependency libraries.
Indirect dependencies can be found by running the command 'conda list'.
An up-to-date list of direct dependencies can be found on docs.wasp.dk/pywasp. The list of direct dependencies as of January 2023 is:
- appdirs
- matplotlib
- netcdf4
- numpy
- pyproj
- python
- pyyaml
- rasterio
- scipy
- tqdm
- windkit
- xarray