Climate Index estimates the overall climate desirability of a city or country. It ranges from -100 to +100, with higher values indicating more favorable climates.
Cities with a Climate Index of 100 typically have moderate temperatures, low humidity, and no extreme weather conditions that are generally considered undesirable. However, climate preferences vary—some people prefer colder weather, others enjoy warmer climates, and some are comfortable with high humidity. Therefore, this index serves as a general guideline and should not be interpreted as an absolute measure of climate quality.
public double getHumidex() { return temp_high_avg + 0.5555 * (6.1 * Math.exp(5417.7530 * (1 / 273.16 - 1 / (dewpoint_high_avg + 273.15))) - 10); } public double getRanking() { //first it is calculated in range [-30, 30] then multiplied double base = 30; if (dewpoint_low_avg < 10) { base -= Math.pow(0.25 * (10 - dewpoint_low_avg), 1.2); } //26 Severely high. Even deadly for asthma related illnesses //24 Extremely uncomfortable, fairly oppressive //21 Very humid, quite uncomfortable //18 Somewhat uncomfortable for most people at upper edge if (dewpoint_high_avg > 18) { base -= Math.pow( (dewpoint_high_avg - 18), 1.2); // 10^1.2 = 15.8 } //http://courses.washington.edu/me333afe/Comfort_Health.pdf //37.7 very uncomfortable //32 uncomfortable //12 uncomfortable //0 very uncomfortable if (temp_high_avg > 31) { base -= Math.pow(temp_high_avg - 31, 1.5); // 10 ^ 1.4 = 25, 10 ^ 1.5 = 31.6 } if (temp_low_avg < 8) { base -= Math.pow( (8 - temp_low_avg) / 2, 1.55); // -20c, 30/2=15 , 15 ^ 1.6 = 76 } double humidex = getHumidex(); //humindex > 31 yellow //humindex > 40 orange //humindex > 46 red if (humidex > 31) { base -= (humidex - 31) / 4.0; } if (base < -30) { base = -30.0; } if (base > 30) { base = 30.0; } base = base * 100 / 30.0; return base;
public double getRanking() { //first it is calculated in range [-30, 30] then multiplied double base = 30; if (dewpoint_low_avg < 10) { base -= Math.pow(0.25 * (10 - dewpoint_low_avg), 1.2); } //26 Severely high. Even deadly for asthma related illnesses //24 Extremely uncomfortable, fairly oppressive //21 Very humid, quite uncomfortable //18 Somewhat uncomfortable for most people at upper edge if (dewpoint_high_avg > 16) { base -= Math.pow(dewpoint_high_avg - 16, 1.47); // 10^1.5 = 31.11 } //http://courses.washington.edu/me333afe/Comfort_Health.pdf //37.7 very uncomfortable //32 uncomfortable //12 uncomfortable //0 very uncomfortable if (temp_high_avg > 30) { base -= Math.pow(temp_high_avg - 30, 1.4); // 10 ^ 1.4 = 25.11 } if (temp_low_avg < 5) { base -= Math.pow( (5 - temp_low_avg) / 2, 1.35); // 10 ^ 1.35 = 22.00 } if (chanceofthunderday > 40) { base -= (chanceofthunderday - 25) / 7; } if (chanceoftornadoday > 1) { base -= chanceoftornadoday * 2; } if (chanceofrainday > 40) { base -= (chanceofrainday - 25) / 7; } if (chanceofcloudyday > 50) { base -= (chanceofcloudyday - 25) / 7; } if (chanceoffogday > 30) { base -= (chanceoffogday - 15) / 5; } if (base < -30) { base = -30.0; } base *= 100 / 30.0; return base; }