示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Density"/> class.
 /// </summary>
 /// <param name="xy">The x and y.</param>
 /// <param name="units">The units.</param>
 public Density(double xy, DensityUnit units)
     : this(xy, xy, units)
 {
 }
示例#2
0
 /// <summary>
 /// Initializes a new instance of <see cref="Gu.Units.Wpf.DensityConverter"/>.
 /// </summary>
 /// <param name="unit"><see cref="Gu.Units.DensityUnit"/>.</param>
 public DensityConverter(DensityUnit unit)
 {
     Unit = unit;
 }
示例#3
0
 /// <summary>
 ///     Get string representation of value and unit. Using two significant digits after radix.
 /// </summary>
 /// <param name="unit">Unit representation to use.</param>
 /// <param name="cultureName">Name of culture (ex: "en-US") to use for localization and number formatting. Defaults to <see cref="UnitSystem" />'s default culture.</param>
 /// <returns>String representation.</returns>
 public string ToString(DensityUnit unit, [CanBeNull] string cultureName)
 {
     return(ToString(unit, cultureName, 2));
 }
示例#4
0
 public string ToString(DensityUnit unit, CultureInfo culture = null, int significantDigitsAfterRadix = 2)
 {
     return(ToString(unit, culture, UnitFormatter.GetFormat(As(unit), significantDigitsAfterRadix)));
 }
示例#5
0
        /// <summary>
        ///     Converts this Duration to another Duration with the unit representation <paramref name="unit" />.
        /// </summary>
        /// <returns>A Duration with the specified unit.</returns>
        public Density ToUnit(DensityUnit unit)
        {
            var convertedValue = GetValueAs(unit);

            return(new Density(convertedValue, unit));
        }
        public static string GetAbbreviation(DensityUnit unit, [CanBeNull] IFormatProvider provider)
        {
            provider = provider ?? UnitSystem.DefaultCulture;

            return(UnitSystem.GetCached(provider).GetDefaultAbbreviation(unit));
        }
示例#7
0
        /// <summary>
        ///     Converts this Density to another Density with the unit representation <paramref name="unit" />.
        /// </summary>
        /// <returns>A Density with the specified unit.</returns>
        public Density ToUnit(DensityUnit unit)
        {
            var convertedValue = AsBaseNumericType(unit);

            return(new Density(convertedValue, unit));
        }
示例#8
0
 /// <summary>
 ///     Dynamically convert from value and unit enum <see cref="DensityUnit" /> to <see cref="Density" />.
 /// </summary>
 /// <param name="value">Value to convert from.</param>
 /// <param name="fromUnit">Unit to convert from.</param>
 /// <returns>Density unit value.</returns>
 public static Density From(double value, DensityUnit fromUnit)
 {
     return(new Density(value, fromUnit));
 }
示例#9
0
 public static Density From(double value, DensityUnit fromUnit)
示例#10
0
        public static Density From(QuantityValue value, DensityUnit fromUnit)
#endif
        {
            return(new Density((double)value, fromUnit));
        }
