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.
167 lines
4.7 KiB
167 lines
4.7 KiB
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Stupně růstu (Growing Degree Days)\n",
|
|
"\n",
|
|
"Tento zápis načítá teplotní data uložená v CSV souboru a analyzuje je. Vykresluje teploty, zobrazuje nejvyšší a nejnižší hodnotu pro každý den a vypočítává GDD.\n",
|
|
"\n",
|
|
"Pro použití tohoto zápisu:\n",
|
|
"\n",
|
|
"* Zkopírujte soubor `temperature.csv` do stejné složky jako tento zápis\n",
|
|
"* Spusťte všechny buňky pomocí tlačítka **▶︎ Spustit** nahoře. Tím spustíte vybranou buňku a poté přejdete na další.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"V níže uvedené buňce nastavte `base_temperature` na základní teplotu rostliny.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"base_temperature = 10"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Soubor CSV nyní musí být načten pomocí 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": [
|
|
"Jakmile jsou data načtena, lze je seskupit podle sloupce `date` a pro každý datum extrahovat minimální a maximální teploty.\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 lze vypočítat pomocí standardní rovnice GDD\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**Prohlášení**: \nTento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro kritické informace se doporučuje profesionální lidský překlad. Nenese odpovědnost za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.\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-27T23:32:00+00:00",
|
|
"source_file": "2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb",
|
|
"language_code": "cs"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
} |