Questa sezione è basata su dei sondaggi fatti dagli utenti del sito. Le domande di questi sondaggi sono simili a quelli di molti sondaggi scientifici e governativi.
Ogni voce del sondaggio è compresa tra i valori [-2, +2], in cui -2 ha un valenza fortemente negativa e +2 fortemente positiva.
Filtriamo i sondaggi per eliminare il possibile spam, come persone che immettono una grande quantità di dati lontani dalla media.
Per i risultati dei sondaggi, usiamo la scala [0, 100] per i valori, visto che è più semplice da leggere per gli utenti.
Per generare l'indice corrente (che è sempre aggiornato) usiamo dati degli ultimi 36 mesi. Includiamo città in cui ci sono almeno un certo numero di contributori. Il nostro indice semestrale è aggiornato due volte l'anno aggiungendo l'indice corrente alla vista storica.
La maggior parte dei dati sono di tipo soggettivo (opinioni) forniti direttamente dai visitatori di questo sito web. Per la sezione sull’inquinamento, sono inclusi dati rilevanti dell’Organizzazione Mondiale della Sanità (WHO) e altre istituzioni se considerate rilevanti.
Indice d’Inquinamento è una stima dell’inquinamento generale di una città. Un peso maggiore viene assegnato all’inquinamento dell’aria rispetto all’inquinamento e all’accessibilità dell’acqua, due dei fattori maggiori d’inquinamento. Pesi minori sono assegnati alle altre forme di inquinamento.
Indice d’Inquinamento Esp. usa una scala esponenziale per mostrare valori molto alti per le città con alti livelli d’inquinamento, e valori molto bassi per le città con basso inquinamento. Per cui la formula per calcolare l'indice utilizza una funzione esponenziale.
Le formule effettive utilizzate per calcolare gli indici sono soggette a cambiamenti. In questo momento, sono utilizzate formule empiriche di una certa complessità.
Questa formula è stata scritta in linguaggio Java nel modo seguente:
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)); }Per stimare gli alberi necessari a coprire il consumo di CO2 , consideriamo 240 giorni di uso dell’automobile nel corso dell'anno e ci basiamo sull'assunto che "Un solo albero può assorbire un volume di 48 lb di CO2 l'anno." - Arbor Enviromental Alliance. Da cui la formula Java:
double co2CommuteConsumptionYearly = 240 * index.co2; double treesNeededForCommute = (co2CommuteConsumptionYearly / 1000) / 21.77; //each tree absorbs about 21.77kg of CO2
Questa pagina è stata tradotta dall’Inglese. Improve translation of this page