示例#11
0
 Density(double numericValue, DensityUnit unit)
 {
     _value = numericValue;
     _unit  = unit;
 }
        // This processing detemines the N P K values in lb per acre for the fertilizer select and appricatio rate/density etc.
        public FertilizerNutrients GetFertilizerNutrients()
        {
            FertilizerNutrients fn = new FertilizerNutrients();

            // get the fertilizer N P K % values from fertlizer look up
            //  for dry fertilizers
            //      N (lb/ac) = Application rate converted to lb/ac * N %
            //      P and K same as above
            //  for wet fertilizers
            //      N (lb/ac) = Application rate converted to lb/ac * N% * Density converted to lb / imp gallons
            //

            decimal applicationRateConversion = 0;
            decimal densityInSelectedUnit     = 0;
            decimal densityUnitConversion     = 0;

            Fertilizer _fertilizer = _sd.GetFertilizer(FertilizerId.ToString());

            if ((CustomFertilizer && FertilizerType == "dry") || (!CustomFertilizer && _fertilizer.dry_liquid == "dry"))
            {
                densityUnitConversion = 1;
                switch (ApplicationRateUnits)
                {
                case 1:   // application rate in lb/ac no conversion required
                    applicationRateConversion = 1;
                    break;

                case 2:   // application rate in kg/ha, convert to lb/ac
                    ConversionFactor _cf = _sd.GetConversionFactor();
                    applicationRateConversion = _cf.kgperha_lbperac_conversion;
                    break;

                case 7:   // application rate in lb/100 ft squared, convert to lb/ac
                    ConversionFactor _cf1 = _sd.GetConversionFactor();
                    applicationRateConversion = _cf1.lbper1000ftsquared_lbperac_conversion;
                    break;
                }
            }
            else //use liquid fertilizer
            {
                FertilizerUnit _fU = _sd.GetFertilizerUnit(ApplicationRateUnits);
                applicationRateConversion = _fU.conv_to_impgalperac;
                if (CustomFertilizer)
                {
                    densityInSelectedUnit = Density;
                }
                else
                {
                    LiquidFertilizerDensity _lfd = _sd.GetLiquidFertilizerDensity(FertilizerId, DensityUnits);
                    densityInSelectedUnit = _lfd.value;
                }
                DensityUnit _du = _sd.GetDensityUnit(DensityUnits);
                densityUnitConversion = _du.convfactor * densityInSelectedUnit;
            }

            fn.fertilizer_N    = ApplicationRate * decimal.Divide(userN, 100) * applicationRateConversion * densityUnitConversion;
            fn.fertilizer_P2O5 = ApplicationRate * decimal.Divide(userP2o5, 100) * applicationRateConversion * densityUnitConversion;
            fn.fertilizer_K2O  = ApplicationRate * decimal.Divide(userK2o, 100) * applicationRateConversion * densityUnitConversion;

            return(fn);
        }
 protected static string CreateSuffix(SymbolFormat format, DensityUnit unit)
 {
     return default(Density).ToString(unit, format).Trim('0');
 }
 protected override DensityUnit __DoSubstraction(DensityUnit right)
 {
     return new KilogramPerCubicMeter(Value - right.Value);
 }
示例#15
0
        private double AsBaseNumericType(DensityUnit unit)
        {
            if (Unit == unit)
            {
                return(_value);
            }

            var baseUnitValue = AsBaseUnit();

            switch (unit)
            {
            case DensityUnit.DecigramPerDeciliter: return((baseUnitValue * 1e-1) / 1e-1d);

            case DensityUnit.DecigramPerLiter: return((baseUnitValue * 1) / 1e-1d);

            case DensityUnit.DecigramPerMilliliter: return((baseUnitValue * 1e-3) / 1e-1d);

            case DensityUnit.GramPerCubicCentimeter: return(baseUnitValue * 1e-3);

            case DensityUnit.GramPerCubicMeter: return(baseUnitValue * 1e3);

            case DensityUnit.GramPerCubicMillimeter: return(baseUnitValue * 1e-6);

            case DensityUnit.GramPerDeciliter: return(baseUnitValue * 1e-1);

            case DensityUnit.GramPerLiter: return(baseUnitValue * 1);

            case DensityUnit.GramPerMilliliter: return(baseUnitValue * 1e-3);

            case DensityUnit.KilogramPerCubicCentimeter: return((baseUnitValue * 1e-3) / 1e3d);

            case DensityUnit.KilogramPerCubicMeter: return((baseUnitValue * 1e3) / 1e3d);

            case DensityUnit.KilogramPerCubicMillimeter: return((baseUnitValue * 1e-6) / 1e3d);

            case DensityUnit.KilopoundPerCubicFoot: return((baseUnitValue * 0.062427961) / 1e3d);

            case DensityUnit.KilopoundPerCubicInch: return((baseUnitValue * 3.6127298147753e-5) / 1e3d);

            case DensityUnit.MilligramPerCubicMeter: return((baseUnitValue * 1e3) / 1e-3d);

            case DensityUnit.MilligramPerDeciliter: return((baseUnitValue * 1e-1) / 1e-3d);

            case DensityUnit.MilligramPerLiter: return((baseUnitValue * 1) / 1e-3d);

            case DensityUnit.MilligramPerMilliliter: return((baseUnitValue * 1e-3) / 1e-3d);

            case DensityUnit.PoundPerCubicFoot: return(baseUnitValue * 0.062427961);

            case DensityUnit.PoundPerCubicInch: return(baseUnitValue * 3.6127298147753e-5);

            case DensityUnit.PoundPerImperialGallon: return(baseUnitValue / 9.9776398e1);

            case DensityUnit.PoundPerUSGallon: return(baseUnitValue / 1.19826427e2);

            case DensityUnit.SlugPerCubicFoot: return(baseUnitValue * 0.00194032033);

            case DensityUnit.TonnePerCubicCentimeter: return(baseUnitValue * 1e-9);

            case DensityUnit.TonnePerCubicMeter: return(baseUnitValue * 0.001);

            case DensityUnit.TonnePerCubicMillimeter: return(baseUnitValue * 1e-12);

            default:
                throw new NotImplementedException($"Can not convert {Unit} to {unit}.");
            }
        }
