formulasfrutalesestamcionanalytics
v1.0.2
Published
Paquete para calcular rendimiento distintas especies
Maintainers
Readme
formulasFrutalesEstamcionAnalytics
Paquete de Calculadoras de Rendimiento
Calculadoras puras (sin efectos secundarios) de métricas agronómicas para distintas especies frutales.
Cada clase consume una unidad productiva (productiveUnit) como única fuente de datos y no muta ese objeto: todos los métodos retornan number | null.
Incluye clases:
YieldCalculatorCherryYieldCalculatorCherryPlumYieldCalculatorPeachYieldCalculatorNectarinesYieldCalculatorKiwi
Dependiendo de la clase instanciada serán las funciones disponibles.
Instalación
npm install @tu-org/formulas-frutales-estamcion-analyticsUso rápido
const {
Cerezo,
Ciruelo,
Ciruelo_Cherry_Plum,
Duraznero,
Nectarines,
Kiwi,
} = require("formulas-frutales-estamcion-analytics");
const productiveUnit = {
plantsHa: 1200,
plantsHaProductive: 1100,
surface: 10,
pollinator: 12,
flowersDart: 3.8,
finalDartPostPoda: 220,
caliberObjective: 26,
};
const yc = new Cerezo(productiveUnit);
console.log(yc.yieldObjective()); // Ejemplo de cálculoÍndice de clases y métodos principales
- Cherry
flowersBudDartCalculateflowersPlantPrePodaflowersPlantPostPodatwigObjectiveflowersPlantObjectiveflowersHaPrePodaflowersHaPostPodaflowersHaObjectivetotalPlantsfruitsHaYieldfruitsPlantYieldfruitsSetRealPreRaleofruitsSetRealYieldfruitsSetRealyieldEstimatePrePodayieldEstimatePostPodayieldObjectiveyieldEstimateCounterFruitsyieldEstimateCounterFruitsPostRaleoyieldEstimateCounterFruitsPreRaleoyieldTotallastCounterType
(Los otros calculadores comparten estructura pero con funciones específicas según especie.)
Ejemplo en una API (Express)
const express = require("express");
const { Cerezo } = require("formulas-frutales-estamcion-analytics");
const app = express();
app.use(express.json());
app.post("/calculate/cherry", (req, res) => {
const yc = new Cerezo(req.body);
const result = {
yieldObjective: yc.yieldObjective(),
flowersHaPostPoda: yc.flowersHaPostPoda(),
fruitsHaYield: yc.fruitsHaYield(),
};
res.json(result);
});
app.listen(3000, () => console.log("API running on http://localhost:3000"));Ejemplo en React (Front-End)
import React, { useState } from "react";
import { Cerezo } from "formulas-frutales-estamcion-analytics";
export default function CalculatorForm() {
const [plantsHa, setPlantsHa] = useState(1200);
const [caliberObjective, setCaliberObjective] = useState(26);
const [result, setResult] = useState(null);
const handleCalculate = () => {
const yc = new Cerezo({ plantsHa, caliberObjective });
setResult(yc.yieldObjective());
};
return (
<div>
<h2>Calculadora de Cerezo</h2>
<label>
Plantas/Ha:
<input
type="number"
value={plantsHa}
onChange={(e) => setPlantsHa(Number(e.target.value))}
/>
</label>
<label>
Calibre Objetivo:
<input
type="number"
value={caliberObjective}
onChange={(e) => setCaliberObjective(Number(e.target.value))}
/>
</label>
<button onClick={handleCalculate}>Calcular</button>
{result && <p>Yield Objective: {result}</p>}
</div>
);
}Notas
- Cada función valida entradas (
null,undefined, strings vacíos) antes de calcular. - Si los datos de entrada no son válidos → retorna
null. - No depende de MongoDB ni de otra base de datos: todo se calcula en memoria a partir de
productiveUnit.
