Esta sección está basada en formularios introducidos por los visitantes de esta página. Las preguntas que contiene son muy parecidas a las de la mayoría de estudios científicos y gubernamentales.
Cada entrada en el formulario se guarda como dígito con un intervalo [-2, +2], significando -2 un valor muy negativo y +2 un valor muy positivo.
Filtramos los formularios para eliminar posibles intentos de spam, por ejemplo, gente introduciendo una gran cantidad de datos muy diferentes al valor medio.
Al presentar los resultados, utilizamos la escala [0,100] para facilitar la lectura de los valores a los usuarios.
Para generar un índice actualizado, utilizamos datos con una antigüedad de hasta 36 meses. Solo incluimos ciudades para las que existe un número mínimo de contribuciones. Nuestro índice semi-anual se recompone dos veces al año incluyendo datos actuales en la perspectiva histórica.
La mayor parte de nuestros datos se basan en percepciones (opiniones) de los visitantes de nuestra página. Para la sección sobre contaminación, incluimos algunos datos de instituciones como la Organización Mundial de la Salud y otros organismos si encontramos dichos datos relevantes.
El Índice de Contaminación es una valoración de la contaminación general de la ciudad. Se otorga el mayor peso a la contaminación del aire, teniendo preferencia sobre la del agua potable o su accesibilidad, dos factores de contaminación también importantes. Se otorga menos peso a otros tipos de contaminación.
La Escala Exp. de Contaminación utiliza una progresión exponencial para mostrar números muy altos para las ciudades muy contaminadas y números muy bajos para las menos contaminadas. Por lo tanto, en la fórmula se utiliza la función exponencial para calcular este índice.
Las fórmulas completas para calcular los índices están sujetas a cambios. En este momento se están utilizando fórmulas empíricas bastante complejas.
La fórmula completa tal como aparece en lenguaje de programación Java, es la siguiente:
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)); }Para calcular el número de árboles que se necesitan para compensar la emisión de CO2, se asumen 240 días de desplazamientos al año y la referencia "un solo árbol puede absorber dióxido de carbono a un ritmo de 48 lb. (casi 22 kg.) al año." - Arbor Enviromental Alliance. En fórmula java:
double co2CommuteConsumptionYearly = 240 * index.co2; double treesNeededForCommute = (co2CommuteConsumptionYearly / 1000) / 21.77; //each tree absorbs about 21.77kg of CO2
Esta página ha sido traducida del inglés. Improve translation of this page