示例#16
0
 private Density(FLT flt, double value, DensityUnit unit)
     : base(flt, value, unit)
 {
 }
示例#17
0
 public static void HasConversion(this PropertyBuilder <Density> propertyBuilder, DensityUnit unit) =>
 propertyBuilder.HasConversion(v => v.As(unit), v => new Density(v, unit));
示例#18
0
 /// <summary>
 ///     Convert to the unit representation <paramref name="unit" />.
 /// </summary>
 /// <returns>Value converted to the specified unit.</returns>
 public double As(DensityUnit unit) => GetValueAs(unit);
示例#19
0
        //HeatFluxDensityUnit heatTransferCoefficient;
        //ForceUnit force;
        //SurfaceTensionUnit surfaceTension;

        public UnitSystem(TemperatureUnit temperature, PressureUnit pressure, MassFlowRateUnit massFlowRate,
                          VolumeFlowRateUnit volumeFlowRate, MoistureContentUnit moistureContent,
                          RatioUnit relativeHumidity, SpecificEnergyUnit enthalpy,
                          SpecificHeatUnit specificHeat, EnergyUnit energy, PowerUnit power, DensityUnit density,
                          DynamicViscosityUnit dynamicViscosity, KinematicViscosityUnit kinematicViscosity,
                          ThermalConductivityUnit conductivity, DiffusivityUnit diffusivity, MassUnit mass,
                          LengthUnit length, AreaUnit area, VolumeUnit volume, TimeUnit Time, string name) //ep
        {
            this.temperature        = temperature;
            this.pressure           = pressure;
            this.massFlowRate       = massFlowRate;
            this.volumeFlowRate     = volumeFlowRate;
            this.moistureContent    = moistureContent;
            this.relativeHumidity   = relativeHumidity;
            this.enthalpy           = enthalpy;
            this.specificHeat       = specificHeat;
            this.energy             = energy;
            this.power              = power;
            this.density            = density;
            this.dynamicViscosity   = dynamicViscosity;
            this.kinematicViscosity = kinematicViscosity;
            this.conductivity       = conductivity;
            this.diffusivity        = diffusivity;
            this.mass     = mass;
            this.length   = length;
            this.area     = area;
            this.volume   = volume;
            this.time     = time;
            this.Name     = name;  //ep
            this.readOnly = false; //ep
        }
 public static Density?From(QuantityValue?value, DensityUnit fromUnit)
 {
     return(value.HasValue ? new Density((double)value.Value, fromUnit) : default(Density?));
 }
        // This processing detemines the N P K values in lb per acre for the fertilizer select and appricatio rate/density etc.
        public FertilizerNutrients GetFertilizerNutrients(int FertilizerId,
                                                          string fertilizerType,
                                                          decimal applicationRate,
                                                          int applicationRateUnits,
                                                          decimal density,
                                                          int densityUnits,
                                                          decimal userN,
                                                          decimal userP2o5,
                                                          decimal userK2o,
                                                          bool customFertilizer)
        {
            var fn = new FertilizerNutrients();

            // get the fertilizer N P K % values from fertlizer look up
            //  for dry fertilizers
            //      N (lb/ac) = Application rate converted to lb/ac * N %
            //      P and K same as above
            //  for wet fertilizers
            //      N (lb/ac) = Application rate converted to lb/ac * N% * Density converted to lb / imp gallons
            //

            decimal applicationRateConversion = 0;
            decimal densityInSelectedUnit     = 0;
            decimal densityUnitConversion     = 0;

            Fertilizer _fertilizer = _sd.GetFertilizer(FertilizerId.ToString());

            if (customFertilizer && fertilizerType == "dry" || !customFertilizer && _fertilizer.DryLiquid == "dry")
            {
                densityUnitConversion = 1;
                switch (applicationRateUnits)
                {
                case 1:     // application rate in lb/ac no conversion required
                    applicationRateConversion = 1;
                    break;

                case 2:     // application rate in kg/ha, convert to lb/ac
                    ConversionFactor _cf = _sd.GetConversionFactor();
                    applicationRateConversion = _cf.KilogramPerHectareToPoundPerAcreConversion;
                    break;

                case 7:     // application rate in lb/100 ft squared, convert to lb/ac
                    ConversionFactor _cf1 = _sd.GetConversionFactor();
                    applicationRateConversion = _cf1.PoundPer1000FtSquaredToPoundPerAcreConversion;
                    break;
                }
            }
            else //use liquid fertilizer
            {
                FertilizerUnit _fU = _sd.GetFertilizerUnit(applicationRateUnits);
                applicationRateConversion = _fU.ConversionToImperialGallonsPerAcre;
                if (customFertilizer)
                {
                    densityInSelectedUnit = density;
                }
                else
                {
                    LiquidFertilizerDensity _lfd = _sd.GetLiquidFertilizerDensity(FertilizerId, densityUnits);
                    densityInSelectedUnit = _lfd.Value;
                }
                DensityUnit _du = _sd.GetDensityUnit(densityUnits);
                densityUnitConversion = _du.ConvFactor * densityInSelectedUnit;
            }

            fn.fertilizer_N    = applicationRate * decimal.Divide(userN, 100) * applicationRateConversion * densityUnitConversion;
            fn.fertilizer_P2O5 = applicationRate * decimal.Divide(userP2o5, 100) * applicationRateConversion * densityUnitConversion;
            fn.fertilizer_K2O  = applicationRate * decimal.Divide(userK2o, 100) * applicationRateConversion * densityUnitConversion;

            return(fn);
        }
 /// <summary>
 ///     Get string representation of value and unit. Using two significant digits after radix.
 /// </summary>
 /// <param name="unit">Unit representation to use.</param>
 /// <param name="provider">Format to use for localization and number formatting. Defaults to <see cref="UnitSystem.DefaultCulture" />.</param>
 /// <returns>String representation.</returns>
 public string ToString(DensityUnit unit, [CanBeNull] IFormatProvider provider)
 {
     return(ToString(unit, provider, 2));
 }
