Calculate wind chill. - Java java.lang

Java examples for java.lang:Math Algorithm

Description

Calculate wind chill.

Demo Code

/*//  www. j  ava 2 s  .co m
 *  Copyright 2006 Goran Ehrsson.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */
//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        double tempC = 2.45678;
        double windSpeed = 2.45678;
        System.out.println(calculateWindChill(tempC, windSpeed));
    }

    /**
     * Calculate wind chill.
     * The "Chilled" air temperature can also be expressed as a function of
     * wind velocity and ambient air temperature.
     * 
     * @param tempC temperature in degrees Celsius
     * @param windSpeed wind speed in meters per second (m/s).
     * @return chilled air temperature
     */
    public static double calculateWindChill(final double tempC,
            final double windSpeed) {
        double tempF = celcius2fahrenheit(tempC);
        double mph = ms2mph(windSpeed);
        if (tempF < 50.0 && mph > 3.0) {
            // Wind chill is only defined for temperatures below 50F and
            // wind speed above 3 MPH.
            double chillF = 35.74 + (0.6215 * tempF)
                    - (35.75 * Math.pow(mph, 0.16))
                    + (0.4275 * tempF * Math.pow(mph, 0.16));
            double chillC = (Math.round(fahrenheit2celcius(chillF) * 10)) / 10.0;
            return chillC;
        }
        return tempC;
    }

    /**
     * Convert degrees Celsius to degrees Fahrenheit.
     * @param celcius the temperature in Celsius.
     * @return the temperature in Fahrenheit.
     */
    public static double celcius2fahrenheit(double celcius) {
        return celcius * 9 / 5 + 32;
    }

    /**
     * Convert velocity meter/second to miles/hour.
     * @param ms meter per second
     * @return miles per hour
     */
    public static int ms2mph(double ms) {
        return (int) Math.round(ms * 2.24);
    }

    /**
     * Convert degrees Fahrenheit to degrees Celsius.
     * @param f the temperature in Fahrenheit.
     * @return the temperature in Celsius.
     */
    public static double fahrenheit2celcius(double f) {
        return (f - 32) * 5 / 9.0;
    }
}

Related Tutorials