Cette section est basée sur les sondages des visiteurs de ce site web. Les questions pour ces enquêtes sont similaires à de nombreuses enquêtes scientifiques et gouvernementales.
Chaque entrée de l'enquête est enregistrée en tant que le nombre dans l'intervalle [-2, 2], avec -2 ayant un sens très négatif et 2 un sens très positif.
Nous filtrons les enquêtes pour éliminer les spams potentiels, comme les personnes qui entrent une grande quantité de données qui se différencient de la valeur médiane.
Pour présenter le résultat de l'enquête, nous utilisons l'échelle [0, 100] pour les valeurs, car elle est plus facile à lire pour les utilisateurs.
Pour générer un index actuel (qui est toujours mis à jour), nous utilisons des données datant de 36 mois. Nous n'incluons que les villes pour lesquelles il existe au moins un certain nombre de contributeurs. Notre index semestriel est refait deux fois par an en amenant l'index actuel dans cette vue historique.
La plupart de nos données sont basées sur les perceptions (opinions) des visiteurs de ce site. Pour la section sur la pollution, nous incluons certaines données pertinentes de l'Organisation Mondiale de la Santé et d'autres institutions si nous le jugeons utile.
L'Indice de pollution est une estimation de la pollution globale dans la ville. Le plus gros coefficient est donné à la pollution de l'air, puis à la pollution / accessibilité de l'eau, deux principaux facteurs de pollution. Un faible coefficient est donné à d'autres types de pollution.
L'Échelle Exp de Pollution utilise une échelle exponentielle pour montrer des chiffres très élevés pour les villes très polluées, et très bas pour les villes non polluées. Par conséquent, pour calculer la formule, elle utilise la fonction exponentielle pour calculer l'indice.
Les formules réelles pour calculer les indices peuvent changer et, à ce moment-là, des formules empiriques assez complexes sont utilisées.
Ces formules telles qu'écrites en langage de programmation Java sont les suivantes:
public void calculateIndex() { //assumes air_quality and other entries from user are in the range [-2, 2], where -2 means perceived as very low, and +2 means very high //PollutionDbEntry.IS_POLLUTION_AIR_QUALITY and similar are constant variables which are either -1 and 1; i.e. IS_POLLUTION_AIR_QUALITY = -1.0 //These constant variables in PollutionDbEntry class are 1 for values which represent pollutions and -1 for values which represent opposite (purity, cleanliness) index = new PollutionIndex(); double overall = 0.0; overall += 7 * getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_AIR_QUALITY * air_quality); overall += 2 * getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_DRINKING_WATER_QUALITY_ACCESSIBILITY * drinking_water_quality_accessibility); overall += 2 * getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_WATER_POLLUTION * water_pollution); overall += getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_GARBAGE_DISPOSAL_SATISFACTION * garbage_disposal_satisfaction); overall += getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_CLEAN_AND_TIDY * clean_and_tidy); overall += getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_NOISE_AND_LIGHT_POLLUTION * noise_and_light_pollution); overall += getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_GREEN_AND_PARKS_QUALITY * green_and_parks_quality); overall += 2 * getIndexPartPreCalc(PollutionDbEntry.IS_POLLUTION_COMFORTABLE_TO_SPEND_TIME * comfortable_to_spend_time); double overallExpScale = 0.0; overallExpScale += 7 * getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_AIR_QUALITY * air_quality); overallExpScale += 2 * getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_DRINKING_WATER_QUALITY_ACCESSIBILITY * drinking_water_quality_accessibility); overallExpScale += 2 * getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_WATER_POLLUTION * water_pollution); overallExpScale += getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_GARBAGE_DISPOSAL_SATISFACTION * garbage_disposal_satisfaction); overallExpScale += getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_CLEAN_AND_TIDY * clean_and_tidy); overallExpScale += getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_NOISE_AND_LIGHT_POLLUTION * noise_and_light_pollution); overallExpScale += getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_GREEN_AND_PARKS_QUALITY * green_and_parks_quality); overallExpScale += 2 * getIndexPartPreCalcExpScaleStandard(PollutionDbEntry.IS_POLLUTION_COMFORTABLE_TO_SPEND_TIME * comfortable_to_spend_time); index.main = overall / 14.5; //max 17 index.expScale = calcScaleStandardIndexFromSum(overallExpScale, 12); } protected double getIndexPartPreCalc(double internalValue) { return (internalValue + 2) * 25; } protected double getIndexPartPreCalcExpScaleStandard(double internalValue) { return getIndexPartPreCalcExpScale(internalValue, Math.E); } protected double getIndexPartPreCalcExpScale(double internalValue, double exp) { return Math.pow((internalValue + 2) * 25, exp); } protected double calcScaleStandardIndexFromSum(double scaleSum, int elems) { return Math.pow(scaleSum / elems, 1 / (Math.E * 8.8 / 10)); }Pour estimer le nombre d'arbres pour couvrir la consommation de CO2, nous supposons 240 jours de déplacement pendant l'année et nous utilisons la citation "qu'un arbre peut absorber le CO2 à raison de 48 lb par an." - Arbor Enviromental Alliance. Comme formule java:
double co2CommuteConsumptionYearly = 240 * index.co2; double treesNeededForCommute = (co2CommuteConsumptionYearly / 1000) / 21.77; //each tree absorbs about 21.77kg of CO2
Cette page a été traduite de l'anglais. Improve translation of this page