示例#23
0
 /// <summary>
 ///     Get string representation of value and unit. Using current UI culture and two significant digits after radix.
 /// </summary>
 /// <param name="unit">Unit representation to use.</param>
 /// <returns>String representation.</returns>
 public string ToString(DensityUnit unit)
 {
     return(ToString(unit, null, 2));
 }
示例#24
0
 public static string GetAbbreviation(DensityUnit unit, CultureInfo culture = null)
 {
     return(UnitSystem.GetCached(culture).GetDefaultAbbreviation(unit));
 }
示例#25
0
 /// <summary>
 ///     Get string representation of value and unit. Using two significant digits after radix.
 /// </summary>
 /// <param name="unit">Unit representation to use.</param>
 /// <param name="culture">Culture to use for localization and number formatting.</param>
 /// <returns>String representation.</returns>
 public string ToString(DensityUnit unit, [CanBeNull] Culture culture)
 {
     return(ToString(unit, culture, 2));
 }
示例#26
0
 public string ToString(DensityUnit unit, CultureInfo culture, string format, params object[] args)
 {
     return(string.Format(culture, format, UnitFormatter.GetFormatArgs(unit, As(unit), culture, args)));
 }
示例#27
0
 public static string GetAbbreviation(DensityUnit unit)
 {
     return(GetAbbreviation(unit, null));
 }
示例#28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Density"/> class.
 /// </summary>
 /// <param name="x">The x.</param>
 /// <param name="y">The y.</param>
 /// <param name="units">The units.</param>
 public Density(double x, double y, DensityUnit units)
 {
     X     = x;
     Y     = y;
     Units = units;
 }
