1个不稳定版本
新 0.1.0 | 2024年8月27日 |
---|
#256 在 WebAssembly
215KB
204 行
碳足迹计算器
本项目是一个使用Rust WebAssembly和React实现的碳足迹计算器。
项目结构
src/
: Rust WASMtests/
: 测试www/
: 前端
计算逻辑
碳足迹是根据以下四个主要因素计算的
- 电力使用
- 天然气使用
- 驾驶汽车里程
- 乘坐航班次数
计算公式
每年的总碳足迹(以吨CO2当量计算)如下计算
Carbon Footprint = (Electricity * 0.0005) + (Gas * 0.005) + (CarMiles * 0.000404) + (Flights * 0.24)
其中
- 电力为每月每千瓦时的千瓦时
- 天然气为每月每百万英热单位
- CarMiles为每月行驶的英里数
- Flights为每年的航班次数
系数背后的原因
-
电力(0.0005吨CO2e/千瓦时):这是基于美国每千瓦时的平均二氧化碳排放量。它可能因不同地区的能源组合而有所不同。
-
天然气(0.005吨CO2e/百万英热单位):此系数来自燃烧天然气产生的二氧化碳排放。
-
汽车里程(0.000404吨CO2e/英里):这是基于乘客车辆的平均排放量。它可能因具体车辆的燃油效率而有所不同。
-
航班(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