You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/da/2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb

167 lines
4.8 KiB

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Vækstgraddage\n",
"\n",
"Denne notebook indlæser temperaturdata gemt i en CSV-fil og analyserer dem. Den plotter temperaturerne, viser den højeste og laveste værdi for hver dag og beregner GDD.\n",
"\n",
"For at bruge denne notebook:\n",
"\n",
"* Kopiér filen `temperature.csv` til samme mappe som denne notebook\n",
"* Kør alle cellerne ved hjælp af knappen **▶︎ Kør** ovenfor. Dette vil køre den valgte celle og derefter gå videre til den næste.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I cellen nedenfor skal du sætte `base_temperature` til plantens basistemperatur.\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"base_temperature = 10"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"CSV-filen skal nu indlæses ved hjælp af pandas\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Read the temperature CSV file\n",
"df = pd.read_csv('temperature.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"plt.figure(figsize=(20, 10))\n",
"plt.plot(df['date'], df['temperature'])\n",
"plt.xticks(rotation='vertical');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Når dataene er blevet læst, kan de grupperes efter `date`-kolonnen, og minimums- og maksimumstemperaturerne kan udtrækkes for hver dato.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Convert datetimes to pure dates so we can group by the date\n",
"df['date'] = pd.to_datetime(df['date']).dt.date\n",
"\n",
"# Group the data by date so it can be analyzed by date\n",
"data_by_date = df.groupby('date')\n",
"\n",
"# Get the minimum and maximum temperatures for each date\n",
"min_by_date = data_by_date.min()\n",
"max_by_date = data_by_date.max()\n",
"\n",
"# Join the min and max temperatures into one dataframe and flatten it\n",
"min_max_by_date = min_by_date.join(max_by_date, on='date', lsuffix='_min', rsuffix='_max')\n",
"min_max_by_date = min_max_by_date.reset_index()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"GDD kan beregnes ved hjælp af den standard GDD-ligning\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def calculate_gdd(row):\n",
" return ((row['temperature_max'] + row['temperature_min']) / 2) - base_temperature\n",
"\n",
"# Calculate the GDD for each row\n",
"min_max_by_date['gdd'] = min_max_by_date.apply (lambda row: calculate_gdd(row), axis=1)\n",
"\n",
"# Print the results\n",
"print(min_max_by_date[['date', 'gdd']].to_string(index=False))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**Ansvarsfraskrivelse**: \nDette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på at sikre nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.\n"
]
}
],
"metadata": {
"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.9.1"
},
"metadata": {
"interpreter": {
"hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49"
}
},
"coopTranslator": {
"original_hash": "8fcf954f6042f0bf3601a2c836a09574",
"translation_date": "2025-08-27T22:59:43+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb",
"language_code": "da"
}
},
"nbformat": 4,
"nbformat_minor": 2
}