#footprint #calculator #carbon #gas #implemented #co2

carbon_footprint_calculator

使用Rust和编译成WASM实现的碳足迹计算器

1个不稳定版本

0.1.0 2024年8月27日

#256WebAssembly

MIT 许可证

215KB
204

碳足迹计算器

本项目是一个使用Rust WebAssembly和React实现的碳足迹计算器。

项目结构

  • src/: Rust WASM
  • tests/: 测试
  • www/: 前端

计算逻辑

碳足迹是根据以下四个主要因素计算的

  1. 电力使用
  2. 天然气使用
  3. 驾驶汽车里程
  4. 乘坐航班次数

计算公式

每年的总碳足迹(以吨CO2当量计算)如下计算

Carbon Footprint = (Electricity * 0.0005) + (Gas * 0.005) + (CarMiles * 0.000404) + (Flights * 0.24)

其中

  • 电力为每月每千瓦时的千瓦时
  • 天然气为每月每百万英热单位
  • CarMiles为每月行驶的英里数
  • Flights为每年的航班次数

系数背后的原因

  1. 电力(0.0005吨CO2e/千瓦时):这是基于美国每千瓦时的平均二氧化碳排放量。它可能因不同地区的能源组合而有所不同。

  2. 天然气(0.005吨CO2e/百万英热单位):此系数来自燃烧天然气产生的二氧化碳排放。

  3. 汽车里程(0.000404吨CO2e/英里):这是基于乘客车辆的平均排放量。它可能因具体车辆的燃油效率而有所不同。

  4. 航班(0.24吨CO2e/航班):这是一个平均航班的粗略估计。长途航班的影响会更大,而短途航班的影响会更小。

请注意,这是一个基本的近似值,可能不会反映最新的或特定地区的排放因子。为了更准确的计算,请考虑使用来自以下可信来源的数据:

此计算器的未来版本旨在纳入更准确和地区特定的数据,以改进估计。

使用碳足迹计算器库

碳足迹计算器作为一个Rust库提供,可以轻松集成到您的Rust项目中,特别是那些针对WebAssembly的项目。

将库添加到您的项目

要在您的Rust项目中使用碳足迹计算器,请将其添加到您的Cargo.toml

[dependencies]
carbon_footprint_calculator = "0.1.0"

基本用法

以下是如何在Rust代码中使用碳足迹计算器的基本示例

use carbon_footprint_calculator::Calculator;

fn main() {
    let calculator = Calculator::new();
    
    let input = serde_json::json!({
        "electricity": 500.0,  // kWh per month
        "gas": 50.0,           // therms per month
        "car_miles": 1000.0,   // miles per month
        "flights": 2.0         // flights per year
    });

    match calculator.calculate(input.into()) {
        Ok(result) => {
            let footprint: f64 = result.into_serde().unwrap();
            println!("Your carbon footprint is approximately {} tons CO2e/year", footprint);
        },
        Err(e) => println!("Error calculating footprint: {:?}", e),
    }
}

WebAssembly用法

这个库特别适用于WebAssembly环境。以下是如何在Web应用程序中使用它的示例

import init, { Calculator } from 'carbon_footprint_calculator';

async function calculateFootprint() {
    await init();
    const calculator = new Calculator();
    
    const input = {
        electricity: 500,  // kWh per month
        gas: 50,           // therms per month
        car_miles: 1000,   // miles per month
        flights: 2         // flights per year
    };

    const result = calculator.calculate(input);
    console.log(`Your carbon footprint is approximately ${result.footprint.toFixed(2)} tons CO2e/year`);
}

calculateFootprint();

有关更详细的用法说明和API文档,请参阅crate文档

部署

当向主分支推送更改时,项目会自动部署到GitHub Pages。

依赖项

~1.6–2.4MB
~36K SLoC