示例#29
0
 public static string GetAbbreviation(DensityUnit unit, [CanBeNull] Culture culture)
 {
     return(UnitSystem.GetCached(culture).GetDefaultAbbreviation(unit));
 }
 protected override DensityUnit __DoAddition(DensityUnit right)
 {
     return new KilogramPerCubicMeter(Value + right.Value);
 }
示例#31
0
 /// <summary>
 ///     Creates the quantity with the given numeric value and unit.
 /// </summary>
 /// <param name="value">The numeric value to construct this quantity with.</param>
 /// <param name="unit">The unit representation to construct this quantity with.</param>
 /// <exception cref="ArgumentException">If value is NaN or Infinity.</exception>
 public Density(double value, DensityUnit unit)
 {
     _value = value;
     _unit  = unit;
 }
        /// <summary>
        /// Jpeg_set_defaultses this instance.
        /// </summary>
        /// <remarks>Uses only the input image's color space (property <see cref="jpeg_compress_struct.In_color_space"/>, 
        /// which must already be set in <see cref="jpeg_compress_struct"/>). Many applications will only need 
        /// to use this routine and perhaps <see cref="jpeg_compress_struct.jpeg_set_quality"/>.
        /// </remarks>
        /// <seealso href="ce3f6712-3633-4a58-af07-626a4fba9ae4.htm" target="_self">Compression parameter selection</seealso>
        public void jpeg_set_defaults()
        {
            /* Safety check to ensure start_compress not called yet. */
            if (m_global_state != JpegState.CSTATE_START)
                ERREXIT(J_MESSAGE_CODE.JERR_BAD_STATE, (int)m_global_state);

            /* Allocate comp_info array large enough for maximum component count.
            * Array is made permanent in case application wants to compress
            * multiple images at same param settings.
            */
            if (m_comp_info == null)
            {
                m_comp_info = jpeg_component_info.createArrayOfComponents(JpegConstants.MAX_COMPONENTS);
            }

            /* Initialize everything not dependent on the color space */

            m_data_precision = JpegConstants.BITS_IN_JSAMPLE;

            /* Set up two quantization tables using default quality of 75 */
            jpeg_set_quality(75, true);

            /* Set up two Huffman tables */
            std_huff_tables();

            /* Default is no multiple-scan output */
            m_scan_info = null;
            m_num_scans = 0;

            /* Expect normal source image, not raw downsampled data */
            m_raw_data_in = false;

            /* By default, don't do extra passes to optimize entropy coding */
            m_optimize_coding = false;

            /* The standard Huffman tables are only valid for 8-bit data precision.
            * If the precision is higher, force optimization on so that usable
            * tables will be computed.  This test can be removed if default tables
            * are supplied that are valid for the desired precision.
            */
            if (m_data_precision > 8)
                m_optimize_coding = true;

            /* By default, use the simpler non-cosited sampling alignment */
            m_CCIR601_sampling = false;

            /* No input smoothing */
            m_smoothing_factor = 0;

            /* DCT algorithm preference */
            m_dct_method = JpegConstants.JDCT_DEFAULT;

            /* No restart markers */
            m_restart_interval = 0;
            m_restart_in_rows = 0;

            /* Fill in default JFIF marker parameters.  Note that whether the marker
            * will actually be written is determined by jpeg_set_colorspace.
            *
            * By default, the library emits JFIF version code 1.01.
            * An application that wants to emit JFIF 1.02 extension markers should set
            * JFIF_minor_version to 2.  We could probably get away with just defaulting
            * to 1.02, but there may still be some decoders in use that will complain
            * about that; saying 1.01 should minimize compatibility problems.
            */
            m_JFIF_major_version = 1; /* Default JFIF version = 1.01 */
            m_JFIF_minor_version = 1;
            m_density_unit = DensityUnit.Unknown;    /* Pixel size is unknown by default */
            m_X_density = 1;       /* Pixel aspect ratio is square by default */
            m_Y_density = 1;

            /* Choose JPEG colorspace based on input space, set defaults accordingly */
            jpeg_default_colorspace();
        }
示例#33
0
 public Density(double value, DensityUnit unit)
     : base(FLT.Density, NormalizeValue(value, unit), DefaultUnit)
 {
 }