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.9 KiB
167 lines
4.9 KiB
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Zile de Creștere a Gradelor\n",
|
|
"\n",
|
|
"Acest notebook încarcă datele de temperatură salvate într-un fișier CSV și le analizează. Acesta afișează graficele temperaturilor, arată valorile maxime și minime pentru fiecare zi și calculează GDD.\n",
|
|
"\n",
|
|
"Pentru a utiliza acest notebook:\n",
|
|
"\n",
|
|
"* Copiați fișierul `temperature.csv` în același folder cu acest notebook\n",
|
|
"* Rulați toate celulele folosind butonul **▶︎ Run** de mai sus. Acest lucru va rula celula selectată, apoi va trece la următoarea.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"În celula de mai jos, setați `base_temperature` la temperatura de bază a plantei.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"base_temperature = 10"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Fișierul CSV trebuie acum să fie încărcat, folosind 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": [
|
|
"Odată ce datele au fost citite, acestea pot fi grupate după coloana `date`, iar temperaturile minime și maxime pot fi extrase pentru fiecare dată.\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-ul poate fi calculat folosind ecuația standard 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**Declinare de responsabilitate**: \nAcest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.\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-28T11:45:41+00:00",
|
|
"source_file": "2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb",
|
|
"language_code": "ro"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
} |