示例#1
0
 /// <summary>
 /// The CultivoSueloSave.
 /// </summary>
 /// <param name="db">The db<see cref="Database"/>.</param>
 /// <param name="idUnidadCultivo">The idUnidadCultivo<see cref="string"/>.</param>
 /// <param name="idTemporada">The idTemporada<see cref="string"/>.</param>
 /// <param name="idSueloTipo">The idSueloTipo<see cref="string"/>.</param>
 private static void CultivoSueloSave(Database db, string idUnidadCultivo, string idTemporada, string idSueloTipo)
 {
     try {
         List <SueloTipo> lSt = db.Fetch <SueloTipo>("Select * from suelotipo where idSueloTipo=@0", idSueloTipo);
         if (lSt.Count == 0)
         {
             throw new Exception($"El suelo tipo indicado ({idSueloTipo}) no existe");
         }
         foreach (SueloTipo st in lSt)
         {
             UnidadCultivoSuelo ucs = new UnidadCultivoSuelo {
                 Arcilla              = st.Arcilla,
                 Arena                = st.Arena,
                 ElementosGruesos     = st.ElementosGruesos,
                 IdHorizonte          = st.IdHorizonte,
                 IdUnidadCultivo      = idUnidadCultivo,
                 Limo                 = st.Limo,
                 MateriaOrganica      = st.MateriaOrganica,
                 ProfundidadHorizonte = st.Profundidad,
                 IdTemporada          = idTemporada
             };
             db.Save(ucs);
         }
     } catch (Exception ex) {
         throw new Exception(ex.Message);
     }
 }
示例#2
0
        /// <summary>
        /// Calcula de la capacidad de campo
        /// Abreviaturas
        /// suelo.Arena/Arcilla/ElementosGruesos:     % arena, % arcilla, % Elementos Gruesos (%w)
        /// mo100:   materia Orgánica, (%w)
        /// O33t:    humedad a 33 kPa, primera solución (%v)
        /// O33:     humedad 33 kPa, densidad normal (%v)
        /// PAW33:   cantidad de agua disponible a 33 kPa.
        /// </summary>
        /// <param name="suelo">The suelo<see cref="UnidadCultivoSuelo"/>.</param>
        /// <returns>The <see cref="double"/>.</returns>
        public static double CapacidadCampo(this UnidadCultivoSuelo suelo)
        {
            double mo100 = suelo.MateriaOrganica * 100; //Nota: esta conversión es porque en BBDD no se apunta %M.O. como valor porcentual
            double o33t  = -0.251 * suelo.Arena + 0.195 * suelo.Arcilla + 0.011 * mo100 + 0.006 * (suelo.Arena * mo100) - 0.027 * (suelo.Arcilla * mo100) + 0.452 * (suelo.Arena * suelo.Arcilla) + 0.299;
            double o33   = o33t + (1.283 * (o33t * o33t) - 0.374 * (o33t) - 0.015);
            double paw33 = o33 * (1 - suelo.ElementosGruesos);

            return(paw33);
        }
示例#3
0
        /// <summary>
        /// Calculo del punto de marchitez
        /// Segun formula Saxton-Rawls (2006)
        /// Abreviaturas
        /// suelo.Arena/Arcilla/ElementosGruesos:     % arena, % arcilla, % Elementos Gruesos (%w)
        /// mo100:   materia Orgánica, (%w)
        /// O1500t:  humedad a 1500 kPa, primera solución (%v)
        /// O1500:   humedad a 1500 kPa, (%v)
        /// PAW1500: cantidad de agua disponible a 1500 kPa.
        /// </summary>
        /// <param name="suelo">The suelo<see cref="UnidadCultivoSuelo"/>.</param>
        /// <returns>The <see cref="double"/>.</returns>
        public static double PuntoDeMarchitez(this UnidadCultivoSuelo suelo)
        {
            double mo100   = suelo.MateriaOrganica * 100; //Nota: esta conversión es porque en BBDD no se apunta %M.O. como valor porcentual
            double o1500t  = -0.024 * suelo.Arena + 0.487 * suelo.Arcilla + 0.006 * mo100 + 0.005 * (suelo.Arena * mo100) - 0.013 * (suelo.Arcilla * mo100) + 0.068 * (suelo.Arena * suelo.Arcilla) + 0.031;
            double o1500   = o1500t + (0.14 * o1500t - 0.02);
            double paw1500 = o1500 * (1 - suelo.ElementosGruesos);

            return(paw1500);
        }