{ "cells": [ { "cell_type": "markdown", "id": "2fd8e731", "metadata": {}, "source": [ "# Get data async example\n", "\n", "This notebook shows how to use the ``get_data`` method to get data from the AsyncAPI.\n", "\n", "API-24SEA endpoint: [https://api.24sea.eu/routes/v1/datasignals/data](https://api.24sea.eu/docs/v1/#/operations/datasignals_metrics_data)\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "a3000fdc", "metadata": {}, "outputs": [], "source": [ "# **Package Imports**\n", "# - From the Python Standard Library\n", "import logging\n", "import os\n", "import sys\n", "\n", "# - API-24SEA\n", "from api_24sea.version import __version__, parse_version\n", "from api_24sea.datasignals.core import AsyncAPI\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "9335e659", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Package Version(major=2, minor=1, patch=6, release=None, num=None)\n" ] } ], "source": [ "# **Package Version**\n", "print(f\"Package {parse_version(__version__)}\")\n", "\n", "# **Notebook Configuration**\n", "logger = logging.getLogger()\n", "logger.setLevel(logging.WARNING)\n" ] }, { "cell_type": "markdown", "id": "35363943", "metadata": {}, "source": [ "
\n", "

Login Credentials

\n", " \n", " \n", " \n", " \n", "

Do not store API credentials in plain text in your notebook. Rather use the python-dotenv package to load environment variables from a .env file.

\n", "
" ] }, { "cell_type": "code", "execution_count": 3, "id": "a4a704f8", "metadata": {}, "outputs": [], "source": [ "# **Set Sample API Credentials**\n", "os.environ[\"API_24SEA_USERNAME\"] = \"Sample.User\"\n", "os.environ[\"API_24SEA_PASSWORD\"] = \"CheckOutSomeData!\"\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "e7b5b41d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Package Version(major=2, minor=1, patch=6, release=None, num=None)\n" ] } ], "source": [ "# **Package Versions**\n", "print(f\"Package {parse_version(__version__)}\")\n", "# **Notebook Configuration**\n", "logger = logging.getLogger()\n", "logger.setLevel(logging.WARNING)\n" ] }, { "cell_type": "markdown", "id": "8b4638a7", "metadata": {}, "source": [ "### Accessing the data\n", "\n", "The data can be accessed in different formats, depending on the use case. The default format is a wide format, where each metric is a column and the site and location columns are added as dimensions. The resulting DataFrame is indexed by timestamp and sorted by index.\n", "\n", "The required credentials to access the data can be set as environment variables, or passed as arguments to the `API initialization` class.\n", "\n", "API Initialization can be done in three ways:\n", "\n", "* synchrnonously via `API` class,\n", "* asynchronously via Pandas `datasignals` accessor\n", "* asynchronously via `AsyncAPI` class.\n", "\n", "The synchronous way is the most straightforward and is suitable for most use cases. The asynchronous way is more efficient when dealing with large datasets, as it allows to fetch data in parallel.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "3d7fa16a", "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "fff9b661e63c4e53877e15ba69d52c03", "version_major": 2, "version_minor": 0 }, "text/plain": [ "API-24SEA get_data: 0%| | 0/1 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
mean_WF_A01_pitchmean_WF_A01_powermean_WF_A01_rpmmean_WF_A01_winddirectionmean_WF_A01_windspeedmean_WF_A01_yawmean_WF_A01_TP_INC_LAT015_DEG240_X_nr1mean_WF_A01_TP_INC_LAT015_DEG240_Y_nr2mean_WF_A02_pitchmean_WF_A02_powermean_WF_A02_rpmmean_WF_A02_winddirectionmean_WF_A02_windspeedmean_WF_A02_yawmean_WF_A02_TP_INC_LAT015_DEG240_X_nr1mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2
timestamp
2020-03-01 00:00:00+00:0066.398788-41.4697500.58450149.6492114.756602154.9428610.014474-0.13650466.398788-42.3726090.00000051.5667484.418833155.442861-0.006030-0.017105
2020-03-01 00:10:00+00:0066.398788-41.7302770.41542136.5400623.286199154.6798610.014559-0.13570266.398788-43.0830640.00000035.6732373.965547141.050661-0.005865-0.016555
2020-03-01 00:20:00+00:0066.398788-41.6388040.00000048.9836732.772254118.4063610.011589-0.13064366.398788-41.6781090.00000044.9348122.456694128.642861-0.006446-0.016817
2020-03-01 00:30:00+00:0066.398788-41.4644620.00000042.5645423.068091124.4395610.010997-0.12866466.398788-41.8207200.00000037.6051522.492990128.642861-0.007844-0.018391
2020-03-01 00:40:00+00:0066.398788-41.5695600.00000045.8483652.258143132.9428610.010591-0.12964466.398788-42.3448670.00000033.0246452.127543128.642861-0.008401-0.018518
...................................................
2020-05-31 23:10:00+00:0045.427588204.2171826.966832197.9258338.75247987.0346610.053218-0.23677845.233588266.6718477.00615354.3594448.84031899.2428610.046481-0.023932
2020-05-31 23:20:00+00:0050.68528877.3311985.043291213.8414019.02875987.0428610.061246-0.21449145.171388284.8824826.990850211.9054029.28233491.0058610.050933-0.027713
2020-05-31 23:30:00+00:0045.030288230.4455806.973209260.7301048.97920484.8186610.052135-0.24020345.070488284.5689356.970233240.8725279.04036181.9428610.056390-0.029176
2020-05-31 23:40:00+00:0045.145788228.2406686.983092264.6217098.81214382.0428610.052279-0.23987645.377088228.4741257.020075241.6147738.75082179.9855610.056814-0.024185
2020-05-31 23:50:00+00:0045.560188164.4598837.014018258.6978728.37990682.0128610.053963-0.23503244.765888362.1006046.971721240.3470079.85627584.9820610.052385-0.030792
\n", "

13248 rows × 16 columns

\n", "" ], "text/plain": [ " mean_WF_A01_pitch mean_WF_A01_power \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 66.398788 -41.469750 \n", "2020-03-01 00:10:00+00:00 66.398788 -41.730277 \n", "2020-03-01 00:20:00+00:00 66.398788 -41.638804 \n", "2020-03-01 00:30:00+00:00 66.398788 -41.464462 \n", "2020-03-01 00:40:00+00:00 66.398788 -41.569560 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 45.427588 204.217182 \n", "2020-05-31 23:20:00+00:00 50.685288 77.331198 \n", "2020-05-31 23:30:00+00:00 45.030288 230.445580 \n", "2020-05-31 23:40:00+00:00 45.145788 228.240668 \n", "2020-05-31 23:50:00+00:00 45.560188 164.459883 \n", "\n", " mean_WF_A01_rpm mean_WF_A01_winddirection \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 0.584501 49.649211 \n", "2020-03-01 00:10:00+00:00 0.415421 36.540062 \n", "2020-03-01 00:20:00+00:00 0.000000 48.983673 \n", "2020-03-01 00:30:00+00:00 0.000000 42.564542 \n", "2020-03-01 00:40:00+00:00 0.000000 45.848365 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 6.966832 197.925833 \n", "2020-05-31 23:20:00+00:00 5.043291 213.841401 \n", "2020-05-31 23:30:00+00:00 6.973209 260.730104 \n", "2020-05-31 23:40:00+00:00 6.983092 264.621709 \n", "2020-05-31 23:50:00+00:00 7.014018 258.697872 \n", "\n", " mean_WF_A01_windspeed mean_WF_A01_yaw \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 4.756602 154.942861 \n", "2020-03-01 00:10:00+00:00 3.286199 154.679861 \n", "2020-03-01 00:20:00+00:00 2.772254 118.406361 \n", "2020-03-01 00:30:00+00:00 3.068091 124.439561 \n", "2020-03-01 00:40:00+00:00 2.258143 132.942861 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 8.752479 87.034661 \n", "2020-05-31 23:20:00+00:00 9.028759 87.042861 \n", "2020-05-31 23:30:00+00:00 8.979204 84.818661 \n", "2020-05-31 23:40:00+00:00 8.812143 82.042861 \n", "2020-05-31 23:50:00+00:00 8.379906 82.012861 \n", "\n", " mean_WF_A01_TP_INC_LAT015_DEG240_X_nr1 \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 0.014474 \n", "2020-03-01 00:10:00+00:00 0.014559 \n", "2020-03-01 00:20:00+00:00 0.011589 \n", "2020-03-01 00:30:00+00:00 0.010997 \n", "2020-03-01 00:40:00+00:00 0.010591 \n", "... ... \n", "2020-05-31 23:10:00+00:00 0.053218 \n", "2020-05-31 23:20:00+00:00 0.061246 \n", "2020-05-31 23:30:00+00:00 0.052135 \n", "2020-05-31 23:40:00+00:00 0.052279 \n", "2020-05-31 23:50:00+00:00 0.053963 \n", "\n", " mean_WF_A01_TP_INC_LAT015_DEG240_Y_nr2 \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 -0.136504 \n", "2020-03-01 00:10:00+00:00 -0.135702 \n", "2020-03-01 00:20:00+00:00 -0.130643 \n", "2020-03-01 00:30:00+00:00 -0.128664 \n", "2020-03-01 00:40:00+00:00 -0.129644 \n", "... ... \n", "2020-05-31 23:10:00+00:00 -0.236778 \n", "2020-05-31 23:20:00+00:00 -0.214491 \n", "2020-05-31 23:30:00+00:00 -0.240203 \n", "2020-05-31 23:40:00+00:00 -0.239876 \n", "2020-05-31 23:50:00+00:00 -0.235032 \n", "\n", " mean_WF_A02_pitch mean_WF_A02_power \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 66.398788 -42.372609 \n", "2020-03-01 00:10:00+00:00 66.398788 -43.083064 \n", "2020-03-01 00:20:00+00:00 66.398788 -41.678109 \n", "2020-03-01 00:30:00+00:00 66.398788 -41.820720 \n", "2020-03-01 00:40:00+00:00 66.398788 -42.344867 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 45.233588 266.671847 \n", "2020-05-31 23:20:00+00:00 45.171388 284.882482 \n", "2020-05-31 23:30:00+00:00 45.070488 284.568935 \n", "2020-05-31 23:40:00+00:00 45.377088 228.474125 \n", "2020-05-31 23:50:00+00:00 44.765888 362.100604 \n", "\n", " mean_WF_A02_rpm mean_WF_A02_winddirection \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 0.000000 51.566748 \n", "2020-03-01 00:10:00+00:00 0.000000 35.673237 \n", "2020-03-01 00:20:00+00:00 0.000000 44.934812 \n", "2020-03-01 00:30:00+00:00 0.000000 37.605152 \n", "2020-03-01 00:40:00+00:00 0.000000 33.024645 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 7.006153 54.359444 \n", "2020-05-31 23:20:00+00:00 6.990850 211.905402 \n", "2020-05-31 23:30:00+00:00 6.970233 240.872527 \n", "2020-05-31 23:40:00+00:00 7.020075 241.614773 \n", "2020-05-31 23:50:00+00:00 6.971721 240.347007 \n", "\n", " mean_WF_A02_windspeed mean_WF_A02_yaw \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 4.418833 155.442861 \n", "2020-03-01 00:10:00+00:00 3.965547 141.050661 \n", "2020-03-01 00:20:00+00:00 2.456694 128.642861 \n", "2020-03-01 00:30:00+00:00 2.492990 128.642861 \n", "2020-03-01 00:40:00+00:00 2.127543 128.642861 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 8.840318 99.242861 \n", "2020-05-31 23:20:00+00:00 9.282334 91.005861 \n", "2020-05-31 23:30:00+00:00 9.040361 81.942861 \n", "2020-05-31 23:40:00+00:00 8.750821 79.985561 \n", "2020-05-31 23:50:00+00:00 9.856275 84.982061 \n", "\n", " mean_WF_A02_TP_INC_LAT015_DEG240_X_nr1 \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 -0.006030 \n", "2020-03-01 00:10:00+00:00 -0.005865 \n", "2020-03-01 00:20:00+00:00 -0.006446 \n", "2020-03-01 00:30:00+00:00 -0.007844 \n", "2020-03-01 00:40:00+00:00 -0.008401 \n", "... ... \n", "2020-05-31 23:10:00+00:00 0.046481 \n", "2020-05-31 23:20:00+00:00 0.050933 \n", "2020-05-31 23:30:00+00:00 0.056390 \n", "2020-05-31 23:40:00+00:00 0.056814 \n", "2020-05-31 23:50:00+00:00 0.052385 \n", "\n", " mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2 \n", "timestamp \n", "2020-03-01 00:00:00+00:00 -0.017105 \n", "2020-03-01 00:10:00+00:00 -0.016555 \n", "2020-03-01 00:20:00+00:00 -0.016817 \n", "2020-03-01 00:30:00+00:00 -0.018391 \n", "2020-03-01 00:40:00+00:00 -0.018518 \n", "... ... \n", "2020-05-31 23:10:00+00:00 -0.023932 \n", "2020-05-31 23:20:00+00:00 -0.027713 \n", "2020-05-31 23:30:00+00:00 -0.029176 \n", "2020-05-31 23:40:00+00:00 -0.024185 \n", "2020-05-31 23:50:00+00:00 -0.030792 \n", "\n", "[13248 rows x 16 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# **API Initialization**\n", "# API initialization can happen either explicitly via the API class, or\n", "# implicitly when using the pandas `datasignals` accessor.\n", "# In this example we will use the Pandas accessor.\n", "api = AsyncAPI()\n", "# The Metrics Overview is a table containing all the locations and metrics\n", "# available in the API, together with their metadata. It is useful to query it\n", "# before getting data, to check which locations and metrics are available for\n", "# the site you want to query.\n", "m_o = api.metrics_overview\n", "\n", "# site is the wind farm name you want to query. The parameter can also be\n", "# a list of site names, e.g. [\"windfarm\", \"windfarm2\"]. Matching is\n", "# case-insensitive and passing the \"site-id\" is also accepted, e.g. \"windfarm\"\n", "# will match \"WindFarm\", but also \"WF\", \"wf\", etc.\n", "site = \"windfarm\"\n", "# Matching locations from Metrics Overview for the specified site\n", "# Also partial names of locations are accepted, e.g. \"a01\" will match\n", "# all locations containing \"a01\" in their name, such as \"A01\", \"a01\". Matching\n", "# is case-insensitive.\n", "locations = m_o[m_o[\"site\"].str.lower() == site][\"location\"].unique().tolist()\n", "# Metrics: partial matches and regexes are accepted.\n", "# Spaces are interpreted as .* in the name.\n", "# If you want to query all metrics, pass \"all\" or [\"all\"].\n", "metrics = [\"mean windspeed\", \"mean power\", \"mean yaw\", \"mean rpm\",\n", " \"mean pitch\", \"mean winddirection\", \"mean inc\"]\n", "# Start and end timestamp in ISO 8601 format. The API accepts also other\n", "# formats, such as the one provided by\n", "# https://www.elastic.co/docs/reference/elasticsearch/rest-apis/common-options#date-math\n", "start_timestamp = \"2020-03-01T00:00:00Z\"\n", "end_timestamp = \"2020-06-01T00:00:00Z\"\n", "\n", "data = await api.get_data(site, locations, metrics, start_timestamp, end_timestamp)\n", "data\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "3ef3ec97", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
metricmean_WF_A01_TP_INC_LAT015_DEG240_X_nr1mean_WF_A01_TP_INC_LAT015_DEG240_Y_nr2mean_WF_A01_pitchmean_WF_A01_powermean_WF_A01_rpmmean_WF_A01_winddirectionmean_WF_A01_windspeedmean_WF_A01_yaw
timestamp
2020-03-01 00:00:00+00:000.014474-0.13650466.398788-41.4697500.58450149.6492114.756602154.942861
2020-03-01 00:10:00+00:000.014559-0.13570266.398788-41.7302770.41542136.5400623.286199154.679861
2020-03-01 00:20:00+00:000.011589-0.13064366.398788-41.6388040.00000048.9836732.772254118.406361
2020-03-01 00:30:00+00:000.010997-0.12866466.398788-41.4644620.00000042.5645423.068091124.439561
2020-03-01 00:40:00+00:000.010591-0.12964466.398788-41.5695600.00000045.8483652.258143132.942861
...........................
2020-05-31 23:10:00+00:000.053218-0.23677845.427588204.2171826.966832197.9258338.75247987.034661
2020-05-31 23:20:00+00:000.061246-0.21449150.68528877.3311985.043291213.8414019.02875987.042861
2020-05-31 23:30:00+00:000.052135-0.24020345.030288230.4455806.973209260.7301048.97920484.818661
2020-05-31 23:40:00+00:000.052279-0.23987645.145788228.2406686.983092264.6217098.81214382.042861
2020-05-31 23:50:00+00:000.053963-0.23503245.560188164.4598837.014018258.6978728.37990682.012861
\n", "

13248 rows × 8 columns

\n", "
" ], "text/plain": [ "metric mean_WF_A01_TP_INC_LAT015_DEG240_X_nr1 \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 0.014474 \n", "2020-03-01 00:10:00+00:00 0.014559 \n", "2020-03-01 00:20:00+00:00 0.011589 \n", "2020-03-01 00:30:00+00:00 0.010997 \n", "2020-03-01 00:40:00+00:00 0.010591 \n", "... ... \n", "2020-05-31 23:10:00+00:00 0.053218 \n", "2020-05-31 23:20:00+00:00 0.061246 \n", "2020-05-31 23:30:00+00:00 0.052135 \n", "2020-05-31 23:40:00+00:00 0.052279 \n", "2020-05-31 23:50:00+00:00 0.053963 \n", "\n", "metric mean_WF_A01_TP_INC_LAT015_DEG240_Y_nr2 \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 -0.136504 \n", "2020-03-01 00:10:00+00:00 -0.135702 \n", "2020-03-01 00:20:00+00:00 -0.130643 \n", "2020-03-01 00:30:00+00:00 -0.128664 \n", "2020-03-01 00:40:00+00:00 -0.129644 \n", "... ... \n", "2020-05-31 23:10:00+00:00 -0.236778 \n", "2020-05-31 23:20:00+00:00 -0.214491 \n", "2020-05-31 23:30:00+00:00 -0.240203 \n", "2020-05-31 23:40:00+00:00 -0.239876 \n", "2020-05-31 23:50:00+00:00 -0.235032 \n", "\n", "metric mean_WF_A01_pitch mean_WF_A01_power \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 66.398788 -41.469750 \n", "2020-03-01 00:10:00+00:00 66.398788 -41.730277 \n", "2020-03-01 00:20:00+00:00 66.398788 -41.638804 \n", "2020-03-01 00:30:00+00:00 66.398788 -41.464462 \n", "2020-03-01 00:40:00+00:00 66.398788 -41.569560 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 45.427588 204.217182 \n", "2020-05-31 23:20:00+00:00 50.685288 77.331198 \n", "2020-05-31 23:30:00+00:00 45.030288 230.445580 \n", "2020-05-31 23:40:00+00:00 45.145788 228.240668 \n", "2020-05-31 23:50:00+00:00 45.560188 164.459883 \n", "\n", "metric mean_WF_A01_rpm mean_WF_A01_winddirection \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 0.584501 49.649211 \n", "2020-03-01 00:10:00+00:00 0.415421 36.540062 \n", "2020-03-01 00:20:00+00:00 0.000000 48.983673 \n", "2020-03-01 00:30:00+00:00 0.000000 42.564542 \n", "2020-03-01 00:40:00+00:00 0.000000 45.848365 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 6.966832 197.925833 \n", "2020-05-31 23:20:00+00:00 5.043291 213.841401 \n", "2020-05-31 23:30:00+00:00 6.973209 260.730104 \n", "2020-05-31 23:40:00+00:00 6.983092 264.621709 \n", "2020-05-31 23:50:00+00:00 7.014018 258.697872 \n", "\n", "metric mean_WF_A01_windspeed mean_WF_A01_yaw \n", "timestamp \n", "2020-03-01 00:00:00+00:00 4.756602 154.942861 \n", "2020-03-01 00:10:00+00:00 3.286199 154.679861 \n", "2020-03-01 00:20:00+00:00 2.772254 118.406361 \n", "2020-03-01 00:30:00+00:00 3.068091 124.439561 \n", "2020-03-01 00:40:00+00:00 2.258143 132.942861 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 8.752479 87.034661 \n", "2020-05-31 23:20:00+00:00 9.028759 87.042861 \n", "2020-05-31 23:30:00+00:00 8.979204 84.818661 \n", "2020-05-31 23:40:00+00:00 8.812143 82.042861 \n", "2020-05-31 23:50:00+00:00 8.379906 82.012861 \n", "\n", "[13248 rows x 8 columns]" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "Both index and column named 'timestamp' found. Index takes precedence.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
metricmean_WF_A02_TP_INC_LAT015_DEG240_X_nr1mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2mean_WF_A02_pitchmean_WF_A02_powermean_WF_A02_rpmmean_WF_A02_winddirectionmean_WF_A02_windspeedmean_WF_A02_yaw
timestamp
2020-03-01 00:00:00+00:00-0.006030-0.01710566.398788-42.3726090.00000051.5667484.418833155.442861
2020-03-01 00:10:00+00:00-0.005865-0.01655566.398788-43.0830640.00000035.6732373.965547141.050661
2020-03-01 00:20:00+00:00-0.006446-0.01681766.398788-41.6781090.00000044.9348122.456694128.642861
2020-03-01 00:30:00+00:00-0.007844-0.01839166.398788-41.8207200.00000037.6051522.492990128.642861
2020-03-01 00:40:00+00:00-0.008401-0.01851866.398788-42.3448670.00000033.0246452.127543128.642861
...........................
2020-05-31 23:10:00+00:000.046481-0.02393245.233588266.6718477.00615354.3594448.84031899.242861
2020-05-31 23:20:00+00:000.050933-0.02771345.171388284.8824826.990850211.9054029.28233491.005861
2020-05-31 23:30:00+00:000.056390-0.02917645.070488284.5689356.970233240.8725279.04036181.942861
2020-05-31 23:40:00+00:000.056814-0.02418545.377088228.4741257.020075241.6147738.75082179.985561
2020-05-31 23:50:00+00:000.052385-0.03079244.765888362.1006046.971721240.3470079.85627584.982061
\n", "

13248 rows × 8 columns

\n", "
" ], "text/plain": [ "metric mean_WF_A02_TP_INC_LAT015_DEG240_X_nr1 \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 -0.006030 \n", "2020-03-01 00:10:00+00:00 -0.005865 \n", "2020-03-01 00:20:00+00:00 -0.006446 \n", "2020-03-01 00:30:00+00:00 -0.007844 \n", "2020-03-01 00:40:00+00:00 -0.008401 \n", "... ... \n", "2020-05-31 23:10:00+00:00 0.046481 \n", "2020-05-31 23:20:00+00:00 0.050933 \n", "2020-05-31 23:30:00+00:00 0.056390 \n", "2020-05-31 23:40:00+00:00 0.056814 \n", "2020-05-31 23:50:00+00:00 0.052385 \n", "\n", "metric mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2 \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 -0.017105 \n", "2020-03-01 00:10:00+00:00 -0.016555 \n", "2020-03-01 00:20:00+00:00 -0.016817 \n", "2020-03-01 00:30:00+00:00 -0.018391 \n", "2020-03-01 00:40:00+00:00 -0.018518 \n", "... ... \n", "2020-05-31 23:10:00+00:00 -0.023932 \n", "2020-05-31 23:20:00+00:00 -0.027713 \n", "2020-05-31 23:30:00+00:00 -0.029176 \n", "2020-05-31 23:40:00+00:00 -0.024185 \n", "2020-05-31 23:50:00+00:00 -0.030792 \n", "\n", "metric mean_WF_A02_pitch mean_WF_A02_power \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 66.398788 -42.372609 \n", "2020-03-01 00:10:00+00:00 66.398788 -43.083064 \n", "2020-03-01 00:20:00+00:00 66.398788 -41.678109 \n", "2020-03-01 00:30:00+00:00 66.398788 -41.820720 \n", "2020-03-01 00:40:00+00:00 66.398788 -42.344867 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 45.233588 266.671847 \n", "2020-05-31 23:20:00+00:00 45.171388 284.882482 \n", "2020-05-31 23:30:00+00:00 45.070488 284.568935 \n", "2020-05-31 23:40:00+00:00 45.377088 228.474125 \n", "2020-05-31 23:50:00+00:00 44.765888 362.100604 \n", "\n", "metric mean_WF_A02_rpm mean_WF_A02_winddirection \\\n", "timestamp \n", "2020-03-01 00:00:00+00:00 0.000000 51.566748 \n", "2020-03-01 00:10:00+00:00 0.000000 35.673237 \n", "2020-03-01 00:20:00+00:00 0.000000 44.934812 \n", "2020-03-01 00:30:00+00:00 0.000000 37.605152 \n", "2020-03-01 00:40:00+00:00 0.000000 33.024645 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 7.006153 54.359444 \n", "2020-05-31 23:20:00+00:00 6.990850 211.905402 \n", "2020-05-31 23:30:00+00:00 6.970233 240.872527 \n", "2020-05-31 23:40:00+00:00 7.020075 241.614773 \n", "2020-05-31 23:50:00+00:00 6.971721 240.347007 \n", "\n", "metric mean_WF_A02_windspeed mean_WF_A02_yaw \n", "timestamp \n", "2020-03-01 00:00:00+00:00 4.418833 155.442861 \n", "2020-03-01 00:10:00+00:00 3.965547 141.050661 \n", "2020-03-01 00:20:00+00:00 2.456694 128.642861 \n", "2020-03-01 00:30:00+00:00 2.492990 128.642861 \n", "2020-03-01 00:40:00+00:00 2.127543 128.642861 \n", "... ... ... \n", "2020-05-31 23:10:00+00:00 8.840318 99.242861 \n", "2020-05-31 23:20:00+00:00 9.282334 91.005861 \n", "2020-05-31 23:30:00+00:00 9.040361 81.942861 \n", "2020-05-31 23:40:00+00:00 8.750821 79.985561 \n", "2020-05-31 23:50:00+00:00 9.856275 84.982061 \n", "\n", "[13248 rows x 8 columns]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Extract data for a specific location only\n", "display(data.datasignals.as_dict()[site][locations[0]])\n", "display(data.datasignals.as_dict()[site][locations[1]])\n" ] }, { "cell_type": "markdown", "id": "eca1d269", "metadata": {}, "source": [ "# Star Schema Format\n", "Data can be converted to a star schema format, where each metric's name is converted to its \"short_hand\" from Metrics Overview, and the project and location columns are added as dimensions. The resulting DataFrame is indexed by timestamp and sorted by index." ] }, { "cell_type": "code", "execution_count": 7, "id": "1a346098", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Both index and column named 'timestamp' found. Index takes precedence.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestamplocationmean_TP_INC_LAT015_DEG240_X_nr1mean_TP_INC_LAT015_DEG240_Y_nr2mean_pitchmean_powermean_rpmmean_winddirectionmean_windspeedmean_yaw
02020-03-01 00:00:00+00:00WFA010.014474-0.13650466.398788-41.4697500.58450149.6492114.756602154.942861
12020-03-01 00:10:00+00:00WFA010.014559-0.13570266.398788-41.7302770.41542136.5400623.286199154.679861
22020-03-01 00:20:00+00:00WFA010.011589-0.13064366.398788-41.6388040.00000048.9836732.772254118.406361
32020-03-01 00:30:00+00:00WFA010.010997-0.12866466.398788-41.4644620.00000042.5645423.068091124.439561
42020-03-01 00:40:00+00:00WFA010.010591-0.12964466.398788-41.5695600.00000045.8483652.258143132.942861
.................................
264912020-05-31 23:10:00+00:00WFA020.046481-0.02393245.233588266.6718477.00615354.3594448.84031899.242861
264922020-05-31 23:20:00+00:00WFA020.050933-0.02771345.171388284.8824826.990850211.9054029.28233491.005861
264932020-05-31 23:30:00+00:00WFA020.056390-0.02917645.070488284.5689356.970233240.8725279.04036181.942861
264942020-05-31 23:40:00+00:00WFA020.056814-0.02418545.377088228.4741257.020075241.6147738.75082179.985561
264952020-05-31 23:50:00+00:00WFA020.052385-0.03079244.765888362.1006046.971721240.3470079.85627584.982061
\n", "

26496 rows × 10 columns

\n", "
" ], "text/plain": [ " timestamp location mean_TP_INC_LAT015_DEG240_X_nr1 \\\n", "0 2020-03-01 00:00:00+00:00 WFA01 0.014474 \n", "1 2020-03-01 00:10:00+00:00 WFA01 0.014559 \n", "2 2020-03-01 00:20:00+00:00 WFA01 0.011589 \n", "3 2020-03-01 00:30:00+00:00 WFA01 0.010997 \n", "4 2020-03-01 00:40:00+00:00 WFA01 0.010591 \n", "... ... ... ... \n", "26491 2020-05-31 23:10:00+00:00 WFA02 0.046481 \n", "26492 2020-05-31 23:20:00+00:00 WFA02 0.050933 \n", "26493 2020-05-31 23:30:00+00:00 WFA02 0.056390 \n", "26494 2020-05-31 23:40:00+00:00 WFA02 0.056814 \n", "26495 2020-05-31 23:50:00+00:00 WFA02 0.052385 \n", "\n", " mean_TP_INC_LAT015_DEG240_Y_nr2 mean_pitch mean_power mean_rpm \\\n", "0 -0.136504 66.398788 -41.469750 0.584501 \n", "1 -0.135702 66.398788 -41.730277 0.415421 \n", "2 -0.130643 66.398788 -41.638804 0.000000 \n", "3 -0.128664 66.398788 -41.464462 0.000000 \n", "4 -0.129644 66.398788 -41.569560 0.000000 \n", "... ... ... ... ... \n", "26491 -0.023932 45.233588 266.671847 7.006153 \n", "26492 -0.027713 45.171388 284.882482 6.990850 \n", "26493 -0.029176 45.070488 284.568935 6.970233 \n", "26494 -0.024185 45.377088 228.474125 7.020075 \n", "26495 -0.030792 44.765888 362.100604 6.971721 \n", "\n", " mean_winddirection mean_windspeed mean_yaw \n", "0 49.649211 4.756602 154.942861 \n", "1 36.540062 3.286199 154.679861 \n", "2 48.983673 2.772254 118.406361 \n", "3 42.564542 3.068091 124.439561 \n", "4 45.848365 2.258143 132.942861 \n", "... ... ... ... \n", "26491 54.359444 8.840318 99.242861 \n", "26492 211.905402 9.282334 91.005861 \n", "26493 240.872527 9.040361 81.942861 \n", "26494 241.614773 8.750821 79.985561 \n", "26495 240.347007 9.856275 84.982061 \n", "\n", "[26496 rows x 10 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from api_24sea.datasignals.core import to_star_schema\n", "start_schema = to_star_schema(data, metrics_overview=m_o)\n", "data_ss = start_schema[\"FactPivotData\"]\n", "data_ss\n" ] }, { "cell_type": "markdown", "id": "03a2df2a", "metadata": {}, "source": [ "### Category-Value Format\n", "Data can also be converted to a category-value format, where each metric is converted to a \"category\" column containing the metric name, and a \"value\" column containing the metric value. The site and location columns are added as dimensions. The resulting DataFrame is indexed by timestamp and sorted by index.\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "2fa88d9a", "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Both index and column named 'timestamp' found. Index takes precedence.\n", "/home/pietro.dantuono@24SEA.local/Projects/API-24SEA/api-24sea-pkg/api_24sea/datasignals/core.py:1675: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", " .bfill(axis=1)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampmetricvalueunitstatisticshort_handsite_idlocation_idsub_assemblylatheadingsitelocationmetric_group
02020-03-01 00:00:00+00:00mean_WF_A01_pitch66.398788°meanpitchWFA01NaNNaNNaNWindFarmWFA01scada
12020-03-01 00:10:00+00:00mean_WF_A01_pitch66.398788°meanpitchWFA01NaNNaNNaNWindFarmWFA01scada
22020-03-01 00:20:00+00:00mean_WF_A01_pitch66.398788°meanpitchWFA01NaNNaNNaNWindFarmWFA01scada
32020-03-01 00:30:00+00:00mean_WF_A01_pitch66.398788°meanpitchWFA01NaNNaNNaNWindFarmWFA01scada
42020-03-01 00:40:00+00:00mean_WF_A01_pitch66.398788°meanpitchWFA01NaNNaNNaNWindFarmWFA01scada
.............................................
2119632020-05-31 23:10:00+00:00mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2-0.023932°meanTP_INC_LAT015_DEG240_Y_nr2WFA02TP15.0240.0WindFarmWFA02inclination
2119642020-05-31 23:20:00+00:00mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2-0.027713°meanTP_INC_LAT015_DEG240_Y_nr2WFA02TP15.0240.0WindFarmWFA02inclination
2119652020-05-31 23:30:00+00:00mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2-0.029176°meanTP_INC_LAT015_DEG240_Y_nr2WFA02TP15.0240.0WindFarmWFA02inclination
2119662020-05-31 23:40:00+00:00mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2-0.024185°meanTP_INC_LAT015_DEG240_Y_nr2WFA02TP15.0240.0WindFarmWFA02inclination
2119672020-05-31 23:50:00+00:00mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2-0.030792°meanTP_INC_LAT015_DEG240_Y_nr2WFA02TP15.0240.0WindFarmWFA02inclination
\n", "

211968 rows × 14 columns

\n", "
" ], "text/plain": [ " timestamp metric \\\n", "0 2020-03-01 00:00:00+00:00 mean_WF_A01_pitch \n", "1 2020-03-01 00:10:00+00:00 mean_WF_A01_pitch \n", "2 2020-03-01 00:20:00+00:00 mean_WF_A01_pitch \n", "3 2020-03-01 00:30:00+00:00 mean_WF_A01_pitch \n", "4 2020-03-01 00:40:00+00:00 mean_WF_A01_pitch \n", "... ... ... \n", "211963 2020-05-31 23:10:00+00:00 mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2 \n", "211964 2020-05-31 23:20:00+00:00 mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2 \n", "211965 2020-05-31 23:30:00+00:00 mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2 \n", "211966 2020-05-31 23:40:00+00:00 mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2 \n", "211967 2020-05-31 23:50:00+00:00 mean_WF_A02_TP_INC_LAT015_DEG240_Y_nr2 \n", "\n", " value unit statistic short_hand site_id \\\n", "0 66.398788 ° mean pitch WF \n", "1 66.398788 ° mean pitch WF \n", "2 66.398788 ° mean pitch WF \n", "3 66.398788 ° mean pitch WF \n", "4 66.398788 ° mean pitch WF \n", "... ... ... ... ... ... \n", "211963 -0.023932 ° mean TP_INC_LAT015_DEG240_Y_nr2 WF \n", "211964 -0.027713 ° mean TP_INC_LAT015_DEG240_Y_nr2 WF \n", "211965 -0.029176 ° mean TP_INC_LAT015_DEG240_Y_nr2 WF \n", "211966 -0.024185 ° mean TP_INC_LAT015_DEG240_Y_nr2 WF \n", "211967 -0.030792 ° mean TP_INC_LAT015_DEG240_Y_nr2 WF \n", "\n", " location_id sub_assembly lat heading site location metric_group \n", "0 A01 NaN NaN NaN WindFarm WFA01 scada \n", "1 A01 NaN NaN NaN WindFarm WFA01 scada \n", "2 A01 NaN NaN NaN WindFarm WFA01 scada \n", "3 A01 NaN NaN NaN WindFarm WFA01 scada \n", "4 A01 NaN NaN NaN WindFarm WFA01 scada \n", "... ... ... ... ... ... ... ... \n", "211963 A02 TP 15.0 240.0 WindFarm WFA02 inclination \n", "211964 A02 TP 15.0 240.0 WindFarm WFA02 inclination \n", "211965 A02 TP 15.0 240.0 WindFarm WFA02 inclination \n", "211966 A02 TP 15.0 240.0 WindFarm WFA02 inclination \n", "211967 A02 TP 15.0 240.0 WindFarm WFA02 inclination \n", "\n", "[211968 rows x 14 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from api_24sea.datasignals.core import to_category_value\n", "data_cv = to_category_value(data, data.datasignals.selected_metrics.reset_index())\n", "data_cv\n" ] } ], "metadata": { "jupytext": { "custom_cell_magics": "kql", "encoding": "# -*- coding: utf-8 -*-" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.1" } }, "nbformat": 4, "nbformat_minor": 5 }