{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ימי גידול לפי טמפרטורה\n", "\n", "מחברת זו טוענת נתוני טמפרטורה השמורים בקובץ CSV, ומנתחת אותם. היא מציגה את הטמפרטורות, מראה את הערכים הגבוהים והנמוכים ביותר לכל יום, ומחשבת את GDD.\n", "\n", "כדי להשתמש במחברת זו:\n", "\n", "* העתיקו את קובץ `temperature.csv` לתיקייה שבה נמצאת המחברת הזו\n", "* הריצו את כל התאים באמצעות כפתור **▶︎ Run** שמעל. פעולה זו תריץ את התא הנבחר, ולאחר מכן תעבור לתא הבא.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "בתרגום הבא, הגדר את `base_temperature` לטמפרטורה הבסיסית של הצמח.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "base_temperature = 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "יש לטעון כעת את קובץ ה-CSV באמצעות 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": [ "לאחר קריאת הנתונים ניתן לקבץ אותם לפי עמודת `date`, ולחלץ את הטמפרטורות המינימליות והמקסימליות עבור כל תאריך.\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 באמצעות משוואת ה-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**כתב ויתור**: \nמסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.\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:06:27+00:00", "source_file": "2-farm/lessons/1-predict-plant-growth/code-notebook/gdd.ipynb", "language_code": "he" } }, "nbformat": 4, "nbformat_minor": 2 }