diff --git a/doc/modules.rst b/doc/modules.rst index caee496c..00ddd794 100644 --- a/doc/modules.rst +++ b/doc/modules.rst @@ -67,8 +67,8 @@ power curve or power coefficient curve needed by the :py:class:`~.wind_turbine.W :toctree: temp/ wind_turbine.get_turbine_data_from_file - wind_turbine.load_turbine_data_from_oedb - wind_turbine.get_turbine_types + data.store_turbine_data_from_oedb + data.get_turbine_types .. _create_input_types_label: @@ -142,6 +142,7 @@ Functions for smoothing power curves or applying wake losses to a power curve. power_curves.smooth_power_curve power_curves.wake_losses_to_power_curve + power_curves.create_power_curve Wake losses diff --git a/doc/whatsnew/v0-2-1.rst b/doc/whatsnew/v0-2-1.rst index 961fb126..191d926e 100644 --- a/doc/whatsnew/v0-2-1.rst +++ b/doc/whatsnew/v0-2-1.rst @@ -14,6 +14,13 @@ Other changes * Data height in weather data DataFrame can be of type string and will be converted to numeric internally. This makes is easier to read a csv-file with a header using pandas read_csv function. * Code-style is now "black". * Licence changed from GPLv3 to MIT. +* A new function `check_turbine_data(filename)` is added to check the turbine + data. If new data is downloaded from the oedb the data will be checked and + removed if an error occurs. Furthermore, it is always possible to restore the + original turbine data using the function `restore_default_turbine_data()`. + (`PR 101 `_) +* Speed Improvement in "power_curve_density_correction" + (`PR 107 `_) Documentation @@ -27,8 +34,7 @@ Contributors ############ * Birgit Schachler +* Kumar Shivam * Sabine Haas * Uwe Krien -* @vezeli - - +* Velibor Zeli diff --git a/example/modelchain_example.ipynb b/example/modelchain_example.ipynb index 7d80f76b..696301b2 100644 --- a/example/modelchain_example.ipynb +++ b/example/modelchain_example.ipynb @@ -41,7 +41,7 @@ "import requests\n", "\n", "from windpowerlib import ModelChain, WindTurbine, create_power_curve\n", - "from windpowerlib import wind_turbine as wt" + "from windpowerlib import data as wt" ] }, { diff --git a/tests/oedb/power_coefficient_curves.csv b/tests/oedb/power_coefficient_curves.csv new file mode 100644 index 00000000..08b9b382 --- /dev/null +++ b/tests/oedb/power_coefficient_curves.csv @@ -0,0 +1,20 @@ +turbine_type,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.2,4.5,5.0,5.2,5.5,6.0,6.2,6.5,7.0,7.5,8.0,8.1,8.5,8.8,9.0,9.5,10.0,10.2,10.5,11.0,11.1,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,26.0 +E48/800,,,0.0,,0.0,,0.17,,0.35,,,0.43,,,0.46,,,0.47,,0.48,,,,0.5,,0.5,,,0.45,,,0.39,,0.32,,0.27,,0.22,,0.18,,0.15,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-115/3200,,,0.0,,0.06,,0.28,,0.38,,,0.42,,,0.45,,,0.47,,0.46,,,,0.45,,0.42,,,0.35,,,0.29,,0.23,,0.18,,0.15,,0.12,,0.1,,0.09,,0.07,,0.06,,0.05,,0.05,,0.04,,0.04,,0.03, +E-101/3500,,,0.0,,0.08,,0.28,,0.37,,,0.41,,,0.44,,,0.46,,0.47,,,,0.47,,0.46,,,0.43,,,0.38,,0.32,,0.26,,0.21,,0.17,,0.15,,0.12,,0.1,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-126/4200,,,0.0,,0.0,,0.28,,0.37,,,0.41,,,0.44,,,0.45,,0.45,,,,0.43,,0.4,,,0.35,,,0.3,,0.24,,0.2,,0.16,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.04,,0.04,,0.03, +E-101/3050,,,0.0,,0.076,,0.279,,0.376,,,0.421,,,0.452,,,0.469,,0.478,,,,0.478,,0.477,,,0.439,,,0.358,,0.283,,0.227,,0.184,,0.152,,0.127,,0.107,,0.091,,0.078,,0.067,,0.058,,0.051,,0.045,,0.04, +E-115/3000,,,0.0,,0.058,,0.279,,0.376,,,0.421,,,0.451,,,0.469,,0.47,,,,0.445,,0.401,,,0.338,,,0.27,,0.212,,0.17,,0.138,,0.114,,0.095,,0.08,,0.068,,0.058,,0.05,,0.044,,0.038,,0.034,,0.03, +E-82/3000,,,0.0,,0.0,,0.286,,0.396,,,0.43,,,0.459,,,0.473,,0.483,,,,0.481,,0.467,,,0.437,,,0.394,,0.352,,0.312,,0.267,,0.226,,0.19,,0.16,,0.136,,0.117,,0.101,,0.088,,0.077,,0.068,,0.06, +E-92/2350,,,0.0,,0.11,,0.27,,0.38,,,0.41,,,0.44,,,0.46,,0.47,,,,0.47,,0.45,,,0.39,,,0.32,,0.26,,0.21,,0.17,,0.14,,0.12,,0.1,,0.08,,0.07,,0.06,,0.05,,0.05,,0.04,,0.04, +E-82/2350,,,0.0,,0.12,,0.29,,0.4,,,0.43,,,0.46,,,0.48,,0.49,,,,0.5,,0.49,,,0.44,,,0.38,,0.32,,0.26,,0.22,,0.18,,0.15,,0.12,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-82/2300,,,0.0,,0.12,,0.29,,0.4,,,0.43,,,0.46,,,0.48,,0.49,,,,0.5,,0.49,,,0.44,,,0.38,,0.32,,0.26,,0.22,,0.18,,0.15,,0.12,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-70/2300,,,0.0,,0.1,,0.27,,0.36,,,0.42,,,0.46,,,0.48,,0.5,,,,0.5,,0.5,,,0.49,,,0.45,,0.39,,0.34,,0.28,,0.23,,0.19,,0.16,,0.14,,0.12,,0.1,,0.09,,0.08,,0.07,,0.06, +E-82/2000,,,0.0,,0.12,,0.29,,0.4,,,0.43,,,0.46,,,0.48,,0.49,,,,0.5,,0.49,,,0.42,,,0.35,,0.29,,0.23,,0.19,,0.15,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05,,0.04, +E-53/800,,,0.0,,0.19,,0.39,,0.44,,,0.46,,,0.48,,,0.49,,0.49,,,,0.49,,0.48,,,0.42,,,0.34,,0.27,,0.22,,0.18,,0.15,,0.12,,0.1,,0.09,,0.08,,0.06,,0.06,,0.05,,0.04,,0.04, +GE130/3200,,,,,,,0.255,0.367,0.413,,0.433,0.442,,0.448,0.45,,0.452,0.443,0.451,0.446,,0.436,,0.417,0.393,0.361,,0.326,0.292,,0.259,0.229,0.203,0.181,0.161,0.145,0.13,0.118,0.107,0.097,0.088,0.081,0.074,0.068,0.063,0.058,0.054,0.05,0.046,0.043,0.04,0.037,0.035,0.033,0.031,0.029,0.027,0.025, +GE120/2750,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.3,0.39,,0.43,0.45,,0.46,0.47,,0.48,0.48,0.48,0.47,,0.46,,0.43,0.4,0.36,,0.33,0.29,,0.26,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23, +GE103/2750,0.0,0.0,0.0,0.0,0.0,0.0,0.12,0.25,0.32,,0.36,0.39,,0.42,0.43,,0.44,0.44,0.45,0.45,,0.45,,0.45,0.43,0.42,,0.39,0.36,,0.33,0.3,0.27,0.25,0.22,0.2,0.18,0.16,0.15,0.13,0.12,0.11,0.1,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04, +GE120/2500,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.3,0.39,,0.43,0.45,,0.46,0.47,,0.48,0.48,0.48,0.47,,0.46,,0.43,0.39,0.35,,0.31,0.27,,0.24,0.21,0.19,0.17,0.15,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.065,0.06,0.055,0.05,0.05,0.05,,,,,,,,,,, +ENO126/3500,,,,,,,0.155,,0.419,,,0.444,,,0.442,,,0.446,,0.45,,,,0.419,,0.39,,,0.331,,,0.265,,0.209,,0.167,,0.136,,0.112,,0.093,,0.079,,0.067,,0.057,,0.049,,0.043,,0.038,,0.033,,0.029, +ENO114/3500,,,,,,,0.138,,,0.384,,,0.426,,,0.428,,0.421,,,0.427,,0.42,,,,0.404,,,0.378,,0.315,,0.251,,0.201,,0.163,,0.135,,0.112,,0.094,,0.08,,0.069,,0.06,,0.052,,0.045,,0.04,,0.035, \ No newline at end of file diff --git a/tests/oedb/power_coefficient_curves_broken.csv b/tests/oedb/power_coefficient_curves_broken.csv new file mode 100644 index 00000000..52e6f348 --- /dev/null +++ b/tests/oedb/power_coefficient_curves_broken.csv @@ -0,0 +1,14 @@ +turbine_type,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.2,4.5,5.0,5.2,5.5,6.0,6.2,6.5,7.0,7.5,8.0,8.1,8.5,8.8,9.0,9.5,10.0,10.2,10.5,11.0,11.1,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,26.0 +E48/800,,,0.0,,0.0,,0.17,,0.35,,,0.43,,,0.46,,,0.47,,0.48,,,,0.5,,0.5,,,0.45,,,0.39,,0.32,,0.27,,0.22,,0.18,,0.15,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-115/3200,,,0.0,,0.06,,0.28,,0.38,,,0.42,,,0.45,,,0.47,,0.46,,,,0.45,,0.42,,,0.35,,,0.29,,0.23,,0.18,,0.15,,0.12,,0.1,,0.09,,0.07,,0.06,,0.05,,0.05,,0.04,,0.04,,0.03, +E-101/3500,,,0.0,,0.08,,0.28,,0.37,,,0.41,,,0.44,,,0.46,,0.47,,,,0.47,,0.46,,,0.43,,,0.38,,0.32,,0.26,,0.21,,0.17,,0.15,,0.12,,0.1,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-126/4200,,,0.0,,0.0,,0.28,,0.37,,,0.41,,,0.44,,,0.45,,0.45,,,,0.43,,0.4,,,0.35,,,0.3,,0.24,,0.2,,0.16,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.04,,0.04,,0.03, +E-101/3050,,,0.adfsf076,,0.279,,0.376,,,0.421,,,0.452,,,0.469,,0.478,,,,0.478,,0.477,,,0.439,,,0.358,,0.283,,0.227,,0.184,,0.152,,0.127,,0.107,,0.091,,0.078,,0.067,,0.058,,0.051,,0.045,,0.04, +E-115/3000,,,0.0,,0.058,,0.279,,0.376,,,0.421,,,0.451,,,0.469,,0.47,,,,0.445,,0.401,,,0.338,,,0.27,,0.212,,fas.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05,,0.04, +E-53/800,,,0.0,,0.19,,0.39,,0.44,,,0.46,,,0.48,,,0.49,,0.49,,,,0.49,,0.48,,,0.42,,,0.34,,0.27,,0.22,,0.18,,0.15,,0.12,,0.1,,0.09,,0.08,,0.06,,0.06,,0.05,,0.04,,0.04, +GE130/3200,,,,,,,0.255,0.367,0.413,,0.433,0.442,,0.448,0.45,,0.452,0.443,0.451,0.446,,0.436,,0.417,0.393,0.361,,0.326,0.292,,0.259,0.229,0.203,0.181,0.161,0.145,0.13,0.118,0.107,0.097,0.088,0.081,0.074,0.068,0.063,0.058,0.054,0.05,0.046,0.043,0.04,0.037,0.035,0.033,0.031,0.029,0.027,0.025, +GE120/2750,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.3,0.39,,0.43,0.45,,0.46,0.47,,0.48,0.48,0.48,0.47,,0.46,,0.43,0.4,0.36,,0.33,0.29,,0.26,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23, +GE103/2750,0.0,0.0,0.0,0.0,ads,0.25,0.32,,0.36,0.39,,0.42,0.43,,0.44,0.44,0.45,0.45,,0.45,,0.45,0.43,0.42,,0.39,0.36,,0.33,0.3,0.27,0.25,0.22,0.2,0.18,0.16,0.15,0.13,0.12,0.11,0.1,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04, +GE120/2500,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.3,0.39,,0.43,0.45,,0.46,0.47,,0.48,0.48,0.48,0.47,,0.46,,0.43,0.39,0.35,,0.31,0.27,,0.24,0.21,0.19,0.17,0.15,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.065,0.06,0.055,0.05,0.05,0.05,,,,,,,,,,, +ENO126/3500,,,,,,,0.155,,0.419,,,0.444,,,0.442,,,0.446,,0.45,,,,0.419,,0.39,,,0.331,,,0.265,,0.209,,0.167,,0.136,,0.112,,0.093,,0.079,,0.067,,0.057,,0.049,,0.043,,0.038,,0.033,,0.029, +ENO114/3500,,,,,,,0.138,,,0.384,,,0.426,,,0.428,,0.421,,,0.427,,0.42,,,,0.404,,,0.378,,0.315,,0.251,,0.201,,0.163,,0.135,,0.112,,0.094,,0.08,,0.069,,0.06,,0.052,,0.045,,0.04,,0.035, \ No newline at end of file diff --git a/tests/oedb/power_curves.csv b/tests/oedb/power_curves.csv new file mode 100644 index 00000000..d52133bf --- /dev/null +++ b/tests/oedb/power_curves.csv @@ -0,0 +1,20 @@ +turbine_type,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.2,4.5,5.0,5.2,5.5,6.0,6.2,6.5,7.0,7.5,8.0,8.1,8.5,8.8,9.0,9.5,10.0,10.2,10.5,11.0,11.1,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0,31.5,32.0,32.5,33.0,33.5,34.0,34.5,35.0 +E48/800,,,0.0,,0.0,,5000.0,,25000.0,,,60000.0,,,110000.0,,,180000.0,,275000.0,,,,400000.0,,555000.0,,,671000.0,,,750000.0,,790000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,,,,,,,,,,,,,,,,,,, +E-115/3200,,,0.0,,3000.0,,49000.0,,155000.0,,,339000.0,,,628000.0,,,1036000.0,,1522000.0,,,,2215000.0,,2677000.0,,,3030000.0,,,3177000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,,,,,,,,,,,,,,,,,,, +E-101/3500,,,0.0,,3000.0,,37000.0,,116000.0,,,253000.0,,,469000.0,,,775000.0,,1175000.0,,,,1680000.0,,2280000.0,,,2810000.0,,,3200000.0,,3400000.0,,3465000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,,,,,,,,,,,,,,,,,,, +E-126/4200,,,0.0,,0.0,,58000.0,,185000.0,,,400000.0,,,745000.0,,,1200000.0,,1790000.0,,,,2450000.0,,3120000.0,,,3660000.0,,,4000000.0,,4150000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,,,,,,,,,,,,,,,,,,, +E-101/3050,0.0,0.0,0.0,0.0,3000.0,22000.0,49000.0,92000.0,155000.0,,240000.0,339000.0,,480000.0,628000.0,,830000.0,1035000.0,1292000.0,1549000.0,,1820000.0,,2090000.0,2350000.0,2580000.0,,2775000.0,2900000.0,,2980000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +E-115/3000,,,0.0,,3000.0,,48500.0,,155000.0,,,339000.0,,,627500.0,,,1035500.0,,1549000.0,,,,2090000.0,,2580000.0,,,2900000.0,,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,,,,,,,,,,,,,,,,,,, +E-82/3000,,,0.0,,0.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,525000.0,,800000.0,,,,1135000.0,,1510000.0,,,1880000.0,,,2200000.0,,2500000.0,,2770000.0,,2910000.0,,3000000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,,,,,,,,,,,,,,,,,,, +E-92/2350,,,0.0,,3600.0,,29900.0,,98200.0,,,208300.0,,,384300.0,,,637000.0,,975800.0,,,,1403600.0,,1817800.0,,,2088699.9999999998,,,2237000.0,,2300000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-82/2350,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1890000.0,,,2100000.0,,2250000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-82/2300,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1890000.0,,,2100000.0,,2250000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-70/2300,,,0.0,,2000.0,,18000.0,,56000.0,,,127000.0,,,240000.0,,,400000.0,,626000.0,,,,892000.0,,1223000.0,,,1590000.0,,,1900000.0,,2080000.0,,2230000.0,,2300000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,,,,,,,,,,,,,,,,,,, +E-82/2000,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1810000.0,,,1980000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,,,,,,,,,,,,,,,,,,, +E-70/2000,0.0,0.0,0.0,0.0,0.0,10000.0,18000.0,37000.0,56000.0,,92000.0,127000.0,,184000.0,240000.0,,320000.0,400000.0,513000.0,626000.0,,759000.0,,892000.0,1058000.0,1223000.0,,1407000.0,1590000.0,,1710000.0,1830000.0,1890000.0,1950000.0,2010000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,,,,,,,,,,,,,,,,,,,, +E-53/800,,,0.0,,2000.0,,14000.0,,38000.0,,,77000.0,,,141000.0,,,228000.0,,336000.0,,,,480000.0,,645000.0,,,744000.0,,,780000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,,,,,,,,,,,,,,,,,,, +AD116/5000,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,50000.0,,165000.0,280000.0,,410000.0,540000.0,,705000.0,870000.0,1102500.0,1335000.0,,1630000.0,,1925000.0,2270000.0,2615000.0,,3115000.0,3615000.0,,4205000.0,4795000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,, +GE130/3200,,,,,,,56000.0,128000.0,215000.0,,321000.0,449000.0,,606000.0,791000.0,,1010000.0,1263000.0,1547000.0,1857000.0,,2175000.0,,2473000.0,2737000.0,2933000.0,,3067000.0,3164000.0,,3202000.0,3221000.0,3229000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,,,,,,,,,,,,,,,,,,,, +GE120/2750,0.0,0.0,0.0,0.0,0.0,0.0,25000.0,89000.0,171000.0,,269000.0,389000.0,,533000.0,704000.0,,906000.0,1136000.0,1400000.0,1674000.0,,1945000.0,,2173000.0,2373000.0,2518000.0,,2619000.0,2696000.0,,2739000.0,2766000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,,,,,,,,,,,,,,,,,,,, +GE103/2750,0.0,0.0,0.0,0.0,0.0,0.0,17000.0,55000.0,104000.0,,169000.0,251000.0,,352000.0,470000.0,,610000.0,772000.0,959000.0,1170000.0,,1405000.0,,1656000.0,1899000.0,2120000.0,,2291000.0,2441000.0,,2567000.0,2661000.0,2730000.0,2768000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,,,,,,,,,,,,,,,,,,,, +GE120/2500,0.0,0.0,0.0,0.0,0.0,0.0,25000.0,89000.0,171000.0,,269000.0,389000.0,,533000.0,704000.0,,906000.0,1136000.0,1400000.0,1674000.0,,1934000.0,,2160000.0,2316000.0,2416000.0,,2477000.0,2514000.0,,2528000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file diff --git a/tests/oedb/power_curves_broken.csv b/tests/oedb/power_curves_broken.csv new file mode 100644 index 00000000..3e03b30b --- /dev/null +++ b/tests/oedb/power_curves_broken.csv @@ -0,0 +1,20 @@ +turbine_type,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.2,4.5,5.0,5.2,5.5,6.0,6.2,6.5,7.0,7.5,8.0,8.1,8.5,8.8,9.0,9.5,10.0,10.2,10.5,11.0,11.1,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.0,15.0,15.0,15.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0,31.5,32.0,32.5,33.0,33.5,34.0,34.5,35.0 +E48/800,,,0.0,,0.0,,5000.0,,25000.0,,,60000.0,,,110000.0,,,180000.0,,275000.0,,,,400000.0,,555000.0,,,671000.0,,,750000.0,,790000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,,,,,,,,,,,,,,,,,,, +E-115/3200,,,0.0,,3000.0,,49000.0,,155000.0,,,339000.0,,,628000.0,,,1036000.0,,1522000.0,,,,2215000.0,,2677000.0,,,3030000.0,,,3177000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,,,,,,,,,,,,,,,,,,, +E-101/3500,,,0.0,,3000.0,,37000.0,,116000.0,,,253000.0,,,469000.0,,,775000.0,,1175000.0,,,,1680000.0,,2280000.0,,,2810000.0,,,3200000.0,,3400000.0,,3465000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,,,,,,,,,,,,,,,,,,, +E-126/4200,,,0.0,,0.0,,58000.0,,185000.0,,,400000.0,,,745000.0,,,1200000.0,,1790000.0,,,,2450000.0,,3120000.0,,,3660000.0,,,4000000.0,,4150000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,,,,,,,,,,,,,,,,,,, +E-101/3050,0.0,0.0,0.0,0.0,3000.0,22000.0,49000.0,92000.0,155000.0,,240000.0,339000.0,,480000.0,628000.0,,830000.0,1035000.0,1292000.0,1549000.0,,1820000.0,,2090000.0,2350000.0,2580000.0,,2775000.0,2900000.0,,2980000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +E-115/3000,,,0.0,,3000.0,,48500.0,,155000.0,,,339000.0,,,627500.0,,,1035500.0,,1549000.0,,,,2090000.0,,2580000.0,,,2900000.0,,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,,,,,,,,,,,,,,,,,,, +E-82/3000,,,0.0,,0.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,525000.0,,800000.0,,,,1135000.0,,1510000.0,,,1880000.0,,,2200000.0,,2500000.0,,2770000.0,,2910000.0,,3000000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,,,,,,,,,,,,,,,,,,, +E-92/2350,,,0.0,,3600.0,,29900.0,,98200.0,,,208300.0,,,384300.0,,,637000.0,,975800.0,,,,1403600.0,,1817800.0,,,2088699.9999999998,,,2237000.0,,2300000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-82/2350,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1890000.0,,,2100000.0,,2250000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-82/2300,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1890000.0,,,2100000.0,,2250000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-70/2300,,,0.0,,2000.0,,18000.0,,56000.0,,,127000.0,,,240000.0,,,400000.0,,626000.0,,,,892000.0,,1223000.0,,,1590000.0,,,1900000.0,,2080000.0,,2230000.0,,2300000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,,,,,,,,,,,,,,,,,,, +E-82/2000,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1810000.0,,,1980000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,,,,,,,,,,,,,,,,,,, +E-70/2000,0.0,0.0,0.0,0.0,0.0,10000.0,18000.0,37000.0,56000.0,,92000.0,127000.0,,184000.0,240000.0,,320000.0,400000.0,513000.0,626000.0,,759000.0,,892000.0,1058000.0,1223000.0,,1407000.0,1590000.0,,1710000.0,1830000.0,1890000.0,1950000.0,2010000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,,,,,,,,,,,,,,,,,,,, +E-53/800,,,0.0,,2000.0,,14000.0,,38000.0,,,77000.0,,,141000.0,,,228000.0,,336000.0,,,,480000.0,,645000.0,,,744000.0,,,780000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,,,,,,,,,,,,,,,,,,, +AD116/5000,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,50000.0,,165000.0,280000.0,,410000.0,540000.0,,705000.0,870000.0,1102500.0,1335000.0,,1630000.0,,1925000.0,2270000.0,2615000.0,,3115000.0,3615000.0,,4205000.0,4795000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,, +GE130/3200,,,,,,,56000.0,128000.0,215000.0,,321000.0,449000.0,,606000.0,791000.0,,1010000.0,1263000.0,1547000.0,1857000.0,,2175000.0,,2473000.0,2737000.0,2933000.0,,3067000.0,3164000.0,,3202000.0,3221000.0,3229000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,,,,,,,,,,,,,,,,,,,, +GE120/2750,0.0,0.0,0.0,0.0,0.0,0.0,25000.0,89000.0,171000.0,,269000.0,389000.0,,533000.0,704000.0,,906000.0,1136000.0,1400000.0,1674000.0,,1945000.0,,2173000.0,2373000.0,2518000.0,,2619000.0,2696000.0,,2739000.0,2766000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,,,,,,,,,,,,,,,,,,,, +GE103/2750,0.0,0.0,0.0,0.0,0.0,0.0,17000.0,55000.0,104000.0,,169000.0,251000.0,,352000.0,470000.0,,610000.0,772000.0,959000.0,1170000.0,,1405000.0,,1656000.0,1899000.0,2120000.0,,2291000.0,2441000.0,,2567000.0,2661000.0,2730000.0,2768000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,,,,,,,,,,,,,,,,,,,, +GE120/2500,0.0,0.0,0.0,0.0,0.0,0.0,25000.0,89000.0,171000.0,,269000.0,389000.0,,533000.0,704000.0,,906000.0,1136000.0,1400000.0,1674000.0,,1934000.0,,2160000.0,2316000.0,2416000.0,,2477000.0,2514000.0,,2528000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/tests/oedb/turbine_data.csv b/tests/oedb/turbine_data.csv new file mode 100644 index 00000000..1ca2ce89 --- /dev/null +++ b/tests/oedb/turbine_data.csv @@ -0,0 +1,20 @@ +turbine_type,calculated,has_cp_curve,has_ct_curve,has_power_curve,hub_height,id,manufacturer,max_speed_drive,name,nominal_power,power_density,power_density_2,rotor_area,rotor_diameter,source,turbine_id,turbine_type_v2,wind_class_iec,wind_zone_dibt +AD135/5050,,False,False,False,,80,Adwen/Areva,14,AD 5-135,5050000,353,3,14312,135,https://www.wind-turbine-models.com/turbines/1122-adwen-ad-5-135,86,AD-135_5050,IEC I (GL-TK 1 & GL-TK S), +GE158/4800,,False,False,False,101;120.9;149;169,111,GE Wind,,GE 4.8-158,4800000,,,19604,158,https://www.gerenewableenergy.com/wind-energy/turbines/4mw-platform; https://www.wind-turbine-models.com/turbines/1719-general-electric-ge-4.8-158,120,GE-158_4800,, +GE137/3400,True,False,False,False,85;110;131;134;155,113,GE Wind,,GE 3.4-137,3400000,,,14739,137,https://www.wind-turbine-models.com/turbines/1339-general-electric-ge-3.4-137,122,GE-137_3400,, +GE137/3600,,False,False,False,85;110;131.4;164.5,112,GE Wind,,GE 3.6-137,3600000,,,14739,137,https://www.wind-turbine-models.com/turbines/1551-general-electric-ge-3.6-137,121,GE-137_3600,IIIb, +ENO92/2200,,False,False,False,,129,Eno,,ENO 92,2200000,,,6647,92,https://www.wind-turbine-models.com/turbines/652-eno-energy-eno-92,140,ENO-92_2200,, +GE103/2500,True,False,False,False,85; 110; 139,120,GE Wind,,GE 2.5-103,2500000,243,4,8331,103,https://www.wind-turbine-models.com/turbines/1293-general-electric-ge-2.5-103,129,GE-103_2500,IIIa,WZ 2 +ENO114/4000,,False,False,False,,126,Eno,,ENO 114 4.0,4000000,,,10206,114,https://www.wind-turbine-models.com/turbines/1473-eno-energy-eno-114-4.0,137,ENO-114_4000,, +E48/800,,True,False,True,50;55; 60;65;76,132,Enercon,,E-48 800,800000,,,1809,48,http://www.windenergie-im-binnenland.de/powercurve.php,144,E48_800,, +E-115/3200,True,True,False,True,92; 122; 135; 149,3,Enercon,13,E-115/3200,3200000,304,3,10512,116,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,4,E-115_3200,IEC/EN IIA,WZ 4 GKI; WZ 4 GK II +AD132/5000,,False,False,False,80; 94,81,Adwen/Areva,12,AD 5-132,5000000,365,3,13683,132,https://www.wind-turbine-models.com/turbines/1123-adwen-ad-5-132,87,AD-132_5000,IEC IIA/IEC S, +GE103/2850,,False,False,False,75;85;98.3,115,GE Wind,,GE 2.85-103,3850000,,,8331,103,https://www.wind-turbine-models.com/turbines/750-general-electric-ge-2.85-103,124,GE-103_2850,, +ENO126/4800,,False,False,False,,122,Eno,,ENO 126 4.8,4800000,,,12467,126,https://www.wind-turbine-models.com/turbines/1741-eno-energy-eno-126-4.8,133,ENO-126_4800,, +ENO126/4000,,False,False,False,,123,Eno,,ENO 126 4.0,4000000,,,12467,126,https://www.wind-turbine-models.com/turbines/1484-eno-energy-eno-126-4.0,134,ENO-126_4000,, +ENO114/4800,,False,False,False,,125,Eno,,ENO 114 4.8,4800000,,,10206,114,https://www.wind-turbine-models.com/turbines/1742-eno-energy-eno-114-4.8,136,ENO-114_4800,, +ENO82/2050,True,False,False,False,,130,Eno,,ENO 82,2050000,,,5280,82,http://www.eno-energy.com/produkte-leistungen/windenergieanlagen/eno-82-205-mw/#c86; https://www.wind-turbine-models.com/turbines/108-eno-energy-eno-82,141,ENO-82_2050,, +GE100/2750,,False,False,False, 75;85;98.3;123.5,118,GE Wind,,GE 2.75-100,2750000,,,7853,100,https://www.wind-turbine-models.com/turbines/748-general-electric-ge-2.75-100,127,GE-100_2750,, +E-101/3500,True,True,False,True,74; 99,2,Enercon,15,E-101/3500 E2,3500000,437,2,8011,101,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,3,E-101_3500,IEC/EN IA,WZ 4 GK I; WZ 4 GK II +E-126/4200,True,True,False,True,99; 135; 159,1,Enercon,12,E-126/4200 EP4,4200000,331,3,12666,127,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,2,E-126_4200,IEC/EN IA; IEC/EN IIA,WZ4 GK I; WZ4 GK II; WZ3 GK I; WZ3 GK II +E-101/3050,True,True,False,True,99; 124; 135; 149,4,Enercon,15,E-101/3050 E2,3050000,381,3,8011,101,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,5,E-101_3050,IEC/EN IIA,WZ III; WZ 4 GK I \ No newline at end of file diff --git a/tests/oedb/turbine_data_broken.csv b/tests/oedb/turbine_data_broken.csv new file mode 100644 index 00000000..1b6a9c33 --- /dev/null +++ b/tests/oedb/turbine_data_broken.csv @@ -0,0 +1,20 @@ +turbine_type,calculated,has_cp_curve,has_ct_curve,has_power_curve,hub_height,id,manufacturer,max_speed_drive,name,nominal_power,power_density,power_density_2,rotor_area,rotor_diameter,source,turbine_id,turbine_type_v2,wind_class_iec,wind_zone_dibt +AD135/5050,,False,False,False,,80,Adwen/Areva,14,AD 5-135,5050000,353,3,14312,135,https://www.wind-turbine-models.com/turbines/1122-adwen-ad-5-135,86,AD-135_5050,IEC I (GL-TK 1 & GL-TK S), +GE158/4800,,"False",False,False,101;hallo;149;169,111,GE Wind,,GE 4.8-158,"capacity",,,19604,158,https://www.gerenewableenergy.com/wind-energy/turbines/4mw-platform; https://www.wind-turbine-models.com/turbines/1719-general-electric-ge-4.8-158,120,GE-158_4800,, +GE137/3400,True,False,False,False,85;110;131;134;155,113,GE Wind,,GE 3.4-137,3400000,,,14739,137,https://www.wind-turbine-models.com/turbines/1339-general-electric-ge-3.4-137,122,GE-137_3400,, +GE137/3600,,False,False,False,85;110;131.4;164.5,112,GE Wind,,GE 3.6-137,3600000,,,14739,137,https://www.wind-turbine-models.com/turbines/1551-general-electric-ge-3.6-137,121,GE-137_3600,IIIb, +ENO92/2200,,False,False,False,,129,Eno,,ENO 92,2200000,,,6647,92,https://www.wind-turbine-models.com/turbines/652-eno-energy-eno-92,140,ENO-92_2200,, +GE103/2500,True,False,False,False,85; 110; 139,120,GE Wind,,GE 2.5-103,2500000,243,4,8331,103,https://www.wind-turbine-models.com/turbines/1293-general-electric-ge-2.5-103,129,GE-103_2500,IIIa,WZ 2 +ENO114/4000,,False,False,False,,126,Eno,,ENO 114 4.0,4000000,,,10206,114,https://www.wind-turbine-models.com/turbines/1473-eno-energy-eno-114-4.0,137,ENO-114_4000,, +E48/800,,True,False,True,50;55; 60;65;76,132,Enercon,,E-48 800,800000,,,1809,48,http://www.windenergie-im-binnenland.de/powercurve.php,144,E48_800,, +E-115/3200,True,True,False,True,92; 122; 135; 149,3,Enercon,13,E-115/3200,3200000,304,3,10512,116,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,4,E-115_3200,IEC/EN IIA,WZ 4 GKI; WZ 4 GK II +AD132/5000,,False,False,False,80; 94,81,Adwen/Areva,12,AD 5-132,5000000,365,3,13683,132,https://www.wind-turbine-models.com/turbines/1123-adwen-ad-5-132,87,AD-132_5000,IEC IIA/IEC S, +GE103/2850,,False,False,False,75;85;98.3,115,GE Wind,,GE 2.85-103,3850000,,,8331,103,https://www.wind-turbine-models.com/turbines/750-general-electric-ge-2.85-103,124,GE-103_2850,, +ENO126/4800,,False,False,False,,122,Eno,,ENO 126 4.8,4800000,,,12467,126,https://www.wind-turbine-models.com/turbines/1741-eno-energy-eno-126-4.8,133,ENO-126_4800,, +ENO126/4000,,False,False,False,,123,Eno,,ENO 126 4.0,4000000,,,12467,126,https://www.wind-turbine-models.com/turbines/1484-eno-energy-eno-126-4.0,134,ENO-126_4000,, +ENO114/4800,,False,False,False,,125,Eno,,ENO 114 4.8,4800000,,,10206,114,https://www.wind-turbine-models.com/turbines/1742-eno-energy-eno-114-4.8,136,ENO-114_4800,, +ENO82/2050,True,False,False,False,,130,Eno,,ENO 82,2050000,,,5280,82,http://www.eno-energy.com/produkte-leistungen/windenergieanlagen/eno-82-205-mw/#c86; https://www.wind-turbine-models.com/turbines/108-eno-energy-eno-82,141,ENO-82_2050,, +GE100/2750,,False,False,False, 75;85;98.3;123.5,118,GE Wind,,GE 2.75-100,2750000,,,7853,100,https://www.wind-turbine-models.com/turbines/748-general-electric-ge-2.75-100,127,GE-100_2750,, +E-101/3500,True,True,False,True,74; 99,2,Enercon,15,E-101/3500 E2,3500000,437,2,8011,101,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,3,E-101_3500,IEC/EN IA,WZ 4 GK I; WZ 4 GK II +E-126/4200,True,True,False,True,99; 135; 159,1,Enercon,12,E-126/4200 EP4,4200000,331,3,12666,127,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,2,E-126_4200,IEC/EN IA; IEC/EN IIA,WZ4 GK I; WZ4 GK II; WZ3 GK I; WZ3 GK II +E-101/3050,True,True,False,True,99; 124; 135; 149,4,Enercon,15,E-101/3050 E2,3050000,381,3,8011,101,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,5,E-101_3050,IEC/EN IIA,WZ III; WZ 4 GK I \ No newline at end of file diff --git a/tests/test_data_handling.py b/tests/test_data_handling.py new file mode 100644 index 00000000..227fdc1f --- /dev/null +++ b/tests/test_data_handling.py @@ -0,0 +1,123 @@ +""" +SPDX-FileCopyrightText: 2019 oemof developer group +SPDX-License-Identifier: MIT +""" + +import filecmp +import os +from shutil import copyfile + +import pandas as pd +import pytest +from windpowerlib.data import ( + check_data_integrity, + check_turbine_data, + get_turbine_types, + restore_default_turbine_data, + store_turbine_data_from_oedb, +) + + +class TestDataCheck: + @classmethod + def setup_class(cls): + cls.path = os.path.join(os.path.dirname(__file__), "oedb") + cls.filename = os.path.join(cls.path, "{0}.csv") + cls.df = pd.read_csv(cls.filename.format("turbine_data"), index_col=0) + cls.broken_fn = os.path.join(cls.path, "{0}_broken.csv") + cls.backup_fn = os.path.join(cls.path, "{0}_backup.csv") + cls.tmp_fn = os.path.join(cls.path, "{0}_tmp.csv") + cls.orig_path = os.path.join( + os.path.dirname(__file__), os.pardir, "windpowerlib", "oedb" + ) + cls.orig_fn = os.path.join(cls.orig_path, "{0}.csv") + + @classmethod + def teardown_class(cls): + cls.path = os.path.join(os.path.dirname(__file__), "oedb") + for f in os.listdir(cls.path): + if "error" in f or "backup" in f or "tmp" in f: + os.remove(os.path.join(cls.path, f)) + restore_default_turbine_data() + + def test_normal_data_check(self): + """Check data which is fine.""" + check_turbine_data(self.filename.format("turbine_data")) + + def test_data_check_logging_warnings(self, caplog): + """Check logging warnings about the checked data.""" + self.df.loc["GE158/4800", "has_power_curve"] = True + self.df.loc["GE100/2750", "has_cp_curve"] = True + self.df.to_csv(self.tmp_fn.format("turbine_data")) + check_data_integrity(self.tmp_fn, min_pc_length=26) + assert "E48/800: power_curve is too short (25 values)" in caplog.text + assert "GE158/4800: No power curve" in caplog.text + assert "GE100/2750: No cp-curve but has_cp_curve" in caplog.text + + def test_global_error(self): + """Check Error message if turbine data is corrupt.""" + msg = r"could not convert string to*" + name = "turbine_data" + copyfile(self.orig_fn.format(name), self.backup_fn.format(name)) + copyfile(self.broken_fn.format(name), self.orig_fn.format(name)) + with pytest.raises(ValueError, match=msg): + check_turbine_data(self.orig_fn) + copyfile(self.backup_fn.format(name), self.orig_fn.format(name)) + + def test_broken_pwr_curve(self): + """Check Error message if power_curves data is corrupt.""" + name = "power_curves" + copyfile(self.orig_fn.format(name), self.backup_fn.format(name)) + copyfile(self.broken_fn.format(name), self.orig_fn.format(name)) + msg = "could not convert string to float" + with pytest.raises(ValueError, match=msg): + check_turbine_data(self.orig_fn) + copyfile(self.backup_fn.format(name), self.orig_fn.format(name)) + + def test_get_turbine_types(self, capsys): + """Test the `get_turbine_types` function.""" + get_turbine_types() + captured = capsys.readouterr() + assert "Enercon" in captured.out + get_turbine_types("oedb", print_out=False, filter_=False) + msg = "`turbine_library` is 'wrong' but must be 'local' or 'oedb'." + with pytest.raises(ValueError, match=msg): + get_turbine_types("wrong") + + def test_store_turbine_data_from_oedb(self): + """Test `store_turbine_data_from_oedb` function.""" + t = {} + for fn in os.listdir(self.orig_path): + t[fn] = os.path.getmtime(os.path.join(self.orig_path, fn)) + store_turbine_data_from_oedb() + for fn in os.listdir(self.orig_path): + assert t[fn] < os.path.getmtime(os.path.join(self.orig_path, fn)) + + def test_wrong_url_load_turbine_data(self): + """Load turbine data from oedb with a wrong schema.""" + with pytest.raises( + ConnectionError, + match=r"Database \(oep\) connection not successful*", + ): + store_turbine_data_from_oedb("wrong_schema") + + def test_restore_default_data(self): + """Test the clean recovery of the data files.""" + names = ["turbine_data", "power_curves", "power_coefficient_curves"] + default_path = os.path.join( + self.orig_path, os.pardir, "data", "default_turbine_data" + ) + for name in names: + copyfile(self.broken_fn.format(name), self.orig_fn.format(name)) + file = self.orig_fn.format(name) + default_file = os.path.join( + default_path, os.path.basename(self.orig_fn.format(name)) + ) + assert not filecmp.cmp(file, default_file) + restore_default_turbine_data() + for name in names: + file = self.orig_fn.format(name) + default_file = os.path.join( + default_path, os.path.basename(self.orig_fn.format(name)) + ) + assert filecmp.cmp(file, default_file) diff --git a/tests/test_deprecated.py b/tests/test_deprecated.py new file mode 100644 index 00000000..5e0a1b67 --- /dev/null +++ b/tests/test_deprecated.py @@ -0,0 +1,20 @@ +""" +SPDX-FileCopyrightText: 2019 oemof developer group +SPDX-License-Identifier: MIT +""" + +import pytest + +from windpowerlib.data import load_turbine_data_from_oedb +from windpowerlib.wind_turbine import get_turbine_types + + +def test_old_import(): + msg = "Use >>from windpowerlib import get_turbine_types" + with pytest.raises(ImportError, match=msg): + get_turbine_types() + + +def test_old_name_load_data_from_oedb(recwarn): + load_turbine_data_from_oedb() + assert recwarn.pop(FutureWarning) diff --git a/tests/test_wind_turbine.py b/tests/test_wind_turbine.py index 0d89a71c..97191028 100644 --- a/tests/test_wind_turbine.py +++ b/tests/test_wind_turbine.py @@ -5,16 +5,15 @@ SPDX-License-Identifier: MIT """ -import pytest import os -from windpowerlib.tools import WindpowerlibUserWarning +import pytest + +from windpowerlib.tools import WindpowerlibUserWarning from windpowerlib.wind_turbine import ( - get_turbine_data_from_file, WindTurbine, - get_turbine_types, WindTurbineGroup, - load_turbine_data_from_oedb, + get_turbine_data_from_file, ) @@ -39,23 +38,6 @@ def test_get_turbine_data_from_file(self): with pytest.raises(FileNotFoundError): get_turbine_data_from_file(turbine_type="...", path="not_existent") - def test_get_turbine_types(self, capsys): - get_turbine_types() - captured = capsys.readouterr() - assert "Enercon" in captured.out - get_turbine_types("oedb", print_out=False, filter_=False) - msg = "`turbine_library` is 'wrong' but must be 'local' or 'oedb'." - with pytest.raises(ValueError, match=msg): - get_turbine_types("wrong") - - def test_wrong_url_load_turbine_data(self): - """Load turbine data from oedb.""" - - with pytest.raises( - ConnectionError, match="Not found" - ): - load_turbine_data_from_oedb("wrong_schema") - @pytest.mark.filterwarnings("ignore:The WindTurbine") def test_string_representation_of_wind_turbine(self): assert "Wind turbine: ['hub height=120 m'" in repr(WindTurbine(120)) diff --git a/windpowerlib/__init__.py b/windpowerlib/__init__.py index 86aa5125..f65b4c63 100644 --- a/windpowerlib/__init__.py +++ b/windpowerlib/__init__.py @@ -3,8 +3,8 @@ __version__ = "0.2.1dev" from .wind_turbine import WindTurbine # noqa: F401 -from .wind_turbine import get_turbine_types # noqa: F401 -from .wind_turbine import create_power_curve # noqa: F401 +from .data import get_turbine_types # noqa: F401 +from .power_curves import create_power_curve # noqa: F401 from .wind_farm import WindFarm # noqa: F401 from .wind_turbine_cluster import WindTurbineCluster # noqa: F401 from .modelchain import ModelChain # noqa: F401 diff --git a/windpowerlib/data.py b/windpowerlib/data.py new file mode 100644 index 00000000..fe03c2fc --- /dev/null +++ b/windpowerlib/data.py @@ -0,0 +1,346 @@ +""" +The ``data`` module contains functions to handle the needed data. + +SPDX-FileCopyrightText: 2019 oemof developer group +SPDX-License-Identifier: MIT +""" + +import logging +import os +import warnings +from shutil import copyfile + +import pandas as pd +import requests +from windpowerlib.tools import WindpowerlibUserWarning +from windpowerlib.wind_turbine import WindTurbine + + +def get_turbine_types(turbine_library="local", print_out=True, filter_=True): + r""" + Get all provided wind turbine types provided. + + Choose by `turbine_library` whether to get wind turbine types provided by + the OpenEnergy Database ('oedb') or wind turbine types provided in your + local file(s) ('local'). + By default only turbine types for which a power coefficient curve or power + curve is provided are returned. Set `filter_=False` to see all turbine + types for which any data (e.g. hub height, rotor diameter, ...) is + provided. + + Parameters + ---------- + turbine_library : str + Specifies if the oedb turbine library ('oedb') or your local turbine + data file ('local') is evaluated. Default: 'local'. + print_out : bool + Directly prints a tabular containing the turbine types in column + 'turbine_type', the manufacturer in column 'manufacturer' and + information about whether a power (coefficient) curve exists (True) or + not (False) in columns 'has_power_curve' and 'has_cp_curve'. + Default: True. + filter_ : bool + If True only turbine types for which a power coefficient curve or + power curve is provided in the oedb turbine library are + returned. Default: True. + + Returns + ------- + :pandas:`pandas.DataFrame` + Contains turbine types in column 'turbine_type', the manufacturer in + column 'manufacturer' and information about whether a power + (coefficient) curve exists (True) or not (False) in columns + 'has_power_curve' and 'has_cp_curve'. + + Notes + ----- + If the power (coefficient) curve of the desired turbine type (or the + turbine type itself) is missing you can contact us via github or + windpowerlib@rl-institut.de. You can help us by providing data in the + format as shown in `the data base + `_. + + Examples + -------- + >>> from windpowerlib import get_turbine_types + >>> df=get_turbine_types(print_out=False) + >>> print(df[df["turbine_type"].str.contains("E-126")].iloc[0]) + manufacturer Enercon + turbine_type E-126/4200 + has_power_curve True + has_cp_curve True + Name: 5, dtype: object + >>> print(df[df["manufacturer"].str.contains("Enercon")].iloc[0]) + manufacturer Enercon + turbine_type E-101/3050 + has_power_curve True + has_cp_curve True + Name: 1, dtype: object + + """ + if turbine_library == "local": + filename = os.path.join( + os.path.dirname(__file__), "oedb", "turbine_data.csv" + ) + df = pd.read_csv(filename, index_col=0).reset_index() + elif turbine_library == "oedb": + df = fetch_turbine_data_from_oedb() + + else: + raise ValueError( + "`turbine_library` is '{}' ".format(turbine_library) + + "but must be 'local' or 'oedb'." + ) + if filter_: + cp_curves_df = df.loc[df["has_cp_curve"]][ + ["manufacturer", "turbine_type", "has_cp_curve"] + ] + p_curves_df = df.loc[df["has_power_curve"]][ + ["manufacturer", "turbine_type", "has_power_curve"] + ] + curves_df = pd.merge( + p_curves_df, cp_curves_df, how="outer", sort=True + ).fillna(False) + else: + curves_df = df[ + ["manufacturer", "turbine_type", "has_power_curve", "has_cp_curve"] + ] + if print_out: + pd.set_option("display.max_rows", len(curves_df)) + print(curves_df) + pd.reset_option("display.max_rows") + return curves_df + + +def fetch_turbine_data_from_oedb( + schema="supply", table="wind_turbine_library" +): + r""" + Fetches turbine library from the OpenEnergy database (oedb). + + Parameters + ---------- + schema : str + Database schema of the turbine library. + table : str + Table name of the turbine library. + + Returns + ------- + :pandas:`pandas.DataFrame` + Turbine data of different turbines such as 'manufacturer', + 'turbine_type', 'nominal_power'. + + """ + # url of OpenEnergy Platform that contains the oedb + oep_url = "http://oep.iks.cs.ovgu.de/" + url = oep_url + "/api/v0/schema/{}/tables/{}/rows/?".format(schema, table) + + # load data + result = requests.get(url) + if not result.status_code == 200: + raise ConnectionError( + "Database (oep) connection not successful. \nURL: {2}\n" + "Response: [{0}] \n{1}".format( + result.status_code, result.text, url + ) + ) + return pd.DataFrame(result.json()) + + +def load_turbine_data_from_oedb(schema="supply", table="wind_turbine_library"): + msg = ( + "\nUse >>store_turbine_data_from_oedb<< and not" + " >>load_turbine_data_from_oedb<< in the future." + ) + warnings.warn(msg, FutureWarning) + return store_turbine_data_from_oedb(schema=schema, table=table) + + +def store_turbine_data_from_oedb( + schema="supply", table="wind_turbine_library" +): + r""" + Loads turbine library from the OpenEnergy database (oedb). + + Turbine data is saved to csv files ('oedb_power_curves.csv', + 'oedb_power_coefficient_curves.csv' and 'oedb_nominal_power') for offline + usage of the windpowerlib. If the files already exist they are overwritten. + + Parameters + ---------- + schema : str + Database schema of the turbine library. + table : str + Table name of the turbine library. + + Returns + ------- + :pandas:`pandas.DataFrame` + Turbine data of different turbines such as 'manufacturer', + 'turbine_type', 'nominal_power'. + + """ + turbine_data = fetch_turbine_data_from_oedb(schema=schema, table=table) + # standard file name for saving data + filename = os.path.join(os.path.dirname(__file__), "oedb", "{0}.csv") + + # get all power (coefficient) curves and save them to file + for curve_type in ["power_curve", "power_coefficient_curve"]: + curves_df = pd.DataFrame(columns=["wind_speed"]) + for index in turbine_data.index: + if ( + turbine_data["{}_wind_speeds".format(curve_type)][index] + and turbine_data["{}_values".format(curve_type)][index] + ): + df = ( + pd.DataFrame( + data=[ + eval( + turbine_data[ + "{}_wind_speeds".format(curve_type) + ][index] + ), + eval( + turbine_data["{}_values".format(curve_type)][ + index + ] + ), + ] + ) + .transpose() + .rename( + columns={ + 0: "wind_speed", + 1: turbine_data["turbine_type"][index], + } + ) + ) + curves_df = pd.merge( + left=curves_df, right=df, how="outer", on="wind_speed" + ) + curves_df = curves_df.set_index("wind_speed").sort_index().transpose() + # power curve values in W + if curve_type == "power_curve": + curves_df *= 1000 + curves_df.index.name = "turbine_type" + curves_df.to_csv(filename.format("{}s".format(curve_type))) + + # get turbine data and save to file (excl. curves) + turbine_data_df = turbine_data.drop( + [ + "power_curve_wind_speeds", + "power_curve_values", + "power_coefficient_curve_wind_speeds", + "power_coefficient_curve_values", + "thrust_coefficient_curve_wind_speeds", + "thrust_coefficient_curve_values", + ], + axis=1, + ).set_index("turbine_type") + # nominal power in W + turbine_data_df["nominal_power"] *= 1000 + turbine_data_df.to_csv(filename.format("turbine_data")) + check_turbine_data(filename) + return turbine_data + + +def check_turbine_data(filename): + try: + data = check_data_integrity(filename) + except Exception as e: + restore_default_turbine_data() + raise e + return data + + +def check_data_integrity(filename, min_pc_length=5): + data = pd.read_csv(filename.format("turbine_data"), index_col=[0]) + for data_set in data.iterrows(): + wt_type = data_set[0] + turbine_data_set = { + "turbine_type": "{0}".format(wt_type), + "hub_height": 135, + } + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + wt = WindTurbine(**turbine_data_set) + if wt.power_curve is None and data_set[1].has_power_curve is True: + logging.warning( + "{0}: No power curve but has_power_curve=True.".format( + wt_type + ) + ) + if ( + wt.power_coefficient_curve is None + and data_set[1].has_cp_curve is True + ): + logging.warning( + "{0}: No cp-curve but has_cp_curve=True.".format(wt_type) + ) + if wt.power_curve is not None: + if len(wt.power_curve) < min_pc_length: + logging.warning( + "{0}: power_curve is too short ({1} values),".format( + wt_type, len(wt.power_curve) + ) + ) + return data + + +def restore_default_turbine_data(): + """ + + Returns + ------- + + Examples + -------- + >>> restore_default_turbine_data() + + """ + src_path = os.path.join( + os.path.dirname(__file__), "data", "default_turbine_data" + ) + dst_path = os.path.join(os.path.dirname(__file__), "oedb") + + for file in os.listdir(src_path): + src = os.path.join(src_path, file) + dst = os.path.join(dst_path, file) + copyfile(src, dst) + + +def check_weather_data(weather_data): + """ + Check weather Data Frame. + + - Raise warning if there are nan values. + - Convert columns if heights are string and not numeric. + + Parameters + ---------- + weather_data : pandas.DataFrame + A weather table with MultiIndex columns (name, data height) + + Returns + ------- + pandas.DataFrame : A valid weather table. + + """ + # Convert data heights to integer. In some case they are strings. + weather_data.columns = pd.MultiIndex.from_arrays( + [ + weather_data.columns.get_level_values(0), + pd.to_numeric(weather_data.columns.get_level_values(1)), + ] + ) + + # check for nan values + if weather_data.isnull().any().any(): + nan_columns = list(weather_data.columns[weather_data.isnull().any()]) + msg = ( + "The following columns of the weather data contain invalid " + "values like 'nan': {0}" + ) + warnings.warn(msg.format(nan_columns), WindpowerlibUserWarning) + return weather_data diff --git a/windpowerlib/data/default_turbine_data/power_coefficient_curves.csv b/windpowerlib/data/default_turbine_data/power_coefficient_curves.csv new file mode 100644 index 00000000..5436bd2d --- /dev/null +++ b/windpowerlib/data/default_turbine_data/power_coefficient_curves.csv @@ -0,0 +1,52 @@ +turbine_type,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.2,4.5,5.0,5.2,5.5,6.0,6.2,6.5,7.0,7.5,8.0,8.1,8.5,8.8,9.0,9.5,10.0,10.2,10.5,11.0,11.1,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,26.0 +E48/800,,,0.0,,0.0,,0.17,,0.35,,,0.43,,,0.46,,,0.47,,0.48,,,,0.5,,0.5,,,0.45,,,0.39,,0.32,,0.27,,0.22,,0.18,,0.15,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-115/3200,,,0.0,,0.06,,0.28,,0.38,,,0.42,,,0.45,,,0.47,,0.46,,,,0.45,,0.42,,,0.35,,,0.29,,0.23,,0.18,,0.15,,0.12,,0.1,,0.09,,0.07,,0.06,,0.05,,0.05,,0.04,,0.04,,0.03, +E-101/3500,,,0.0,,0.08,,0.28,,0.37,,,0.41,,,0.44,,,0.46,,0.47,,,,0.47,,0.46,,,0.43,,,0.38,,0.32,,0.26,,0.21,,0.17,,0.15,,0.12,,0.1,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-126/4200,,,0.0,,0.0,,0.28,,0.37,,,0.41,,,0.44,,,0.45,,0.45,,,,0.43,,0.4,,,0.35,,,0.3,,0.24,,0.2,,0.16,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.04,,0.04,,0.03, +E-101/3050,,,0.0,,0.076,,0.279,,0.376,,,0.421,,,0.452,,,0.469,,0.478,,,,0.478,,0.477,,,0.439,,,0.358,,0.283,,0.227,,0.184,,0.152,,0.127,,0.107,,0.091,,0.078,,0.067,,0.058,,0.051,,0.045,,0.04, +E-115/3000,,,0.0,,0.058,,0.279,,0.376,,,0.421,,,0.451,,,0.469,,0.47,,,,0.445,,0.401,,,0.338,,,0.27,,0.212,,0.17,,0.138,,0.114,,0.095,,0.08,,0.068,,0.058,,0.05,,0.044,,0.038,,0.034,,0.03, +E-82/3000,,,0.0,,0.0,,0.286,,0.396,,,0.43,,,0.459,,,0.473,,0.483,,,,0.481,,0.467,,,0.437,,,0.394,,0.352,,0.312,,0.267,,0.226,,0.19,,0.16,,0.136,,0.117,,0.101,,0.088,,0.077,,0.068,,0.06, +E-92/2350,,,0.0,,0.11,,0.27,,0.38,,,0.41,,,0.44,,,0.46,,0.47,,,,0.47,,0.45,,,0.39,,,0.32,,0.26,,0.21,,0.17,,0.14,,0.12,,0.1,,0.08,,0.07,,0.06,,0.05,,0.05,,0.04,,0.04, +E-82/2350,,,0.0,,0.12,,0.29,,0.4,,,0.43,,,0.46,,,0.48,,0.49,,,,0.5,,0.49,,,0.44,,,0.38,,0.32,,0.26,,0.22,,0.18,,0.15,,0.12,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-82/2300,,,0.0,,0.12,,0.29,,0.4,,,0.43,,,0.46,,,0.48,,0.49,,,,0.5,,0.49,,,0.44,,,0.38,,0.32,,0.26,,0.22,,0.18,,0.15,,0.12,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05, +E-70/2300,,,0.0,,0.1,,0.27,,0.36,,,0.42,,,0.46,,,0.48,,0.5,,,,0.5,,0.5,,,0.49,,,0.45,,0.39,,0.34,,0.28,,0.23,,0.19,,0.16,,0.14,,0.12,,0.1,,0.09,,0.08,,0.07,,0.06, +E-82/2000,,,0.0,,0.12,,0.29,,0.4,,,0.43,,,0.46,,,0.48,,0.49,,,,0.5,,0.49,,,0.42,,,0.35,,0.29,,0.23,,0.19,,0.15,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,0.05,,0.04, +E-53/800,,,0.0,,0.19,,0.39,,0.44,,,0.46,,,0.48,,,0.49,,0.49,,,,0.49,,0.48,,,0.42,,,0.34,,0.27,,0.22,,0.18,,0.15,,0.12,,0.1,,0.09,,0.08,,0.06,,0.06,,0.05,,0.04,,0.04, +GE130/3200,,,,,,,0.255,0.367,0.413,,0.433,0.442,,0.448,0.45,,0.452,0.443,0.451,0.446,,0.436,,0.417,0.393,0.361,,0.326,0.292,,0.259,0.229,0.203,0.181,0.161,0.145,0.13,0.118,0.107,0.097,0.088,0.081,0.074,0.068,0.063,0.058,0.054,0.05,0.046,0.043,0.04,0.037,0.035,0.033,0.031,0.029,0.027,0.025, +GE120/2750,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.3,0.39,,0.43,0.45,,0.46,0.47,,0.48,0.48,0.48,0.47,,0.46,,0.43,0.4,0.36,,0.33,0.29,,0.26,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23, +GE103/2750,0.0,0.0,0.0,0.0,0.0,0.0,0.12,0.25,0.32,,0.36,0.39,,0.42,0.43,,0.44,0.44,0.45,0.45,,0.45,,0.45,0.43,0.42,,0.39,0.36,,0.33,0.3,0.27,0.25,0.22,0.2,0.18,0.16,0.15,0.13,0.12,0.11,0.1,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04, +GE120/2500,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.3,0.39,,0.43,0.45,,0.46,0.47,,0.48,0.48,0.48,0.47,,0.46,,0.43,0.39,0.35,,0.31,0.27,,0.24,0.21,0.19,0.17,0.15,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.065,0.06,0.055,0.05,0.05,0.05,,,,,,,,,,, +ENO126/3500,,,,,,,0.155,,0.419,,,0.444,,,0.442,,,0.446,,0.45,,,,0.419,,0.39,,,0.331,,,0.265,,0.209,,0.167,,0.136,,0.112,,0.093,,0.079,,0.067,,0.057,,0.049,,0.043,,0.038,,0.033,,0.029, +ENO114/3500,,,,,,,0.138,,,0.384,,,0.426,,,0.428,,0.421,,,0.427,,0.42,,,,0.404,,,0.378,,0.315,,0.251,,0.201,,0.163,,0.135,,0.112,,0.094,,0.08,,0.069,,0.06,,0.052,,0.045,,0.04,,0.035, +ENO100/2200,,,,,,,0.29,,0.408,,,0.431,,,0.443,,,0.445,,0.442,,,,0.428,,0.388,,,0.325,,,0.262,,0.206,,0.165,,0.134,,0.111,,0.092,,0.078,,0.066,,0.057,,0.049,,0.043,,0.037,,0.033,,0.029, +E-141/4200,,,0.0,,0.29,,0.4,,0.42,,,0.44,,,0.45,,,0.45,,0.44,,,,0.41,,0.36,,,0.31,,,0.25,,0.2,,0.16,,0.13,,0.11,,0.09,,0.08,,0.06,,0.05,,0.05,,0.04,,0.04,,0.03,,0.03, +N131/3600,0.0,0.0,0.0,0.0,0.0,0.0,0.067,0.254,0.348,,0.4,0.429,,0.444,0.451,,0.456,0.458,0.46,0.46,,0.458,,0.453,0.435,0.403,,0.365,0.326,,0.287,0.252,0.223,0.198,0.177,0.159,0.143,0.129,0.117,0.106,0.097,0.089,0.081,0.075,0.069,0.064,0.059,0.055,,,,,,,,,,, +N131/3300,,,,,,,0.148,0.299,0.373,,0.413,0.433,,0.444,0.451,,0.455,0.458,0.46,0.458,,0.452,,0.438,0.41,0.374,,0.336,0.299,,0.263,0.231,0.205,0.182,0.162,0.146,0.131,0.118,0.107,0.098,0.089,0.081,0.075,0.069,0.063,0.058,0.054,0.05,,,,,,,,,,, +N131/3000,,,,,,,0.148,0.294,0.367,,0.407,0.428,,0.442,0.45,,0.455,0.458,0.458,0.453,,0.444,,0.421,0.387,0.349,,0.31,0.273,,0.239,0.21,0.186,0.165,0.148,0.132,0.119,0.108,0.098,0.089,0.081,0.074,0.068,0.062,0.057,0.053,0.049,0.045,,,,,,,,,,, +N117/2400,0.0,0.0,0.0,0.0,0.0,0.0,0.13,0.29,0.37,,0.41,0.43,,0.45,0.45,,0.46,0.46,0.46,0.46,,0.45,,0.43,0.39,0.35,,0.31,0.28,,0.24,0.21,0.19,0.17,0.15,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.05,,,,,,,,,,, +N100/2500,,,,,,,0.023,0.224,0.329,,0.392,0.427,,0.447,0.456,,0.462,0.465,0.468,0.468,,0.466,,0.462,0.457,0.44,,0.411,0.376,,0.339,0.302,0.267,0.237,0.212,0.19,0.171,0.155,0.14,0.127,0.116,0.106,0.097,0.089,0.082,0.076,0.07,0.065,0.061,0.056,0.053,0.049,0.046,0.043,0.04,0.038,0.035,0.033, +N90/2500,,,,,,,0.01,0.221,0.337,,0.4,0.435,,0.454,0.465,,0.471,0.475,0.478,0.477,,0.473,,0.465,0.455,0.442,,0.427,0.409,,0.385,0.355,0.323,0.291,0.261,0.234,0.21,0.19,0.172,0.157,0.143,0.131,0.12,0.11,0.101,0.094,0.087,0.08,0.074,0.069,0.065,0.06,0.056,0.053,0.049,0.046,0.044,0.041,0.037 +S114/3400,0.0,,0.0,,0.0,,0.14,,0.35,,,0.42,,,0.45,,,0.46,,0.47,,,,0.46,,0.44,,,0.39,,,0.32,,0.25,,0.2,,0.16,,0.13,,0.11,,0.09,,0.08,,0.07,,0.06,,0.05,,,,,,, +S122/3000,,,,,,,0.186,,0.358,,,0.415,,,0.442,,,0.46,,0.453,,,,0.43,,0.387,,,0.312,,,0.242,,0.191,,0.153,,0.124,,0.102,,0.085,,0.072,,0.061,,0.052,,0.045,,0.039,,,,,,, +MM100/2000,0.0,,0.0,,0.0,,0.15,,0.33,,,0.4,,,0.44,,,0.45,,0.46,,,,0.45,,0.4,,,0.31,,,0.24,,0.19,,0.15,,0.12,,0.1,,0.09,,0.07,,0.06,,0.05,,0.05,,0.04,,,,,,, +S122/3200,,,,,,,0.285,,0.402,,,0.437,,,0.449,,,0.456,,0.444,,,,0.425,,0.392,,,0.326,,,0.259,,0.203,,0.163,,0.132,,0.109,,0.091,,0.077,,0.065,,0.056,,0.048,,0.042,,,,,,, +SWT130/3300,,,,,,,0.191,,0.346,,,0.405,,,0.433,,,0.445,,0.448,,,,0.437,,0.384,,,0.303,,,0.235,,0.185,,0.148,,0.12,,0.099,,0.083,,0.07,,0.059,,0.051,,0.044,,0.038,,0.033,,0.029,,0.026, +SWT113/3200,,,,,,,0.386,,0.43,,,0.456,,,0.47,,,0.477,,0.479,,,,0.472,,0.442,,,0.377,,,0.3,,0.237,,0.19,,0.154,,0.127,,0.106,,0.089,,0.076,,0.065,,0.056,,0.049,,0.043,,0.038,,0.033, +SWT142/3150,,,,,,,0.21,,0.385,,,0.453,,,0.462,,,0.457,,0.443,,,,0.398,,0.319,,,0.244,,,0.188,,0.148,,0.118,,0.096,,0.079,,0.066,,0.056,,0.047,,0.041,,0.035,,0.03,,0.027,,,,, +SWT130/3600,,,,,,,0.196,,0.354,,,0.414,,,0.443,,,0.455,,0.457,,,,0.444,,0.401,,,0.327,,,0.256,,0.202,,0.161,,0.131,,0.108,,0.09,,0.076,,0.065,,0.055,,0.048,,0.042,,0.036,,0.032,,0.028, +SWT120/3600,,,,,,,0.0,,0.392,,,0.438,,,0.458,,,0.466,,0.47,,,,0.471,,0.447,,,0.378,,,0.3,,0.236,,0.189,,0.154,,0.127,,0.106,,0.089,,0.076,,0.065,,0.056,,0.049,,0.043,,0.038,,0.033, +SWT113/2300,,,,,,,0.398,,0.435,,,0.458,,,0.47,,,0.476,,0.476,,,,0.448,,0.366,,,0.281,,,0.217,,0.17,,0.136,,0.111,,0.091,,0.076,,0.064,,0.055,,0.047,,0.04,,0.035,,0.031,,0.027,,0.024, +V126/3450,0.0,0.0,0.0,0.0,0.0,0.0,0.17,0.308,0.376,,0.407,0.423,,0.433,0.439,,0.444,0.447,0.449,0.45,,0.449,,0.446,0.438,0.417,,0.381,0.338,,0.297,0.261,0.231,0.206,0.184,0.165,0.148,0.134,0.121,0.11,0.101,0.092,0.084,0.077,0.071,0.066,0.061,0.056,0.052,0.049,0.045,0.042,0.04,,,,,, +V126/3300,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.3,0.37,,0.4,0.42,,0.42,0.43,,0.44,0.44,0.44,0.44,,0.44,,0.44,0.43,0.41,,0.37,0.32,,0.28,0.25,0.22,0.2,0.18,0.16,0.14,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,,,,,, +V126/3000,,,,,,,0.097,0.269,0.354,,0.397,0.416,,0.425,0.432,,0.436,0.439,0.441,0.441,,0.44,,0.437,0.418,0.382,,0.338,0.295,,0.258,0.227,0.201,0.179,0.16,0.143,0.129,0.116,0.105,0.096,0.087,0.08,0.073,0.067,0.062,0.057,0.053,0.049,0.046,0.042,0.04,0.037,0.034,,,,,, +V117/3450,,,,,,,0.124,0.276,0.356,,0.395,0.413,,0.425,0.434,,0.44,0.445,0.449,0.451,,0.453,,0.454,0.451,0.441,,0.42,0.385,,0.343,0.303,0.268,0.238,0.213,0.191,0.172,0.155,0.141,0.128,0.117,0.107,0.098,0.09,0.083,0.076,0.071,0.065,0.061,0.057,0.053,0.049,0.046,0.043,0.04,0.038,0.036,0.034, +V117/3300,,,,,,,0.135,0.283,0.349,,0.38,0.397,,0.41,0.42,,0.427,0.433,0.437,0.44,,0.441,,0.44,0.436,0.426,,0.402,0.367,,0.328,0.29,0.257,0.228,0.204,0.183,0.164,0.148,0.135,0.122,0.112,0.102,0.094,0.086,0.079,0.073,0.068,0.063,0.058,0.054,0.05,0.047,0.044,0.041,0.039,0.036,0.034,0.032, +V112/3450,0.0,0.0,0.0,0.0,0.0,0.0,0.043,0.205,0.318,,0.378,0.41,,0.425,0.435,,0.442,0.448,0.451,0.453,,0.455,,0.456,0.454,0.446,,0.431,0.405,,0.369,0.33,0.293,0.26,0.232,0.208,0.188,0.169,0.154,0.14,0.127,0.116,0.107,0.098,0.09,0.083,0.077,0.071,0.066,0.062,0.058,0.054,0.05,0.047,0.044,0.041,0.039,0.037, +V112/3300,0.0,0.0,0.0,0.0,0.0,0.0,0.14,0.28,0.35,,0.38,0.4,,0.41,0.42,,0.43,0.44,0.44,0.44,,0.45,,0.44,0.44,0.43,,0.41,0.38,,0.35,0.31,0.28,0.25,0.22,0.2,0.18,0.16,0.15,0.13,0.12,0.11,0.1,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04, +V112/3075,0.0,0.0,0.0,0.0,0.0,0.0,0.16,0.28,0.34,,0.38,0.4,,0.41,0.43,,0.43,0.44,0.44,0.45,,0.45,,0.45,0.44,0.43,,0.4,0.37,,0.33,0.29,0.26,0.23,0.21,0.19,0.17,0.15,0.14,0.12,0.11,0.1,0.1,0.09,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03, +V112/3000,,,,,,,0.141,0.263,0.337,,0.375,0.399,,0.416,0.427,,0.434,0.441,0.444,0.446,,0.446,,0.444,0.439,0.426,,0.402,0.372,,0.332,0.294,0.261,0.232,0.207,0.186,0.167,0.151,0.137,0.124,0.113,0.104,0.095,0.087,0.08,0.074,0.069,0.064,0.059,0.055,0.051,0.048,0.045,0.042,0.039,0.037,0.035,0.033, +V90/2000,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.254,0.379,,0.407,0.433,,0.438,0.46,,0.461,0.449,0.447,0.442,,0.452,,0.439,0.43,0.408,,0.389,0.361,,0.327,0.296,0.262,0.234,0.211,0.188,0.168,0.153,0.139,0.128,0.116,,,,,,,,,,,,,,,,,, +V90/2000/GS,,,,,,,,,0.301,,0.36,0.39,,0.409,0.421,,0.429,0.435,0.44,0.443,,0.442,,0.437,0.427,0.412,,0.391,0.365,,0.332,0.298,0.266,0.237,0.212,0.19,0.171,0.154,0.14,0.127,0.116,0.106,0.097,0.089,0.082,0.076,0.07,0.065,0.06,0.056,0.052,0.049,0.046,0.043,0.04,0.038,0.035,0.033, +V100/1800,,,,,,,0.1,0.252,0.351,,0.404,0.426,,0.437,0.441,,0.446,0.451,0.451,0.449,,0.444,,0.431,0.403,0.364,,0.32,0.28,,0.246,0.217,,0.17,,0.136,,0.111,,0.091,,0.076,,0.064,,0.055,,0.047,,,,,,,,,,, +V100/1800/GS,,,,,,,0.092,0.194,0.302,,0.367,0.401,,0.42,0.429,,0.435,0.441,0.443,0.444,,0.441,,0.431,0.406,0.368,,0.326,0.286,,0.251,0.221,0.195,0.174,0.155,0.139,0.125,0.113,0.102,0.093,0.085,0.078,0.071,0.065,0.06,0.056,0.051,0.048,,,,,,,,,,, +V117/3600,,,,,,,0.124,0.276,0.356,,0.395,0.413,,0.425,0.434,,0.44,0.445,0.449,0.451,,0.453,,0.453,0.45,0.441,,0.421,0.39,,0.354,0.315,0.28,0.249,0.222,0.199,0.179,0.162,0.147,0.133,0.122,0.111,0.102,0.094,0.086,0.08,0.074,0.068,0.063,0.059,0.055,0.051,0.048,0.045,0.042,0.04,0.037,0.035, diff --git a/windpowerlib/data/default_turbine_data/power_curves.csv b/windpowerlib/data/default_turbine_data/power_curves.csv new file mode 100644 index 00000000..108f71cb --- /dev/null +++ b/windpowerlib/data/default_turbine_data/power_curves.csv @@ -0,0 +1,68 @@ +turbine_type,0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.2,4.5,5.0,5.2,5.5,6.0,6.2,6.5,7.0,7.5,8.0,8.1,8.5,8.8,9.0,9.5,10.0,10.2,10.5,11.0,11.1,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0,30.5,31.0,31.5,32.0,32.5,33.0,33.5,34.0,34.5,35.0 +E48/800,,,0.0,,0.0,,5000.0,,25000.0,,,60000.0,,,110000.0,,,180000.0,,275000.0,,,,400000.0,,555000.0,,,671000.0,,,750000.0,,790000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,,,,,,,,,,,,,,,,,,, +E-115/3200,,,0.0,,3000.0,,49000.0,,155000.0,,,339000.0,,,628000.0,,,1036000.0,,1522000.0,,,,2215000.0,,2677000.0,,,3030000.0,,,3177000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,,,,,,,,,,,,,,,,,,, +E-101/3500,,,0.0,,3000.0,,37000.0,,116000.0,,,253000.0,,,469000.0,,,775000.0,,1175000.0,,,,1680000.0,,2280000.0,,,2810000.0,,,3200000.0,,3400000.0,,3465000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,,,,,,,,,,,,,,,,,,, +E-126/4200,,,0.0,,0.0,,58000.0,,185000.0,,,400000.0,,,745000.0,,,1200000.0,,1790000.0,,,,2450000.0,,3120000.0,,,3660000.0,,,4000000.0,,4150000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,,,,,,,,,,,,,,,,,,, +E-101/3050,0.0,0.0,0.0,0.0,3000.0,22000.0,49000.0,92000.0,155000.0,,240000.0,339000.0,,480000.0,628000.0,,830000.0,1035000.0,1292000.0,1549000.0,,1820000.0,,2090000.0,2350000.0,2580000.0,,2775000.0,2900000.0,,2980000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +E-115/3000,,,0.0,,3000.0,,48500.0,,155000.0,,,339000.0,,,627500.0,,,1035500.0,,1549000.0,,,,2090000.0,,2580000.0,,,2900000.0,,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,,,,,,,,,,,,,,,,,,, +E-82/3000,,,0.0,,0.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,525000.0,,800000.0,,,,1135000.0,,1510000.0,,,1880000.0,,,2200000.0,,2500000.0,,2770000.0,,2910000.0,,3000000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,3020000.0,,,,,,,,,,,,,,,,,,,, +E-92/2350,,,0.0,,3600.0,,29900.0,,98200.0,,,208300.0,,,384300.0,,,637000.0,,975800.0,,,,1403600.0,,1817800.0,,,2088699.9999999998,,,2237000.0,,2300000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-82/2350,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1890000.0,,,2100000.0,,2250000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-82/2300,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1890000.0,,,2100000.0,,2250000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,2350000.0,,,,,,,,,,,,,,,,,,,, +E-70/2300,,,0.0,,2000.0,,18000.0,,56000.0,,,127000.0,,,240000.0,,,400000.0,,626000.0,,,,892000.0,,1223000.0,,,1590000.0,,,1900000.0,,2080000.0,,2230000.0,,2300000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,2310000.0,,,,,,,,,,,,,,,,,,,, +E-82/2000,,,0.0,,3000.0,,25000.0,,82000.0,,,174000.0,,,321000.0,,,532000.0,,815000.0,,,,1180000.0,,1580000.0,,,1810000.0,,,1980000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,2050000.0,,,,,,,,,,,,,,,,,,,, +E-70/2000,0.0,0.0,0.0,0.0,0.0,10000.0,18000.0,37000.0,56000.0,,92000.0,127000.0,,184000.0,240000.0,,320000.0,400000.0,513000.0,626000.0,,759000.0,,892000.0,1058000.0,1223000.0,,1407000.0,1590000.0,,1710000.0,1830000.0,1890000.0,1950000.0,2010000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,2050000.0,,,,,,,,,,,,,,,,,,,, +E-53/800,,,0.0,,2000.0,,14000.0,,38000.0,,,77000.0,,,141000.0,,,228000.0,,336000.0,,,,480000.0,,645000.0,,,744000.0,,,780000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,810000.0,,,,,,,,,,,,,,,,,,,, +AD116/5000,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,50000.0,,165000.0,280000.0,,410000.0,540000.0,,705000.0,870000.0,1102500.0,1335000.0,,1630000.0,,1925000.0,2270000.0,2615000.0,,3115000.0,3615000.0,,4205000.0,4795000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,5000000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,, +GE130/3200,,,,,,,56000.0,128000.0,215000.0,,321000.0,449000.0,,606000.0,791000.0,,1010000.0,1263000.0,1547000.0,1857000.0,,2175000.0,,2473000.0,2737000.0,2933000.0,,3067000.0,3164000.0,,3202000.0,3221000.0,3229000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,3230000.0,,,,,,,,,,,,,,,,,,,, +GE120/2750,0.0,0.0,0.0,0.0,0.0,0.0,25000.0,89000.0,171000.0,,269000.0,389000.0,,533000.0,704000.0,,906000.0,1136000.0,1400000.0,1674000.0,,1945000.0,,2173000.0,2373000.0,2518000.0,,2619000.0,2696000.0,,2739000.0,2766000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,,,,,,,,,,,,,,,,,,,, +GE103/2750,0.0,0.0,0.0,0.0,0.0,0.0,17000.0,55000.0,104000.0,,169000.0,251000.0,,352000.0,470000.0,,610000.0,772000.0,959000.0,1170000.0,,1405000.0,,1656000.0,1899000.0,2120000.0,,2291000.0,2441000.0,,2567000.0,2661000.0,2730000.0,2768000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,2780000.0,,,,,,,,,,,,,,,,,,,, +GE120/2500,0.0,0.0,0.0,0.0,0.0,0.0,25000.0,89000.0,171000.0,,269000.0,389000.0,,533000.0,704000.0,,906000.0,1136000.0,1400000.0,1674000.0,,1934000.0,,2160000.0,2316000.0,2416000.0,,2477000.0,2514000.0,,2528000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,2530000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +GE100/2500,0.0,0.0,0.0,0.0,0.0,0.0,0.0,30000.0,63000.0,,129000.0,194000.0,,295000.0,395000.0,,527000.0,658000.0,809000.0,959000.0,,1152000.0,,1345000.0,1604000.0,1862000.0,,2060000.0,2248000.0,,2340000.0,2426000.0,2475000.0,2495000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +ENO126/3500,,,,,,,32000.0,,205000.0,,,424000.0,,,729000.0,,,1168000.0,,1760000.0,,,,2334000.0,,2981000.0,,,3362000.0,,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,,,,,,,,,,,,,,,,,,, +ENO114/3500,,,,,,,23600.0,,,180800.0,,,380300.0,,,648500.0,,917500.0,,,1440500.0,,1818500.0,,,,2722100.0,,,3287200.0,,3457700.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,3500000.0,,,,,,,,,,,,,,,,,,,, +ENO100/2200,,,,,,,38000.0,,127000.0,,,262000.0,,,465000.0,,,741000.0,,1100000.0,,,,1515000.0,,1883000.0,,,2100000.0,,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,2200000.0,,,,,,,,,,,,,,,,,,,, +E-126/7580,0.0,0.0,0.0,0.0,0.0,25000.0,55000.0,110000.0,175000.0,,293000.0,410000.0,,585000.0,760000.0,,1005000.0,1250000.0,1575000.0,1900000.0,,2300000.0,,2700000.0,3240000.0,3750000.0,,4310000.0,4850000.0,,5310000.0,5750000.0,6135000.0,6500000.0,6770000.0,7000000.0,7195000.0,7350000.0,7440000.0,7500000.0,7550000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +E-141/4200,,,0.0,,22000.0,,104000.0,,260000.0,,,523000.0,,,920000.0,,,1471000.0,,2151000.0,,,,2867000.0,,3481000.0,,,3903000.0,,,4119000.0,,4196000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,4200000.0,,,,,,,,,,,,,,,,,,,, +MM92/2050,0.0,,0.0,,0.0,,22000.0,,93100.0,,,207200.0,,,388200.0,,,642700.0,,991200.0,,,,1355700.0,,1780000.0,,,2012600.0,,,2048000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,2055000.0,,,,,,,,,,,,,,,,,,,, +SCD168/8000,,,0.0,,0.0,,0.0,,100000.0,,,500000.0,,,1000000.0,,,2000000.0,,3000000.0,,,,4000000.0,,5000000.0,,,6000000.0,,,7500000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,8000000.0,,,,,,,,,,,,,,,,,,,,,, +E-126/7500,0.0,0.0,0.0,0.0,0.0,25000.0,55000.0,110000.0,175000.0,,290000.0,410000.0,,580000.0,760000.0,,1005000.0,1250000.0,1575000.0,1900000.0,,2300000.0,,2700000.0,3225000.0,3750000.0,,4300000.0,4850000.0,,5300000.0,5750000.0,6125000.0,6500000.0,6780000.0,7000000.0,7200000.0,7350000.0,7450000.0,7500000.0,7560000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,7580000.0,,,,,,,,,,,,,,,,,,,, +N131/3600,0.0,0.0,0.0,0.0,0.0,0.0,15000.0,90000.0,184000.0,,301000.0,443000.0,,610000.0,805000.0,,1034000.0,1298000.0,1602000.0,1946000.0,,2323000.0,,2727000.0,3076000.0,3327000.0,,3491000.0,3580000.0,,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +N131/3300,,,,,,,33000.0,106000.0,197000.0,,311000.0,447000.0,,610000.0,804000.0,,1032000.0,1298000.0,1601000.0,1936000.0,,2292000.0,,2635000.0,2901000.0,3091000.0,,3215000.0,3281000.0,,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +N131/3000,,,,,,,33000.0,104000.0,194000.0,,306000.0,442000.0,,607000.0,802000.0,,1032000.0,1298000.0,1595000.0,1915000.0,,2250000.0,,2533000.0,2740000.0,2881000.0,,2965000.0,2997000.0,,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +N117/2400,0.0,0.0,0.0,0.0,0.0,0.0,23000.0,81000.0,154000.0,,245000.0,356000.0,,488000.0,644000.0,,826000.0,1037000.0,1273000.0,1528000.0,,1797000.0,,2039000.0,2212000.0,2325000.0,,2385000.0,2400000.0,,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,2400000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +N100/2500,,,,,,,3000.0,46000.0,101000.0,,171000.0,256000.0,,356000.0,472000.0,,608000.0,765000.0,945000.0,1148000.0,,1372000.0,,1615000.0,1877000.0,2108000.0,,2282000.0,2401000.0,,2473000.0,2498000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,,,,,,,,,,,,,,,,,,,, +N90/2500,,,,,,,1000.0,37000.0,84000.0,,142000.0,212000.0,,294000.0,391000.0,,504000.0,635000.0,785000.0,951000.0,,1131000.0,,1321000.0,1520000.0,1722000.0,,1924000.0,2122000.0,,2280000.0,2389000.0,2459000.0,2495000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,2500000.0,,2500000.0,,,,,,,,,,,,,,,,,, +S114/3200,0.0,,0.0,,0.0,,23000.0,,139000.0,,,330000.0,,,604000.0,,,990000.0,,1502000.0,,,,2102000.0,,2697000.0,,,3098000.0,,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,,,,,,,,,,,,,,,,,,,,,,,,, +S152/6330,0.0,,0.0,,0.0,,82000.0,,411000.0,,,873000.0,,,1550000.0,,,2524000.0,,3695000.0,,,,5082000.0,,5974000.0,,,6150000.0,,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,6150000.0,,,,,, +S126/6150,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12000.0,75000.0,,166900.0,288300.0,,448300.0,638100.0,,874200.0,1121400.0,1396100.0,1731300.0,,2099500.0,,2481200.0,2968500.0,3431000.0,,3929000.0,4423800.0,,4956400.0,5469000.0,5850400.0,6106200.0,6167500.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,6168820.0,,,,,,,,,, +S114/3400,0.0,,0.0,,0.0,,23000.0,,140000.0,,,327000.0,,,601000.0,,,988000.0,,1502000.0,,,,2105000.0,,2721000.0,,,3208000.0,,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,3400000.0,,,,,,,,,,,,,,,,,,,,,,,,,, +S104/3400,0.0,0.0,0.0,0.0,0.0,0.0,0.0,19000.0,94500.0,,161400.0,251400.0,,353100.0,477800.0,,618400.0,788800.0,975000.0,1212900.0,,1467300.0,,1730900.0,2010500.0,2290800.0,,2578000.0,2850300.0,,3106400.0,3287300.0,3376800.0,3373300.0,3397700.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,3400000.0,,,,,,,,,,,,,,,,,,,, +S122/3000,,,,,,,36000.0,,164000.0,,,371000.0,,,683000.0,,,1130000.0,,1662000.0,,,,2247000.0,,2769000.0,,,2970000.0,,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,,,,,,,,,,,,,,,,,,,,,,,,, +MM100/2000,0.0,,0.0,,0.0,,20000.0,,102000.0,,,239000.0,,,452000.0,,,746000.0,,1126000.0,,,,1559000.0,,1901000.0,,,2000000.0,,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,2000000.0,,,,,,,,,,,,,,,,,,,,,,,,,, +S122/3200,,,,,,,55000.0,,184000.0,,,391000.0,,,695000.0,,,1121000.0,,1627000.0,,,,2219000.0,,2810000.0,,,3106000.0,,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,,,,,,,,,,,,,,,,,,,,,,,,, +SWT130/3300,,,,,,,42000.0,,180000.0,,,412000.0,,,760000.0,,,1241000.0,,1864000.0,,,,2588000.0,,3122000.0,,,3278000.0,,,3298000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,3300000.0,,,,,,,,,,,,,,,,,,,, +SWT113/3200,,,,,,,64000.0,,169000.0,,,350000.0,,,623000.0,,,1004000.0,,1506000.0,,,,2115000.0,,2712000.0,,,3083000.0,,,3187000.0,,3199000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,3200000.0,,,,,,,,,,,,,,,,,,,, +SWT142/3150,,,,,,,55000.0,,239000.0,,,549000.0,,,968000.0,,,1522000.0,,2202000.0,,,,2816000.0,,3090000.0,,,3145000.0,,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,3150000.0,,,,,,,,,,,,,,,,,,,,,,,, +SWT130/3600,,,,,,,43000.0,,184000.0,,,421000.0,,,778000.0,,,1269000.0,,1901000.0,,,,2630000.0,,3261000.0,,,3534000.0,,,3593000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,,,,,,,,,,,,,,,,,,, +SWT120/3600,,,,,,,0.0,,174000.0,,,379000.0,,,686000.0,,,1108000.0,,1667000.0,,,,2378000.0,,3094000.0,,,3487000.0,,,3588000.0,,3599000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,3600000.0,,,,,,,,,,,,,,,,,,,, +V80/2000,0.0,0.0,0.0,0.0,0.0,0.0,0.0,35000.0,70000.0,,117000.0,165000.0,,225000.0,285000.0,,372000.0,459000.0,580000.0,701000.0,,832000.0,,964000.0,1127000.0,1289000.0,,1428000.0,1567000.0,,1678000.0,1788000.0,1865000.0,1941000.0,1966000.0,1990000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,2000000.0,,,,,,,,,,,,,,,,,,,, +SWT113/2300,,,,,,,66000.0,,171000.0,,,352000.0,,,623000.0,,,1002000.0,,1497000.0,,,,2005000.0,,2246000.0,,,2296000.0,,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,2300000.0,,,,,,,,,,,,,,,,,,,, +V164/8000,0.0,,0.0,,0.0,,91800.0,,526700.0,,,1123100.0,,,2043900.0,,,3134600.0,,4486400.0,,,,6393200.0,,7363800.0,,,7834400.0,,,8026400.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,8077200.0,,,,,,,,,,,,,,,,,,,, +V126/3450,0.0,0.0,0.0,0.0,0.0,0.0,35000.0,101000.0,184000.0,,283000.0,404000.0,,550000.0,725000.0,,932000.0,1172000.0,1446000.0,1760000.0,,2104000.0,,2482000.0,2865000.0,3187000.0,,3366000.0,3433000.0,,3448000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,,,,,,,,,,,,,,,,,,,,,,,,, +V126/3300,0.0,0.0,0.0,0.0,0.0,0.0,30000.0,97000.0,179000.0,,278000.0,397000.0,,539000.0,711000.0,,913000.0,1150000.0,1420000.0,1723000.0,,2060000.0,,2434000.0,2804000.0,3090000.0,,3238000.0,3290000.0,,3299000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,,,,,,,,,,,,,,,,,,,,,,,,, +VS112/2500,0.0,,0.0,,0.0,,0.0,,154200.0,,,315900.0,,,548500.0,,,871100.0,,1290100.0,,,,1808800.0,,2269500.0,,,2465100.0,,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,2500000.0,,0.0,,0.0,,0.0,,0.0,,0.0,,,,,,,,,, +V126/3000,,,,,,,20000.0,88000.0,173000.0,,276000.0,397000.0,,540000.0,712000.0,,914000.0,1151000.0,1420000.0,1723000.0,,2063000.0,,2433000.0,2738000.0,2920000.0,,2985000.0,2999000.0,,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,3000000.0,,,,,,,,,,,,,,,,,,,,,,,,, +V117/3450,,,,,,,22000.0,78000.0,150000.0,,237000.0,340000.0,,466000.0,617000.0,,796000.0,1006000.0,1247000.0,1522000.0,,1831000.0,,2178000.0,2544000.0,2905000.0,,3201000.0,3374000.0,,3435000.0,3448000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,,,,,,,,,,,,,,,,,,,, +V117/3300,,,,,,,24000.0,80000.0,147000.0,,228000.0,327000.0,,449000.0,597000.0,,772000.0,978000.0,1214000.0,1482000.0,,1783000.0,,2114000.0,2463000.0,2803000.0,,3063000.0,3216000.0,,3281000.0,3297000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,,,,,,,,,,,,,,,,,,,, +V112/3450,0.0,0.0,0.0,0.0,0.0,0.0,7000.0,53000.0,123000.0,,208000.0,309000.0,,427000.0,567000.0,,732000.0,927000.0,1149000.0,1401000.0,,1688000.0,,2006000.0,2348000.0,2693000.0,,3011000.0,3252000.0,,3388000.0,3436000.0,3448000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,3450000.0,,,,,,,,,,,,,,,,,,,, +V112/3300,0.0,0.0,0.0,0.0,0.0,0.0,22000.0,73000.0,134000.0,,209000.0,302000.0,,415000.0,552000.0,,714000.0,906000.0,1123000.0,1370000.0,,1648000.0,,1950000.0,2268000.0,2586000.0,,2868000.0,3071000.0,,3201000.0,3266000.0,3291000.0,3298000.0,3299000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,3300000.0,,,,,,,,,,,,,,,,,,,, +V112/3075,0.0,0.0,0.0,0.0,0.0,0.0,26000.0,73000.0,133000.0,,207000.0,302000.0,,416000.0,554000.0,,717000.0,907000.0,1126000.0,1375000.0,,1652000.0,,1958000.0,2282000.0,2585000.0,,2821000.0,2997000.0,,3050000.0,3067000.0,3074000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,,,,,,,,,,,,,,,,,,,, +V112/3000,,,,,,,23000.0,68000.0,130000.0,,206000.0,301000.0,,418000.0,557000.0,,720000.0,912000.0,1130000.0,1377000.0,,1654000.0,,1954000.0,2272000.0,2572000.0,,2808000.0,2988000.0,,3046000.0,3065000.0,3073000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,3075000.0,,,,,,,,,,,,,,,,,,,, +V90/3000,,,0.0,,0.0,,0.0,,77000.0,,,190000.0,,,353000.0,,,581000.0,,886000.0,,,,1273000.0,,1710000.0,,,2145000.0,,,2544000.0,,2837000.0,,2965000.0,,2995000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,3000000.0,,,,,,,,,,,,,,,,,,,, +V90/2000,0.0,0.0,0.0,0.0,0.0,0.0,0.0,42200.0,93300.0,,145200.0,211300.0,,284200.0,390900.0,,491500.0,601100.0,731800.0,884500.0,,1087600.0,,1247100.0,1429600.0,1594300.0,,1742900.0,1861200.0,,1948100.0,1993300.0,2003500.0,2007000.0,2007700.0,2007300.0,2007400.0,2007000.0,2006800.0,2006700.0,2006500.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +V164/9500,0.0,0.0,0.0,0.0,0.0,0.0,0.0,115000.0,249000.0,,430000.0,613000.0,,900000.0,1226000.0,,1600000.0,2030000.0,2570000.0,3123000.0,,3784000.0,,4444000.0,5170000.0,5900000.0,,6600000.0,7299000.0,,7960000.0,8601000.0,9080000.0,9272000.0,9410000.0,9500000.0,,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,9500000.0,,,,,,,,,,,,,,,,,,,,, +V90/2000/GS,,,,,,,,,75000.0,,128000.0,190000.0,,265000.0,354000.0,,459000.0,582000.0,723000.0,883000.0,,1058000.0,,1240000.0,1427000.0,1604000.0,,1762000.0,1893000.0,,1968000.0,2005000.0,2021000.0,2027000.0,2029000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,2030000.0,,,,,,,,,,,,,,,,,,,, +V100/1800,,,,,,,13000.0,52000.0,108000.0,,177000.0,256000.0,,350000.0,458000.0,,589000.0,744000.0,916000.0,1106000.0,,1312000.0,,1510000.0,1663000.0,1749000.0,,1784000.0,1796000.0,,1799000.0,1800000.0,,1800000.0,,1800000.0,,1800000.0,,1800000.0,,1800000.0,,1800000.0,,1800000.0,,1800000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +V100/1800/GS,,,,,,,12000.0,40000.0,93000.0,,161000.0,241000.0,,336000.0,446000.0,,575000.0,727000.0,900000.0,1094000.0,,1304000.0,,1510000.0,1673000.0,1771000.0,,1814000.0,1829000.0,,1834000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,1835000.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +V117/3600,,,,,,,22000.0,78000.0,150000.0,,237000.0,340000.0,,466000.0,617000.0,,796000.0,1006000.0,1247000.0,1522000.0,,1830000.0,,2176000.0,2541000.0,2903000.0,,3209000.0,3418000.0,,3543000.0,3589000.0,3599000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,3600000.0,,,,,,,,,,,,,,,,,,,, diff --git a/windpowerlib/data/default_turbine_data/turbine_data.csv b/windpowerlib/data/default_turbine_data/turbine_data.csv new file mode 100644 index 00000000..b34c675d --- /dev/null +++ b/windpowerlib/data/default_turbine_data/turbine_data.csv @@ -0,0 +1,141 @@ +turbine_type,calculated,has_cp_curve,has_ct_curve,has_power_curve,hub_height,id,manufacturer,max_speed_drive,name,nominal_power,power_density,power_density_2,rotor_area,rotor_diameter,source,turbine_id,turbine_type_v2,wind_class_iec,wind_zone_dibt +AD135/5050,,False,False,False,,80,Adwen/Areva,14,AD 5-135,5050000,353,3,14312,135,https://www.wind-turbine-models.com/turbines/1122-adwen-ad-5-135,86,AD-135_5050,IEC I (GL-TK 1 & GL-TK S), +GE158/4800,,False,False,False,101;120.9;149;169,111,GE Wind,,GE 4.8-158,4800000,,,19604,158,https://www.gerenewableenergy.com/wind-energy/turbines/4mw-platform; https://www.wind-turbine-models.com/turbines/1719-general-electric-ge-4.8-158,120,GE-158_4800,, +GE137/3400,True,False,False,False,85;110;131;134;155,113,GE Wind,,GE 3.4-137,3400000,,,14739,137,https://www.wind-turbine-models.com/turbines/1339-general-electric-ge-3.4-137,122,GE-137_3400,, +GE137/3600,,False,False,False,85;110;131.4;164.5,112,GE Wind,,GE 3.6-137,3600000,,,14739,137,https://www.wind-turbine-models.com/turbines/1551-general-electric-ge-3.6-137,121,GE-137_3600,IIIb, +ENO92/2200,,False,False,False,,129,Eno,,ENO 92,2200000,,,6647,92,https://www.wind-turbine-models.com/turbines/652-eno-energy-eno-92,140,ENO-92_2200,, +GE103/2500,True,False,False,False,85; 110; 139,120,GE Wind,,GE 2.5-103,2500000,243,4,8331,103,https://www.wind-turbine-models.com/turbines/1293-general-electric-ge-2.5-103,129,GE-103_2500,IIIa,WZ 2 +ENO114/4000,,False,False,False,,126,Eno,,ENO 114 4.0,4000000,,,10206,114,https://www.wind-turbine-models.com/turbines/1473-eno-energy-eno-114-4.0,137,ENO-114_4000,, +E48/800,,True,False,True,50;55; 60;65;76,132,Enercon,,E-48 800,800000,,,1809,48,http://www.windenergie-im-binnenland.de/powercurve.php,144,E48_800,, +E-115/3200,True,True,False,True,92; 122; 135; 149,3,Enercon,13,E-115/3200,3200000,304,3,10512,116,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,4,E-115_3200,IEC/EN IIA,WZ 4 GKI; WZ 4 GK II +AD132/5000,,False,False,False,80; 94,81,Adwen/Areva,12,AD 5-132,5000000,365,3,13683,132,https://www.wind-turbine-models.com/turbines/1123-adwen-ad-5-132,87,AD-132_5000,IEC IIA/IEC S, +GE103/2850,,False,False,False,75;85;98.3,115,GE Wind,,GE 2.85-103,3850000,,,8331,103,https://www.wind-turbine-models.com/turbines/750-general-electric-ge-2.85-103,124,GE-103_2850,, +ENO126/4800,,False,False,False,,122,Eno,,ENO 126 4.8,4800000,,,12467,126,https://www.wind-turbine-models.com/turbines/1741-eno-energy-eno-126-4.8,133,ENO-126_4800,, +ENO126/4000,,False,False,False,,123,Eno,,ENO 126 4.0,4000000,,,12467,126,https://www.wind-turbine-models.com/turbines/1484-eno-energy-eno-126-4.0,134,ENO-126_4000,, +ENO114/4800,,False,False,False,,125,Eno,,ENO 114 4.8,4800000,,,10206,114,https://www.wind-turbine-models.com/turbines/1742-eno-energy-eno-114-4.8,136,ENO-114_4800,, +ENO82/2050,True,False,False,False,,130,Eno,,ENO 82,2050000,,,5280,82,http://www.eno-energy.com/produkte-leistungen/windenergieanlagen/eno-82-205-mw/#c86; https://www.wind-turbine-models.com/turbines/108-eno-energy-eno-82,141,ENO-82_2050,, +GE100/2750,,False,False,False, 75;85;98.3;123.5,118,GE Wind,,GE 2.75-100,2750000,,,7853,100,https://www.wind-turbine-models.com/turbines/748-general-electric-ge-2.75-100,127,GE-100_2750,, +E-101/3500,True,True,False,True,74; 99,2,Enercon,15,E-101/3500 E2,3500000,437,2,8011,101,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,3,E-101_3500,IEC/EN IA,WZ 4 GK I; WZ 4 GK II +E-126/4200,True,True,False,True,99; 135; 159,1,Enercon,12,E-126/4200 EP4,4200000,331,3,12666,127,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,2,E-126_4200,IEC/EN IA; IEC/EN IIA,WZ4 GK I; WZ4 GK II; WZ3 GK I; WZ3 GK II +E-101/3050,True,True,False,True,99; 124; 135; 149,4,Enercon,15,E-101/3050 E2,3050000,381,3,8011,101,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,5,E-101_3050,IEC/EN IIA,WZ III; WZ 4 GK I +AW70/1500,,False,False,False,60; 80,32,Nordex,20,,1500000,390,3,3848,70,http://www.acciona-windpower.com/products-and-services/aw1500/aw701500/; https://www.wind-turbine-models.com/turbines/777-acciona-aw-70-1500,34,AW-70_1500,IEC la, +N131/3900,,False,False,False,84; 106; 112; 134,14,Nordex,,,3900000,289,4,13477,131,http://www.nordex-online.com/de/produkte-service/windenergieanlagen/; https://www.wind-turbine-models.com/turbines/1583-nordex-n-131-3900-delta,16,N-131_3900,, +MM82/2050,,False,False,False,,98,Senvion/REpower,,MM82,2050000,,,5280,82,,105,MM-82_2050,, +SWT130/4000,,False,False,False,90; 89.5,59,Siemens,,SWT-4.0-130,4000000,,,13272,130,,64,SWT-130_4000,, +E-115/3000,True,True,False,True,92; 122; 135; 149,5,Enercon,13,E-115/3000,3000000,285,4,10512,116,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,6,E-115_3000,IEC/EN IIA,WZIII; WZ4 GKI; WZ4 GK II +E-82/3000,True,True,False,True,69; 78; 84,6,Enercon,18,E-82/3000,3000000,568,2,5280,82,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,7,E-82_3000,IEC/EN IA; IEC/EN IIA, +GE150/6000,,False,False,False,100; side spec,110,GE Wind,,Haliade 150-6MW,6000000,,,17906,151,https://www.gerenewableenergy.com/wind-energy/turbines/offshore-turbine-haliade; https://www.wind-turbine-models.com/turbines/1446-general-electric-haliade-150-6mw,119,GE-150_6000,Ib, +E-92/2350,True,True,False,True,69; 78; 84; 85; 98; 104; 108; 138,7,Enercon,16,E-92/2350,2350000,354,3,6647,92,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,8,E-92_2350,IEC/EN IIA,WZ III; WZ 4 GK I; WZ 4 GK II +E-82/2350,True,True,False,True,59; 69; 78; 84,8,Enercon,18,E-82/2350,2350000,445,2,5280,82,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,9,E-82_2350,IEC/EN IA; IEC/EN IIA,WZ 4 GK I +E-82/2300,True,True,False,True,78; 84; 85; 98; 108; 138,9,Enercon,18,E-82/2300 E2,2300000,436,2,5280,82,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,10,E-82_2300,IEC/EN IIA,WZ III; WZ 4; WZ 4 GK I +E-70/2300,True,True,False,True,57; 64; 75; 85; 98; 114,10,Enercon,21,E-70/2300 E4,2300000,581,2,3959,71,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,11,E-70_2300,IEC/EN IA; IEC/EN IIA,WZ III; WZ 4 GK I; WZ 4 GK II +E-82/2000,True,True,False,True,78; 84; 85; 98; 108; 138,11,Enercon,18,E-82/2000 E2,2000000,379,3,5280,82,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,12,E-82_2000,IEC/EN IIA,WZ III; WZ 4; WZ 4 GK I +E-70/2000,,False,False,True,57; 64; 75; 85; 98; 114,12,Enercon,22,E-70/2000,2000000,505,2,3959,71,https://www.thewindpower.net/turbine_en_174_enercon_e70-2000.php,13,E-70_2000,, +E-53/800,True,True,False,True,50; 60; 73,13,Enercon,30,E-53/800,800000,364,3,2198,53,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,14,E-53_800,IEC SA,WZ II exp.; WZ 3 GKI; WZ 4 GK II +V136/3450,True,False,False,False,82; 112; 132; 149,36,Vestas,,V136-3.45 MW,3450000,238,4,14525,136,https://www.vestas.com/en/products/turbines; https://www.wind-turbine-models.com/turbines/1282-vestas-v136-3.45,39,V-136_3450,, +N100/3300,,False,False,False,75;85;100,21,Nordex,,,3300000,,,7853,100,,23,N-100_3300,, +AD180/8000,,False,False,False,,79,Adwen/Areva,8,AD 8-180,8000000,314,3,25444,180,https://www.wind-turbine-models.com/turbines/1124-adwen-ad-8-180;,85,AD-180_8000,IEC Ib, +AD116/5000,True,False,False,True,90;102,82,Adwen/Areva,15,M5000-116,5000000,473,2,10567,116,https://www.wind-turbine-models.com/turbines/23-areva-m5000-116 ; https://www.thewindpower.net/turbine_en_1048_adwen_ad-5-132.php,88,AD-116_5000,, +GE130/3200,True,True,True,True,85;110;134;155,114,GE Wind,,GE 3.2-130,3200000,,,13272,130,https://www.wind-turbine-models.com/turbines/1290-general-electric-ge-3.2-130,123,GE-130_3200,IIIa,2 +AD135/5000,,False,False,False,,83,Adwen/Areva,14,M5000-135,5000000,349,3,14312,135,https://www.wind-turbine-models.com/turbines/686-areva-m5000-135,89,AD-135_5000,IEC I (GL-TK 1 & GL-TK S), +GE120/2750,True,True,True,True,85; 98.3; 110; 139,116,GE Wind,,GE 2.75-120,2750000,,,11308,120,https://www.wind-turbine-models.com/turbines/983-general-electric-ge-2.75-120,125,GE-120_2750,, +GE103/2750,True,True,True,True, 75;85;98.3;123.5,117,GE Wind,,GE 2.75-103,2750000,,,8331,103,https://www.wind-turbine-models.com/turbines/747-general-electric-ge-2.75-103,126,GE-103_2750,, +GE120/2500,True,True,True,True,110; 139,119,GE Wind,,GE 2.5-120,2500000,,,11308,120,https://www.wind-turbine-models.com/turbines/310-general-electric-ge-2.5-120,128,GE-120_2500,, +GE100/2500,True,False,False,True,75/85,121,GE Wind,,GE 2.5-100,2500000,,,7853,100,https://www.wind-turbine-models.com/turbines/641-general-electric-ge-2.5-100,130,GE-100_2500,, +ENO126/3500,True,True,True,True,117; 137; 165,124,Eno,,ENO 126 3.5,3500000,,,12467,126,https://www.wind-turbine-models.com/turbines/653-eno-energy-eno-126-3.5,135,ENO-126_3500,, +ENO114/3500,True,True,True,True,"92; 127,5; 142",127,Eno,,ENO 114 3.5,3500000,,,10206,114,https://www.wind-turbine-models.com/turbines/283-eno-energy-eno-114-3.5,138,ENO-114_3500,, +ENO100/2200,True,True,True,True,99,128,Eno,,ENO 100,2200000,,,7853,100,https://www.wind-turbine-models.com/turbines/651-eno-energy-eno-100,139,ENO-100_2200,, +E-126/7580,,False,False,True,127,139,Enercon,,E-126/7580,7580000,,,12668,127,https://www.thewindpower.net/turbine_en_600_enercon_e126-7580.php,151,E-126_7580,,Ia (DIBt WZ III) +E-141/4200,True,True,False,True,99; 129; 135; 159,0,Enercon,11,E-141/4200 EP 4,4200000,269,4,15613,141,https://www.enercon.de/fileadmin/Redakteur/Medien-Portal/broschueren/pdf/ENERCON_Produkt_de_042017.pdf; https://www.wind-turbine-models.com/turbines/,1,E-141_4200,IEC/EN IIA,WZ3 GK I; WZ3 GK I +MM92/2050,False,False,False,True,"68,5;80,0;100,0",97,Senvion/REpower,15,MM92,2050000,305,3,6719,93,http://www.windenergie-im-binnenland.de/powercurve.php,104,MM-92_2050,IEC IIa, +SWT120/6000,,False,False,False,90;,58,Siemens,13,SWT-6.0-120,6000000,319,3,11308,120,https://www.wind-turbine-models.com/turbines/646-siemens-swt-3.6-120-onshore,63,SWT-120_6000,IEC Ia, +SCD168/8000,,False,False,True,,137,aerodyn,,SCD 168 8000,8000000,,,22164,168,https://www.wind-turbine-models.com/turbines/1116-aerodyn-scd-8.0-168,149,SCD168_8000,, +E-126/7500,,False,False,True,125,138,Enercon,,E-126/7500,7500000,2,,12666,127,https://www.thewindpower.net/turbine_en_225_enercon_e126-7500.php,150,E-126_7500,, +AW116/3000,,False,False,False,92; 100; 120,28,Nordex,,,3000000,,,10567,116,,30,AW-116_3000,, +AW100/3000,,False,False,False,100;,29,Nordex,,,3000000,,,7853,100,,31,AW-100_3000,, +AW140/3000,,False,False,False,,25,Nordex,,,3000000,,,15392,140,,27,AW-140_3000,, +AW132/3000,,False,False,False,84; 120,26,Nordex,,,3000000,,,13683,132,,28,AW-132_3000,, +AW125/3000,,False,False,False,"87,5; 100; 120; 137,5",27,Nordex,,,3000000,,,12270,125,,29,AW-125_3000,, +AW82/1500,,False,False,False,80,30,Nordex,17,,1500000,284,4,5280,82,http://www.acciona-windpower.com/products-and-services/aw1500/aw821500/; https://www.wind-turbine-models.com/turbines/585-acciona-aw-82-1500,32,AW-82_1500,IEC lla, +N117/3600,,False,False,False,91; 120; 141,18,Nordex,,,3600000,,,10750,117,,20,N-117_3600,, +N117/3000,,False,False,False,91; 120; 141,19,Nordex,,,3000000,,,10750,117,,21,N-117_3000,, +N131/3600,True,True,True,True,84; 106; 112; 134,15,Nordex,14,,3600000,267,4,13477,131,http://www.nordex-online.com/de/produkte-service/windenergieanlagen/; https://www.wind-turbine-models.com/turbines/1466-nordex-n-131-3600-delta,17,N-131_3600,IEC SA, +N131/3300,,True,True,True,134; 164,16,Nordex,,,3300000,,,13477,131,http://www.windenergie-im-binnenland.de/powercurve.php,18,N-131_3300,, +N131/3000,,True,True,True,99; 114; 134,17,Nordex,,,3000000,,,13477,131,http://www.windenergie-im-binnenland.de/powercurve.php,19,N-131_3000,, +N117/2400,,True,True,True,91; 120; 141,20,Nordex,20,,2400000,224,5,10713,117,https://www.en.wind-turbine-models.com/turbines/96-nordex-n-117-gamma,22,N-117_2400,IEC 3, +N100/2500,,True,True,True,75;85;100,22,Nordex,,,2500000,,,7853,100,,24,N-100_2500,, +N90/2500,,True,True,True,65;70;80,23,Nordex,,,2500000,,,6361,90,http://www.windenergie-im-binnenland.de/powercurve.php,25,N-90_2500,, +AW77/1500,,False,False,False,60; 71.5; 80,31,Nordex,18,,1500000,325,3,4656,77,http://www.acciona-windpower.com/products-and-services/aw1500/aw771500/; https://www.wind-turbine-models.com/turbines/778-acciona-aw-77-1500,33,AW-77_1500,IEC lla +, +N80/2500,,False,False,False,,24,Nordex,,,2500000,,,5026,80,,26,N-80_2500,, +S114/3200,,False,False,True,93; 119; 123; 143,93,Senvion/REpower,12,3.2M114 NES,3200000,,,10206,114,http://www.windenergie-im-binnenland.de/powercurve.php,100,S-114_3200,IEC IIA,4 +S152/6330,True,False,False,True,121; 125,84,Senvion/REpower,10,6.3M152,6330000,349,3,18144,152,https://www.senvion.com/global/en/products-services/wind-turbines/6xm/63m152/; https://www.wind-turbine-models.com/turbines/1714-senvion-6.3m152-onshore; https://www.wind-turbine-models.com/turbines/1713-senvion-6.3m152-offshore,91,S-152_6330,, +S126/6150,True,False,False,True,95; 110; 112; 114; 117,86,Senvion/REpower,12,6.2M126,6150000,493,2,12467,126,https://www.senvion.com/global/en/products-services/wind-turbines/6xm/62m126/; https://www.wind-turbine-models.com/turbines/887-senvion-6.2m152-offshore; https://www.wind-turbine-models.com/turbines/884-senvion-6.2m126-onshore,93,S-126_6150,IEC Ib/ IEC S,4 +S114/3600,True,False,False,False,90; 116; 119,87,Senvion/REpower,12,3.6M114 NES,3600000,353,3,10206,114,https://www.senvion.com/global/en/products-services/wind-turbines/3xm/36m114-nes/; https://www.wind-turbine-models.com/turbines/1715-senvion-3.6m114,94,S-114_3600,, +S140/3600,True,False,False,False,110; 130; 160,88,Senvion/REpower,10,3.4M140 EBC,3600000,234,4,15392,140,https://www.senvion.com/global/en/products-services/wind-turbines/3xm/36m140-ebc/; https://www.wind-turbine-models.com/turbines/1555-senvion-3.6m140,95,S-140_3600,, +S114/3400,True,True,True,True,93; 119; 123; 143,89,Senvion/REpower,12,3.4M114,3400000,331,3,10206,114,https://www.wind-turbine-models.com/turbines/1003-senvion-3.4m114,96,S-114_3400,, +S104/3400,True,False,False,True,73;80;93;100,90,Senvion/REpower,,3.4M104,3400000,,,8494,104,https://www.senvion.com/global/en/products-services/wind-turbines/3xm/34m104/;,97,S-104_3400,, +S122/3400,True,False,False,False,139;,91,Senvion/REpower,,3.4M122 NES,3400000,,,11688,122,https://www.senvion.com/global/en/products-services/wind-turbines/3xm/34m122-nes/;,98,S-122_3400,, +S140/3400,True,False,False,False,93;119;123;143,92,Senvion/REpower,,3.4M140 EBC,3400000,,,15392,140,https://www.senvion.com/global/en/products-services/wind-turbines/3xm/34m140-ebc/;,99,S-140_3400,, +S122/3000,,True,True,True,136;139,95,Senvion/REpower,,3.0M122,3000000,,,11688,122,http://www.windenergie-im-binnenland.de/powercurve.php,102,S-122_3000,, +MM100/2000,True,True,True,True,,96,Senvion/REpower,14,MM100,2000000,255,4,7853,100,http://www.windenergie-im-binnenland.de/powercurve.php,103,MM-100_2000,IEC IIb,3 +S122/3200,,True,True,True,139;,94,Senvion/REpower,,3.2M122,3200000,,,11688,122,http://www.windenergie-im-binnenland.de/powercurve.php,101,S-122_3200,, +S152/6150,True,False,False,False,85; 95; 121; 124,85,Senvion/REpower,10,6.2M152,6150000,339,3,18144,152,https://www.senvion.com/global/en/products-services/wind-turbines/6xm/62m152/; https://www.wind-turbine-models.com/turbines/1713-senvion-6.3m152-offshore; https://www.wind-turbine-models.com/turbines/885-senvion-6.2m126-offshore,92,S-152_6150,, +SWT154/6000,,False,False,False,,57,Siemens,11,SWT-6.0-154,6000000,323,3,18624,154,https://www.wind-turbine-models.com/turbines/657-siemens-swt-6.0-154,62,SWT-154_6000,IEC Ia, +SWT154/7000,,False,False,False,,56,Siemens,,SWT-7.0-154,7000000,,,18624,154,,61,SWT-154_7000,, +SWT113/3000,,False,False,False,79.5; 92.5; 99.5; 122; 142,68,Siemens,16,SWT-3.0-113,3000000,300,3,10027,113,,73,SWT-113_3000,, +SWT130/3300,,True,True,True,85;110;120;135,63,Siemens,,SWT-3.3-130,3300000,,,13272,130,http://www.windenergie-im-binnenland.de/powercurve.php,68,SWT-130_3300,, +SWT113/3200,,True,True,True,79.5;92.5;99.5;122;142,64,Siemens,,SWT-3.2-113,3200000,,,10027,113,http://www.windenergie-im-binnenland.de/powercurve.php,69,SWT-113_3200,, +SWT108/3200,,False,False,False,79.5,65,Siemens,,SWT-3.2-108,3200000,,,9160,108,,70,SWT-108_3200,, +SWT101/3200,,False,False,False,74.5;79.5;89.5;94;99.5,66,Siemens,,SWT-3.2-101,3200000,,,8011,101,,71,SWT-101_3200,, +SWT142/3150,,True,True,True,109;129;165,67,Siemens,,SWT-3.15-142,3150000,,,15835,142,http://www.windenergie-im-binnenland.de/powercurve.php,72,SWT-142_3150,, +SWT108/3000,,False,False,False,79.5,69,Siemens,,SWT-3.0-108,3000000,,,9160,108,,74,SWT-108_3000,, +SWT101/3000,,False,False,False,80;115;142.5,70,Siemens,,SWT-3.0-101,3000000,,,8011,101,,75,SWT-101_3000,, +SWT130/3600,,True,True,True,85;115;135;165,60,Siemens,,SWT-3.6-130,3600000,,,13272,130,http://www.windenergie-im-binnenland.de/powercurve.php,65,SWT-130_3600,, +SWT120/3600,,True,True,True,90;,61,Siemens,,SWT-3.6-120,3600000,,,11308,120,http://www.windenergie-im-binnenland.de/powercurve.php,66,SWT-120_3600,, +SWT107/3600,,False,False,False,80;,62,Siemens,,SWT-3.6-107,3600000,,,8991,107,,67,SWT-107_3600,, +SWT120/2500,,False,False,False,85.1;92,71,Siemens,,SWT-2.5-120,2500000,,,11308,120,,76,SWT-120_2500,, +SWT120/2300,,False,False,False,80;92.4,72,Siemens,,SWT-2.3-120,2300000,,,11308,120,,77,SWT-120_2300,, +V80/2000,True,False,False,True,60;67;78;80;100,55,Vestas,,V80-2.0 MW,2000000,,,5026,80,https://www.thewindpower.net/turbine_en_30_vestas_v80-2000.php,59,V-80_2000,, +SWT113/2300,,True,True,True,99.5,73,Siemens,,SWT-2.3-113,2300000,,,10027,113,http://www.windenergie-im-binnenland.de/powercurve.php,78,SWT-113_2300,, +SWT108/2300,,False,False,False,80;,74,Siemens,,SWT-2.3-108,2300000,,,9160,108,,79,SWT-108_2300,, +SWT101/2300,,False,False,False,80;,75,Siemens,,SWT-2.3-101,2300000,,,8011,101,,80,SWT-101_2300,, +SWT93/2300,,False,False,False,80;,76,Siemens,,SWT-2.3-93,2300000,,,6792,93,,81,SWT-93_2300,, +SWT82/2300,,False,False,False,80;,77,Siemens,,SWT-2.3-82,2300000,,,5280,82,,82,SWT-82_2300,, +SWT62/1300,,False,False,False,68-90,78,Siemens,,SWT-1.3-62,1300000,,,3019,62,,83,SWT-62_1300,, +V117/4200,True,False,False,False,84 ; 91.5,45,Vestas,,V117-4.2 MW,4200000,,,10750,117,,49,V-117_4200,IEC IIA, +V136/4200,,False,False,False,,35,Vestas,,V136-4.2 MW,4200000,,,14525,136,,38,V-136_4200,, +V105/3450,,False,False,False,,37,Vestas,,V105-3.45 MW,3450000,,,8658,105,,41,V-105_3450,, +V164/8000,,False,False,True,105; 140,33,Vestas,,V164-8.0 MW,8000000,,,21121,164,https://www.wind-turbine-models.com/turbines/1419-mhi-vestas-offshore-v164-8.0-mw,36,V-164_8000,, +V150/4200,,False,False,False,,34,Vestas,,V150-4.2 MW,4200000,,,17669,150,,37,V-150_4200,, +V117/4000,True,False,False,False,84 ; 91.5,46,Vestas,,V117-4.0 MW,4000000,,,10750,117,,50,V-117_4000,, +V120/2200,,False,False,False,80; 92; 118; 122; 137,38,Vestas,,V120-2.2 MW,2200000,,,11308,120,,42,V-120_2200,, +V116/2100,,False,False,False,84; 94,39,Vestas,,V116-2.1 MW,2100000,,,10567,116,,43,V-116_2100,, +V110/2000,,False,False,False,80;95;125,40,Vestas,,V110-2.0 MW,2000000,,,9502,110,,44,V-110_2000,, +V100/2000,,False,False,False,80; 95; 120,41,Vestas,,V100-2.0 MW,2000000,,,7853,100,,45,V-100_2000,, +V126/3450,True,True,True,True,117; 137; 147; 149,42,Vestas,,V126-3.45 MW,3450000,277,4,12467,126,https://www.vestas.com/en/products/turbines; https://www.wind-turbine-models.com/turbines/1249-vestas-v126-3.45,46,V-126_3450,, +V126/3300,True,True,True,True,117;137,43,Vestas,,V126-3.3 MW,3300000,265,4,12467,126,https://www.wind-turbine-models.com/turbines/695-vestas-v126-3.3; https://www.vestas.com/en/products/turbines; https://www.wind-turbine-models.com/turbines/695-vestas-v126-3.3,47,V-126_3300,IEC IIIa, +VS87/1500,,False,False,False,85;100,106,Vensys,,VENSYS87 1.5MW,1500000,,,5944,87,,114,VS-87_1500,, +VS112/2500,,False,False,True,93.5;143.5,103,Vensys,,VENSYS112 2.5MW,2500000,,,9851,112,,111,VS-112_2500,, +V126/3000,True,True,True,True,119,44,Vestas,,V126-3.0 MW,3000000,,,12467,126,https://www.wind-turbine-models.com/turbines/1345-vestas-v126-3.0,48,V-126_3000,, +V117/3450,True,True,True,True,91.5; 116.5; 141.5,47,Vestas,,V117-3.45 MW,3450000,321,3,10750,117,https://www.vestas.com/en/products/turbines; https://www.wind-turbine-models.com/turbines/1248-vestas-v117-3.45,51,V-117_3450,, +V117/3300,True,True,True,True,91.5; 116.5,48,Vestas,,V117-3.3 MW,3300000,,,10750,117,,52,V-117_3300,, +V112/3450,True,True,True,True,84;,49,Vestas,,V112-3.45 MW,3450000,350,3,9851,112,https://www.vestas.com/en/products/turbines; https://www.wind-turbine-models.com/turbines/1247-vestas-v112-3.45,53,V-112_3450,, +VS136/3500,,False,False,False,,99,Vensys,,VENSYS136 3.5MW,3500000,,,14525,136,http://www.vensys.de/energy/produkte-und-service/vensys-3-mw.php,107,VS-136_3500,, +VS82/1500,,False,False,False,85;,107,Vensys,,VENSYS82 1.5MW,1500000,,,5280,82,,115,VS-82_1500,, +VS100/2500,,False,False,False,100;,105,Vensys,,VENSYS100 2.5MW,2500000,,,7853,100,,113,VS-100_2500,, +V112/3300,True,True,True,True,84; 94; 119; 140,50,Vestas,,V112-3.3 MW,3300000,335,3,9851,112,,54,V-112_3300,, +V112/3075,True,True,True,True,84; 94; 119,51,Vestas,18,V112-3.075 MW,3075000,312,3,9851,112,https://www.wind-turbine-models.com/turbines/7-vestas-v112-onshore,55,V-112_3075,IIa, +V112/3000,,True,True,True,,52,Vestas,,V112-3.0 MW,3000000,,,9851,112,http://www.windenergie-im-binnenland.de/powercurve.php,56,V-112_3000,, +V90/3000,,False,False,True,80;,53,Vestas,,V90-3.0 MW,3000000,,,6361,90,https://www.wind-turbine-models.com/turbines/16-vestas-v90 https://www.researchgate.net/figure/Electric-Power-output-kW-table-of-Vesta-V90-3-MW-54_fig3_324816253,57,V-90_3000,IEC IIA/IEC S, +V90/2000,True,True,False,True,80;,54,Vestas,,V90-2.0 MW,2000000,314,3,6361,90,https://www.wind-turbine-models.com/turbines/16-vestas-v90,58,V-90_2000,IEC IIA/IEC S, +VS120/3000,,False,False,False,90;140,101,Vensys,,VENSYS120 3.0MW,3000000,,,11308,120,http://www.vensys.de/energy/produkte-und-service/vensys-3-mw.php,109,VS-120_3000,, +VS112/3000,,False,False,False,93.5; 140,102,Vensys,,VENSYS112 3.0MW,3000000,,,9851,112,http://www.vensys.de/energy/produkte-und-service/vensys-3-mw.php,110,VS-112_3000,, +V164/9500,,False,False,True,105; 140,131,Vestas,,,9500000,,,21121,164,http://www.mhivestasoffshore.com/; engauge digitizer; https://www.thewindpower.net/turbine_en_1476_mhi-vestas-offshore_v164-9500.php,143,V-164_9500,, +V90/2000/GS,,True,True,True,,133,Vestas,,V90/2000 GS,2000000,,,6361,90,http://www.windenergie-im-binnenland.de/powercurve.php,145,V-90_2000_GS,, +V100/1800,,True,True,True,,134,Vestas,,V100/1800,1800000,,,7853,100,http://www.windenergie-im-binnenland.de/powercurve.php,146,V-100_1800,, +V100/1800/GS,,True,True,True,,135,Vestas,,V100/1800 GS,1800000,,,7853,100,http://www.windenergie-im-binnenland.de/powercurve.php,147,V-100_1800_GS,, +V117/3600,,True,True,True,,136,Vestas,,V117-3.6,3600000,,,10750,117,http://www.windenergie-im-binnenland.de/powercurve.php,148,V-117_3600,, +VS109/2500,,False,False,False,95;145,104,Vensys,,VENSYS109 2.5MW,2500000,,,9330,109,,112,VS-109_2500,Iia,3 +VS77/1500,,False,False,False, 61.5;85;100,108,Vensys,,VENSYS77 1.5MW,1500000,,,4656,77,,116,VS-77_1500,, +VS70/1500,,False,False,False,65;85,109,Vensys,,VENSYS70 1.5MW,1500000,,,3848,70,,117,VS-70_1500,, +VS136/3000,,False,False,False,82;100;132,100,Vensys,,VENSYS136 3.0MW,3000000,,,14525,136,http://www.vensys.de/energy/produkte-und-service/vensys-3-mw.php,108,VS-136_3000,, diff --git a/windpowerlib/modelchain.py b/windpowerlib/modelchain.py index 128d3b77..d9def99a 100644 --- a/windpowerlib/modelchain.py +++ b/windpowerlib/modelchain.py @@ -7,8 +7,14 @@ SPDX-License-Identifier: MIT """ import logging -import pandas as pd -from windpowerlib import wind_speed, density, temperature, power_output, tools +from windpowerlib import ( + wind_speed, + density, + temperature, + power_output, + tools, + data, +) class ModelChain(object): @@ -494,7 +500,7 @@ def run_model(self, weather_df): --------- >>> import numpy as np >>> import pandas as pd - >>> weather_df=pd.DataFrame(np.random.rand(2,6), + >>> my_weather_df = pd.DataFrame(np.random.rand(2,6), ... index=pd.date_range('1/1/2012', ... periods=2, ... freq='H'), @@ -506,11 +512,11 @@ def run_model(self, weather_df): ... 'roughness_length']), ... np.array([10, 80, 10, 80, ... 10, 0])]) - >>> weather_df.columns.get_level_values(0)[0] + >>> my_weather_df.columns.get_level_values(0)[0] 'wind_speed' """ - weather_df = tools.check_weather_data(weather_df) + weather_df = data.check_weather_data(weather_df) wind_speed_hub = self.wind_speed_hub(weather_df) density_hub = ( diff --git a/windpowerlib/power_curves.py b/windpowerlib/power_curves.py index 00549a01..43df0071 100644 --- a/windpowerlib/power_curves.py +++ b/windpowerlib/power_curves.py @@ -266,3 +266,24 @@ def wake_losses_to_power_curve( "but is {}".format(type(wind_farm_efficiency)) ) return power_curve_df + + +def create_power_curve(wind_speed, power): + """ + A list, numpy.array, pandas.Series or other iterables can be passed to + define the wind speed and the power output. Make sure that the order is + not mutable because, values from both parameters will be used as value + pairs. + + Parameters + ---------- + wind_speed : iterable + A series of wind speed values in meter per second [m/s]. + power : iterable + A series of power values in Watt [W]. + + Returns + ------- + pandas.DataFrame + """ + return pd.DataFrame(data={"value": power, "wind_speed": wind_speed}) diff --git a/windpowerlib/tools.py b/windpowerlib/tools.py index f033e6b5..f6e4c136 100644 --- a/windpowerlib/tools.py +++ b/windpowerlib/tools.py @@ -6,8 +6,6 @@ SPDX-License-Identifier: MIT """ import numpy as np -import warnings -import pandas as pd class WindpowerlibUserWarning(UserWarning): @@ -227,30 +225,3 @@ def estimate_turbulence_intensity(height, roughness_length): """ return 1 / (np.log(height / roughness_length)) - - -def check_weather_data(weather_df): - """ - Check weather Data Frame. - - - Raise warning if there are nan values. - - Convert columns if heights are string and not numeric. - - """ - # Convert data heights to integer. In some case they are strings. - weather_df.columns = pd.MultiIndex.from_arrays( - [ - weather_df.columns.get_level_values(0), - pd.to_numeric(weather_df.columns.get_level_values(1)), - ] - ) - - # check for nan values - if weather_df.isnull().any().any(): - nan_columns = list(weather_df.columns[weather_df.isnull().any()]) - msg = ( - "The following columns of the weather data contain invalid " - "values like 'nan': {0}" - ) - warnings.warn(msg.format(nan_columns), WindpowerlibUserWarning) - return weather_df diff --git a/windpowerlib/turbine_cluster_modelchain.py b/windpowerlib/turbine_cluster_modelchain.py index 8f44f940..4f3258a5 100644 --- a/windpowerlib/turbine_cluster_modelchain.py +++ b/windpowerlib/turbine_cluster_modelchain.py @@ -8,9 +8,8 @@ SPDX-License-Identifier: MIT """ import logging -import pandas as pd from windpowerlib import wake_losses -from windpowerlib.modelchain import ModelChain, tools +from windpowerlib.modelchain import ModelChain, data class TurbineClusterModelChain(ModelChain): @@ -273,7 +272,7 @@ def run_model(self, weather_df): --------- >>> import numpy as np >>> import pandas as pd - >>> weather_df=pd.DataFrame(np.random.rand(2,6), + >>> my_weather_df = pd.DataFrame(np.random.rand(2,6), ... index=pd.date_range('1/1/2012', ... periods=2, ... freq='H'), @@ -285,11 +284,11 @@ def run_model(self, weather_df): ... 'roughness_length']), ... np.array([10, 80, 10, 80, ... 10, 0])]) - >>> weather_df.columns.get_level_values(0)[0] + >>> my_weather_df.columns.get_level_values(0)[0] 'wind_speed' """ - weather_df = tools.check_weather_data(weather_df) + weather_df = data.check_weather_data(weather_df) self.assign_power_curve(weather_df) self.power_plant.mean_hub_height() diff --git a/windpowerlib/wind_turbine.py b/windpowerlib/wind_turbine.py index 037ed825..1efef699 100644 --- a/windpowerlib/wind_turbine.py +++ b/windpowerlib/wind_turbine.py @@ -9,7 +9,6 @@ import pandas as pd import logging import warnings -import requests import os from windpowerlib.tools import WindpowerlibUserWarning from typing import NamedTuple @@ -409,218 +408,10 @@ def get_turbine_data_from_file(turbine_type, path): return wpp_df -def create_power_curve(wind_speed, power): - """ - A list, numpy.array, pandas.Series or other iterables can be passed to - define the wind speed and the power output. Make sure that the order is - not mutable because, values from both parameters will be used as value - pairs. - - Parameters - ---------- - wind_speed : iterable - A series of wind speed values in meter per second [m/s]. - power : iterable - A series of power values in Watt [W]. - - Returns - ------- - pandas.DataFrame - """ - return pd.DataFrame(data={"value": power, "wind_speed": wind_speed}) - - -def load_turbine_data_from_oedb(schema="supply", table="wind_turbine_library"): - r""" - Loads turbine library from the OpenEnergy database (oedb). - - Turbine data is saved to csv files ('oedb_power_curves.csv', - 'oedb_power_coefficient_curves.csv' and 'oedb_nominal_power') for offline - usage of the windpowerlib. If the files already exist they are overwritten. - - Parameters - ---------- - schema : str - Database schema of the turbine library. - table : str - Table name of the turbine library. - - Returns - ------- - :pandas:`pandas.DataFrame` - Turbine data of different turbines such as 'manufacturer', - 'turbine_type', 'nominal_power'. - - """ - # url of OpenEnergy Platform that contains the oedb - oep_url = "http://oep.iks.cs.ovgu.de/" - url = oep_url + "/api/v0/schema/{}/tables/{}/rows/?".format(schema, table) - - # load data - result = requests.get(url) - print(result.json()) - if not result.status_code == 200: - raise ConnectionError( - "Database (oep) connection not successful. \nURL: {2}\n" - "Response: [{0}] \n{1}".format( - result.status_code, result.text, url - ) - ) - - # extract data to dataframe - turbine_data = pd.DataFrame(result.json()) - # standard file name for saving data - filename = os.path.join(os.path.dirname(__file__), "oedb", "{}.csv") - # get all power (coefficient) curves and save to file - # for curve_type in ['power_curve', 'power_coefficient_curve']: - for curve_type in ["power_curve", "power_coefficient_curve"]: - curves_df = pd.DataFrame(columns=["wind_speed"]) - for index in turbine_data.index: - if ( - turbine_data["{}_wind_speeds".format(curve_type)][index] - and turbine_data["{}_values".format(curve_type)][index] - ): - df = ( - pd.DataFrame( - data=[ - eval( - turbine_data[ - "{}_wind_speeds".format(curve_type) - ][index] - ), - eval( - turbine_data["{}_values".format(curve_type)][ - index - ] - ), - ] - ) - .transpose() - .rename( - columns={ - 0: "wind_speed", - 1: turbine_data["turbine_type"][index], - } - ) - ) - curves_df = pd.merge( - left=curves_df, right=df, how="outer", on="wind_speed" - ) - curves_df = curves_df.set_index("wind_speed").sort_index().transpose() - # power curve values in W - if curve_type == "power_curve": - curves_df *= 1000 - curves_df.index.name = "turbine_type" - curves_df.to_csv(filename.format("{}s".format(curve_type))) - - # get turbine data and save to file (excl. curves) - turbine_data_df = turbine_data.drop( - [ - "power_curve_wind_speeds", - "power_curve_values", - "power_coefficient_curve_wind_speeds", - "power_coefficient_curve_values", - "thrust_coefficient_curve_wind_speeds", - "thrust_coefficient_curve_values", - ], - axis=1, - ).set_index("turbine_type") - # nominal power in W - turbine_data_df["nominal_power"] *= 1000 - turbine_data_df.to_csv(filename.format("turbine_data")) - return turbine_data - - def get_turbine_types(turbine_library="local", print_out=True, filter_=True): - r""" - Get all provided wind turbine types provided. - - Choose by `turbine_library` whether to get wind turbine types provided by - the OpenEnergy Database ('oedb') or wind turbine types provided in your - local file(s) ('local'). - By default only turbine types for which a power coefficient curve or power - curve is provided are returned. Set `filter_=False` to see all turbine - types for which any data (e.g. hub height, rotor diameter, ...) is - provided. - - Parameters - ---------- - turbine_library : str - Specifies if the oedb turbine library ('oedb') or your local turbine - data file ('local') is evaluated. Default: 'local'. - print_out : bool - Directly prints a tabular containing the turbine types in column - 'turbine_type', the manufacturer in column 'manufacturer' and - information about whether a power (coefficient) curve exists (True) or - not (False) in columns 'has_power_curve' and 'has_cp_curve'. - Default: True. - filter_ : bool - If True only turbine types for which a power coefficient curve or - power curve is provided in the oedb turbine library are - returned. Default: True. - - Returns - ------- - :pandas:`pandas.DataFrame` - Contains turbine types in column 'turbine_type', the manufacturer in - column 'manufacturer' and information about whether a power - (coefficient) curve exists (True) or not (False) in columns - 'has_power_curve' and 'has_cp_curve'. - - Notes - ----- - If the power (coefficient) curve of the desired turbine type (or the - turbine type itself) is missing you can contact us via github or - windpowerlib@rl-institut.de. You can help us by providing data in the - format as shown in - `the data base `_. - - Examples - -------- - >>> from windpowerlib import wind_turbine - >>> my_df=wind_turbine.get_turbine_types(print_out=False) - >>> print(my_df[my_df["turbine_type"].str.contains("E-126")].iloc[0]) - manufacturer Enercon - turbine_type E-126/4200 - has_power_curve True - has_cp_curve True - Name: 5, dtype: object - >>> print(my_df[my_df["manufacturer"].str.contains("Enercon")].iloc[0]) - manufacturer Enercon - turbine_type E-101/3050 - has_power_curve True - has_cp_curve True - Name: 1, dtype: object - - """ - if turbine_library == "local": - filename = os.path.join( - os.path.dirname(__file__), "oedb", "turbine_data.csv" - ) - df = pd.read_csv(filename, index_col=0).reset_index() - elif turbine_library == "oedb": - df = load_turbine_data_from_oedb() - else: - raise ValueError( - "`turbine_library` is '{}' ".format(turbine_library) - + "but must be 'local' or 'oedb'." - ) - if filter_: - cp_curves_df = df.loc[df["has_cp_curve"]][ - ["manufacturer", "turbine_type", "has_cp_curve"] - ] - p_curves_df = df.loc[df["has_power_curve"]][ - ["manufacturer", "turbine_type", "has_power_curve"] - ] - curves_df = pd.merge( - p_curves_df, cp_curves_df, how="outer", sort=True - ).fillna(False) - else: - curves_df = df[ - ["manufacturer", "turbine_type", "has_power_curve", "has_cp_curve"] - ] - if print_out: - pd.set_option("display.max_rows", len(curves_df)) - print(curves_df) - pd.reset_option("display.max_rows") - return curves_df + print(turbine_library, print_out, filter_) + msg = ( + "\nUse >>from windpowerlib import get_turbine_types<< not" + ">>from windpowerlib.wind_turbine import get_turbine_types<<." + ) + raise ImportError(msg)