Files
farmos.py-wagner/reporting.ipynb
2024-11-04 15:23:49 +01:00

344 lines
13 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "f512fba3-877f-411e-935c-0c878d478b2d",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"import neofarm.lib as neo\n",
"import importlib\n",
"importlib.reload(neo)\n",
"\n",
"plant = neo.Plant.from_id(\"76f89f82-1238-43bb-b34f-796a92d491a2\")\n",
"print(plant.name)\n",
"\n",
"\n",
"seedings = neo.Seeding.get_list()\n",
"for seeding in seedings:\n",
" plant = seeding.getPlant()\n",
" equipment = seeding.equipment[0]\n",
" quantity1 = seeding.quantities[0]\n",
" quantity2 = seeding.quantities[1]\n",
" print(f\"name: {seeding.name}\")\n",
" print(f\"timestamp: {seeding.timestamp}\")\n",
" print(f\"plant name: {plant.name}\")\n",
" print(f\"plant crop: {plant.crop[0].name}\")\n",
" print(f\"plant loc: {plant.location[0].name}\")\n",
" print(f\"equipment: {equipment.name}\")\n",
" print(f\"isMovement: {seeding.isMovement}\")\n",
" print(f\"Q1 type: {quantity1.type}\")\n",
" print(f\"Q1 measure: {quantity1.measure}\")\n",
" print(f\"Q1 value: {quantity1.value}\")\n",
" print(f\"Q1 units: {quantity1.units.name}\")\n",
" print(f\"Q1 inv adj: {quantity1.inventory_adjustment}\")\n",
" print(f\"Q1 inv ass: {quantity1.inventory_asset.name}\")\n",
" print(f\"Q2 type: {quantity2.type}\")\n",
" print(f\"Q2 measure: {quantity2.measure}\")\n",
" print(f\"Q2 value: {quantity2.value}\")\n",
" print(f\"Q2 units: {quantity2.units.name}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fdf49f3b-3949-4895-97fb-f5bd2484fce3",
"metadata": {
"jupyter": {
"source_hidden": true
}
},
"outputs": [],
"source": [
"import neofarm.lib as neo\n",
"import importlib\n",
"importlib.reload(neo)\n",
"\n",
"inputs = neo.Input.get_list()\n",
"for element in inputs:\n",
" #equipment = element.equipment[0]\n",
" print(f\"name: {element.name}\")\n",
" print(f\"timestamp: {element.timestamp}\")\n",
" print(f\"plant name: {element.plant.name}\")\n",
" print(f\"plant crop: {element.plant.crop[0].name}\")\n",
" print(f\"plant loc: {element.plant.location[0].name}\")\n",
" print(f\"equipment: {element.equipment[0].name}\")\n",
" print(f\"isMovement: {element.isMovement}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "28598d92-24f2-47cb-bb19-9943800eefe1",
"metadata": {
"jupyter": {
"source_hidden": true
}
},
"outputs": [],
"source": [
"import neofarm.lib as neo\n",
"import importlib\n",
"importlib.reload(neo)\n",
"\n",
"data = neo.Harvest.get_list()\n",
"for element in data:\n",
" #equipment = element.equipment[0]\n",
" print(f\"name: {element.name}\")\n",
" print(f\"timestamp: {element.timestamp}\")\n",
" print(f\"plant name: {element.plant.name}\")\n",
" print(f\"plant crop: {element.plant.crop[0].name}\")\n",
" print(f\"plant loc: {element.plant.location[0].name}\")\n",
" print(f\"equipment: {element.equipment[0].name}\")\n",
" print(f\"isMovement: {element.isMovement}\")\n",
" print(f\"Name vom Inventory asset von der Quantity: {element.quantities[0].inventory_asset.name}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a993570d-dea2-4bd6-80c0-b36297ce6a3a",
"metadata": {},
"outputs": [],
"source": [
"#Beispiel\n",
"import neofarm.lib as neo\n",
"\n",
"if __name__ == \"__main__\":\n",
" asset = neo.Asset.Plant.from_id(\"76f89f82-1238-43bb-b34f-796a92d491a2\")\n",
" logs = asset.get_logs_of_type(neo.Log.Activity)\n",
" for log in logs:\n",
" print(log.name)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3a33ffb1-afe7-44b5-863b-9779a95a2a9c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PlantName: W-Raps Helmacker Plant 24/25\n",
"Maintenance:\n",
"name: Scheibeneggen Helmacker Maintenance 24/25\n",
"timestamp: 28.07.24 11:34 \n",
"equipment: Scheibenegge Catros\n",
"quant_type: quantity--price\n",
"quant_measure: time\n",
"quant_value: 2\n",
"quant_inventory_adjustment: None\n",
"Seeding:\n",
"name: W-Raps Otello KWS Helmacker Seeding 24/25\n",
"timestamp: 22.08.24 22:00 \n",
"equipment: Sähmaschine Cataya\n",
"plant loc: Helmacker\n",
"quant_type: quantity--standard\n",
"quant_measure: weight\n",
"quant_value: 50\n",
"quant_inventory_adjustment: decrement\n",
"Input:\n",
"name: Innovert Raps Input 24/25\n",
"timestamp: 12.10.24 13:18 \n",
"equipment: Spritze\n",
"quant_type: quantity--standard\n",
"quant_measure: volume\n",
"quant_value: 10\n",
"quant_inventory_adjustment: decrement\n",
"Input:\n",
"name: Innovert Raps Input 24/25\n",
"timestamp: 03.11.24 23:00 \n",
"equipment: Spritze\n",
"quant_type: quantity--standard\n",
"quant_measure: volume\n",
"quant_value: 10\n",
"quant_inventory_adjustment: decrement\n",
"Medical:\n",
"name: Schneckenkorn Medical 24/25\n",
"timestamp: 30.08.24 06:42 \n",
"equipment: Schneckenkornstreuer Leinfelder\n",
"Harvest:\n",
"name: W-Raps Helmacker Harvest 24/25\n",
"timestamp: 20.10.24 10:11 \n",
"equipment: Mähdrescher Leinfelder\n",
"Sale:\n",
"name: W-Raps Sale 24/25\n",
"timestamp: 28.10.24 07:54 \n"
]
}
],
"source": [
"# alle logs von einem Plant\n",
"import neofarm.lib as neo\n",
"from datetime import datetime\n",
"\n",
"if __name__ == \"__main__\":\n",
" asset = neo.Asset.Plant.from_id(\"76f89f82-1238-43bb-b34f-796a92d491a2\")\n",
" \n",
" PlantName = \"W-Raps Helmacker Plant 24/25\" \n",
" print(f\"PlantName: {PlantName}\")\n",
" \n",
" logs = asset.get_logs_of_type(neo.Log.Maintenance)\n",
" for log in logs:\n",
" print(\"Maintenance:\")\n",
" print(f\"name: {log.name}\")\n",
" formatted_date = datetime.fromisoformat(log.timestamp).strftime(\"%d.%m.%y %H:%M \") # Konvertiere in das gewünschte Format\n",
" print(f\"timestamp: {formatted_date}\") \n",
" print(f\"equipment: {log.equipment[0].name}\")\n",
"\n",
" input=neo.Log.Maintenance.from_id(log.id)\n",
" print(f\"quant_type: {input.quantities[0].type}\")\n",
" print(f\"quant_measure: {input.quantities[0].measure}\")\n",
" print(f\"quant_value: {input.quantities[0].value}\")\n",
" print(f\"quant_inventory_adjustment: {input.quantities[0].inventory_adjustment}\")\n",
" #print(f\"quant_value: {input.quantities[0].unit_price.decimal}\")\n",
"\n",
" \t\n",
" \n",
" logs = asset.get_logs_of_type(neo.Log.Seeding)\n",
" for log in logs:\n",
" print(\"Seeding:\")\n",
" print(f\"name: {log.name}\")\n",
" formatted_date = datetime.fromisoformat(log.timestamp).strftime(\"%d.%m.%y %H:%M \") # Konvertiere in das gewünschte Format\n",
" print(f\"timestamp: {formatted_date}\")\n",
" print(f\"equipment: {log.equipment[0].name}\")\n",
" print(f\"plant loc: {log.location[0].name}\")\n",
"\n",
" input=neo.Log.Seeding.from_id(log.id)\n",
" print(f\"quant_type: {input.quantities[0].type}\")\n",
" print(f\"quant_measure: {input.quantities[0].measure}\")\n",
" print(f\"quant_value: {input.quantities[0].value}\")\n",
" print(f\"quant_inventory_adjustment: {input.quantities[0].inventory_adjustment}\")\n",
" \t\n",
"\n",
" \n",
" logs = asset.get_logs_of_type(neo.Log.Input)\n",
" for log in logs:\n",
" print(\"Input:\")\n",
" print(f\"name: {log.name}\")\n",
" #print(f\"name: {log.id}\")\n",
" formatted_date = datetime.fromisoformat(log.timestamp).strftime(\"%d.%m.%y %H:%M \") # Konvertiere in das gewünschte Format\n",
" print(f\"timestamp: {formatted_date}\")\n",
" print(f\"equipment: {log.equipment[0].name}\")\n",
"\n",
"\n",
"\n",
"\n",
" input=neo.Log.Input.from_id(log.id)\n",
" print(f\"quant_type: {input.quantities[0].type}\")\n",
" print(f\"quant_measure: {input.quantities[0].measure}\")\n",
" print(f\"quant_value: {input.quantities[0].value}\")\n",
" print(f\"quant_inventory_adjustment: {input.quantities[0].inventory_adjustment}\")\n",
"\n",
" \n",
" logs = asset.get_logs_of_type(neo.Log.Medical)\n",
" for log in logs:\n",
" print(\"Medical:\")\n",
" print(f\"name: {log.name}\")\n",
" formatted_date = datetime.fromisoformat(log.timestamp).strftime(\"%d.%m.%y %H:%M \") # Konvertiere in das gewünschte Format\n",
" print(f\"timestamp: {formatted_date}\")\n",
" print(f\"equipment: {log.equipment[0].name}\")\n",
"\n",
" logs = asset.get_logs_of_type(neo.Log.Harvest)\n",
" for log in logs:\n",
" print(\"Harvest:\")\n",
" print(f\"name: {log.name}\")\n",
" formatted_date = datetime.fromisoformat(log.timestamp).strftime(\"%d.%m.%y %H:%M \") # Konvertiere in das gewünschte Format\n",
" print(f\"timestamp: {formatted_date}\")\n",
" print(f\"equipment: {log.equipment[0].name}\")\n",
"\n",
" logs = asset.get_logs_of_type(neo.Log.Sale)\n",
" for log in logs:\n",
" print(\"Sale:\")\n",
" print(f\"name: {log.name}\")\n",
" formatted_date = datetime.fromisoformat(log.timestamp).strftime(\"%d.%m.%y %H:%M \") # Konvertiere in das gewünschte Format\n",
" print(f\"timestamp: {formatted_date}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ce30a9db-735e-4174-ad56-0f0079ab04c6",
"metadata": {},
"outputs": [],
"source": [
"#alle logs von einem Plant in Tabelle\n",
"import neofarm.lib as neo\n",
"import pandas as pd\n",
"from datetime import datetime\n",
"\n",
"if __name__ == \"__main__\":\n",
" asset = neo.Asset.Plant.from_id(\"76f89f82-1238-43bb-b34f-796a92d491a2\")\n",
" \n",
" # Definiere den Pflanzennamen\n",
" PlantName = \"W-Raps Helmacker Plant 24/25\"\n",
" print(f\"PlantName: {PlantName}\")\n",
" \n",
" # Erstelle eine Liste, in der die Log-Daten für die Tabelle gesammelt werden\n",
" data = []\n",
"\n",
" # Funktion, um die Logs zu verarbeiten und zur Tabelle hinzuzufügen\n",
" def process_logs(logs, log_type):\n",
" for log in logs:\n",
" formatted_date = datetime.fromisoformat(log.timestamp).strftime(\"%d.%m.%y %H:%M\")\n",
" equipment_name = log.equipment[0].name if log.equipment else \"\"\n",
" location_name = log.location[0].name if hasattr(log, 'location') and log.location else \"\"\n",
" data.append({\n",
" #\"PlantName\": PlantName,\n",
" \"LogType\": log_type,\n",
" \"Name\": log.name,\n",
" \"Timestamp\": formatted_date,\n",
" \"Equipment\": equipment_name,\n",
" \"Location\": location_name\n",
" })\n",
"\n",
" # Verarbeite die verschiedenen Log-Typen\n",
" process_logs(asset.get_logs_of_type(neo.Log.Maintenance), \"Maintenance\")\n",
" process_logs(asset.get_logs_of_type(neo.Log.Seeding), \"Seeding\")\n",
" process_logs(asset.get_logs_of_type(neo.Log.Input), \"Input\")\n",
" process_logs(asset.get_logs_of_type(neo.Log.Medical), \"Medical\")\n",
" process_logs(asset.get_logs_of_type(neo.Log.Harvest), \"Harvest\")\n",
" process_logs(asset.get_logs_of_type(neo.Log.Sale), \"Sale\")\n",
"\n",
" # Erstelle ein DataFrame aus den gesammelten Daten und zeige es an\n",
" df = pd.DataFrame(data)\n",
" display(df)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "649e4d8e-c3a9-4d5f-9bdf-9427f416fca9",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}