UNPKG

@idm-plugin/ghg

Version:

idm plugin for greenhouse gas

501 lines (500 loc) 15.2 kB
export interface EmissionFactor { co2: number; ch4?: number; n2o?: number; cj?: number; lcv?: number; wtt?: number; E?: number; rwd?: number; } export interface Fuel { type: FuelType | string; cons?: number; consumption?: number; areaRate?: number; euetsRate?: number; fuelEURate?: number; customFactor?: EmissionFactor; factor?: EmissionFactor; } /** * ETS配额缴纳比例 */ export declare const YearRatio: { [key: number]: number; }; /** * FuelEU风帆奖励系数: * * 使用风力辅助推进系统 (WAPS) 的船舶在其最终计算的温室气体强度上获得直接降低。 * 奖励因子 (f 风力) 的范围从 0.01(降低 1%)到最大 * 0.05(降低 5%),具体取决于风力提供的推进功率的计算份额。 * 如果风力贡献占总推进功率的 15% 或更多,则适用最大 5% 的降低。 */ export declare enum WindRewardFactor { PROP5 = 0.99, PROP10 = 0.97, PROP15 = 0.95, NONE = 1 } /** * 各种燃料的排放因子 * 参考官方文件: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:02015R0757-20240101 * https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32023R1805 */ export declare const GHGEmissionFactor: { [key: string]: EmissionFactor; }; /** * Global warming potential, 计算 MRV时使用 */ export declare const GWP_AR5: { [key: string]: number; }; /** * Global warming potential, 计算FuelEU时使用 */ export declare const GWP_AR4: { [key: string]: number; }; export declare enum FuelType { HFO = "HFO", LFO = "LFO", MGO = "MGO", MDO = "MDO", LNG_OTTO_MEDIUM_SPD = "LNG_OTTO_MEDIUM_SPD", LNG_OTTO_SLOW_SPD = "LNG_OTTO_SLOW_SPD", LNG_DIESEL_SLOW_SPD = "LNG_DIESEL_SLOW_SPD", LNG_LBSI = "LNG_LBSI", LPG_PROPANE = "LPG_PROPANE", LPG_BUTANE = "LPG_BUTANE", LNG = "LNG", METHANOL = "METHANOL", BIODIESEL = "BIODIESEL", ETHANE = "ETHANE" } export declare enum EUMRVLegCategory { EU_MRV_Non_EU = "Non EU", EU_MRV_Arrived_EU = "Arrived EU", EU_MRV_Departed_EU = "Departed EU", EU_MRV_Between_EU = "Between EU" } export declare class EUTESHelper { /** * 计算MRV (Monitoring/Reporting/Verification) TTW (Tank to Wake) * @param cons 燃料消耗, 单位 mt * @param fc 排放因子, 单位 gGHG/gFuel * @param cj 燃料泄漏系数, 单位 % * @param lcv 燃料热值, 单位 MJ/g * @param ch4 是否是 CH4(甲烷) * @returns { * mrv, 燃料产生的温室气体排放量, 单位 mt * ttw, 燃料从Tank到Wake的温室气体排放常量, 单位 gGHG/gFuel * } */ static calculateMRV(cons: number, fc: number, cj: number | undefined, lcv: number, ch4?: boolean): { mrv: number; ttw: number; }; /** *计算WtT (Well to Tank) GHG Intensity * @param factor * @returns WtT GHG Intensity, 单位 gCO2eq/MJ */ static calculateWtT(factor: EmissionFactor): number; /** * 计算 CO2 MRV (Monitoring/Reporting/Verification) * @param cons 油耗, 单位 mt * @param type 油耗类型 * @param customFactor 自定义排放因子 * @param options 配置项 * @returns { mrv, ttw } */ static calculateCO2MRV(cons: number, type: FuelType | string, customFactor?: EmissionFactor, options?: { requestId?: string; }): { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number; cj: number | undefined; lcv: number | undefined; }; /** * 计算 CH4 MRV (Monitoring/Reporting/Verification) * @param cons 油耗, 单位 mt * @param type 油耗类型 * @param customFactor 自定义排放因子 * @param options 配置项 * @returns { mrv, ttw } */ static calculateCH4MRV(cons: number, type: FuelType | string, customFactor?: EmissionFactor, options?: { requestId?: string; }): { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number | undefined; cj: number | undefined; lcv: number | undefined; }; /** * 计算 N2O MRV (Monitoring/Reporting/Verification) * @param cons 油耗, 单位 mt * @param type 油耗类型 * @param customFactor 自定义排放因子 * @param options 配置项 * @returns { mrv, ttw } */ static calculateN2OMRV(cons: number, type: FuelType | string, customFactor?: EmissionFactor, options?: { requestId?: string; }): { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number | undefined; cj: number | undefined; lcv: number | undefined; }; /** * 计算单一燃料的GHG MRV (Monitoring/Reporting/Verification) * @param cons 油耗, 单位 mt * @param type 油耗类型 * @param year 年份 * @param price 碳税价格 * @param options * @return { * ghg, MRV需要报告的温室气体排放量,2024之后需要报告CO2, CH4, N2O, 单位 mt * ghg2, ETS需要报告的温室气体排放量,2026之后需要报告CO2, CH4, N2O, 单位 mt * euas, 需要交纳的EUAS份额, 2026年以后需全额交纳, 单位 mt * price, 碳税价格, 单位 €/tCO2, 常量 * year, 年份, 常量 * ratio, EUAS交纳比例, 常量 * cost, EUAS成本, 单位 * energy, 燃料转能量, 计算fuelEU时使用, 单位 TJ * lcv, 燃料低位热值, 计算fuelEU时使用, 单位 MJ/g, 常量(不同燃料取值不同) * wtt, Well to Tank, 计算fuelEU时使用, 单位 gCO2eq/MJ, 常量(不同燃料取值不同) * ttw, Tank to Wake, 计算fuelEU时使用, 单位 gGHG/gFuel, 常量(不同燃料取值不同) * co2, CO2排放量, 单位 mt * ch4, CH4排放量, 单位 mt * n2o, N2O排放量, 单位 mt * } * @deprecated */ static calculateGHGMRV(cons: number, type: FuelType | string, price?: number, year?: number, options?: { requestId?: string; factor?: EmissionFactor; }): { ghg: number; ghg2: number; euas: number; price: number; year: number; ratio: number; cost: number; energy: number; lcv: number; wtt: number; ttw: number; co2: { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number; cj: number | undefined; lcv: number | undefined; }; ch4: { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number | undefined; cj: number | undefined; lcv: number | undefined; }; n2o: { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number | undefined; cj: number | undefined; lcv: number | undefined; }; }; /** * 计算单一燃料的GHG MRV (Monitoring/Reporting/Verification) * @param cons 油耗, 单位 mt * @param type 油耗类型 * @param year 年份 * @param price 碳税价格 * @param options * @return { * ghg, MRV需要报告的温室气体排放量,2024之后需要报告CO2, CH4, N2O, 单位 mt * ghg2, ETS需要报告的温室气体排放量,2026之后需要报告CO2, CH4, N2O, 单位 mt * euas, 需要交纳的EUAS份额, 2026年以后需全额交纳, 单位 mt * price, 碳税价格, 单位 €/tCO2, 常量 * year, 年份, 常量 * ratio, EUAS交纳比例, 常量 * cost, EUAS成本, 单位 * co2, CO2排放量, 单位 mt * ch4, CH4排放量, 单位 mt * n2o, N2O排放量, 单位 mt * } */ static calculateSingleGHGMRV(cons: number, type: FuelType | string, price?: number, year?: number, options?: { requestId?: string; factor?: EmissionFactor; }): { ghg: number; ghg2: number; euas: number; price: number; year: number; ratio: number; cost: number; co2: { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number; cj: number | undefined; lcv: number | undefined; }; ch4: { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number | undefined; cj: number | undefined; lcv: number | undefined; }; n2o: { mrv: number; mrvGWP: number; ttw: number; ttwGWP: number; fc: number | undefined; cj: number | undefined; lcv: number | undefined; }; factor: EmissionFactor; }; /** * 计算单一燃料的FuelEU * @param cons 油耗, 单位 mt * @param type 油耗类型 * @param options * @return { * energy, 燃料转能量, 计算fuelEU时使用, 单位 MJ * lcv, 燃料低位热值, 计算fuelEU时使用, 单位 MJ/g, 常量(不同燃料取值不同) * wtt, Well to Tank, 计算fuelEU时使用, 单位 gCO2eq/MJ, 常量(不同燃料取值不同) * ttw, Tank to Wake, 计算fuelEU时使用, 单位 gGHG/gFuel, 常量(不同燃料取值不同) * co2, CO2排放量, 单位 mt * ch4, CH4排放量, 单位 mt * n2o, N2O排放量, 单位 mt * } */ static calculateSingleFuelEU(cons: number, type: FuelType | string, options?: { requestId?: string; factor?: EmissionFactor; }): { energy: number; lcv: number; wtt: number; ttw: number; rawTtw: { co2: number; ch4: number; n2o: number; }; cons: number; factor: EmissionFactor; }; /** * 计算多燃料的GHG MRV * @param fuels 按类型分组油耗类型及消耗 * @param ek 岸电消耗能量,单位 kwh 1kwh = 3.6MJ * @param year 年份 * @param options */ static calculateMultiFuelEU(fuels: Fuel[], ek?: number, year?: number, options?: { requestId?: string; fwind?: WindRewardFactor | number; }): { year: number; fwind: any; energy: any; energy2: any; ek: number; wtwEmission: number; wttGhgi: number; ttwGhgi: number; actualGhgi: number; targetGhgi: number; balance: number; penalty: number; fuels: Record<string, any>; }; /** * 计算多燃料的GHG MRV * @param fuels 按类型分组油耗类型及消耗 * @param year 年份 * @param price 碳税价格 * @param options */ static calculateMultiGHGMRV(fuels: Fuel[], year?: number, price?: number, options?: { requestId?: string; }): { year: number; price: number; ratio: number; ghg: any; ghg2: any; euas: any; cost: any; fuels: Record<string, any>; }; /** * 计算MRV及FuelEU * @param fuels 按类型分组油耗类型及消耗 * @param year 年份 * @param price 碳税价格 * @param options * @deprecated */ static calculateGHGMRV2(fuels: Fuel[], year?: number, price?: number, options?: { requestId?: string; fwind?: WindRewardFactor | number; }): { year: number; price: number; fwind: any; ratio: number; ghg: number; ghg2: number; euas: number; cost: number; energy: number; wtwEmission: number; wttGhgi: number; ttwGhgi: number; actualGhgi: number; targetGhgi: number; balance: number; penalty: number; fuels: { cons: number; ghg: number; ghg2: number; co2: number; ch4: number; n2o: number; euas: number; cost: number; energy: number; wtt: number; ttw: any; wtw: number; lcv: number; type: string; wttEmission: number; ttwEmission: number; wtwEmission: number; }[]; }; /** * 计算 EUETS Ratio, 不同年份交纳的比例不同,2026年以后需全额交纳 * @param year * @returns * @deprecated use getEUETSRatio instead */ static getEUETSRadio(year: number): number; /** * 计算 EUETS Ratio, 不同年份交纳的比例不同,2026年以后需全额交纳 * @param year * @returns */ static getEUETSRatio(year: number): number; /** * 计算 GHG Intensity Target, 单位 gCO₂eq/MJ * @param year * @returns */ static calculateGHGITarget(year: number): number; /** * 计算 EUMRV Leg Category * @param departure 出发地 * @param destination 目的地 * @param fuelEU 是否是fuelEU, 注意 EUETS和fuelEU不同,fuelEU在Norway and Iceland将被视为第三国,在EEA执行50%标准 * @param options 配置项 * @returns * @deprecated */ static calculateEUMRVLegCategory(departure?: { lat: number; lng: number; }, destination?: { lat: number; lng: number; }, fuelEU?: boolean, options?: { requestId?: string; }): Promise<{ category: EUMRVLegCategory; areaRate: { [key: string]: number; }; }>; /** * 计算 EUMRV Category * @param departure 出发地 * @param destination 目的地 * @param options 配置项 * @returns { category, areaRate } 是否在EU,以及对应计算比例 */ static calculateEUMRVCategory(departure?: { lat: number; lng: number; }, destination?: { lat: number; lng: number; }, options?: { requestId?: string; }): Promise<{ category: EUMRVLegCategory; areaRate: { [key: string]: number; }; }>; /** * 计算 Fuel EU Category * 注意 EUETS和fuelEU不同,fuelEU在Norway and Iceland将被视为第三国,在EEA执行50%标准 * FuelEU delayed in Norway and Iceland(https://www.sdir.no/en/news/FuelEu_delayed_in_Norway/) * @param departure 出发地 * @param destination 目的地 * @param options 配置项 * @returns { category, areaRate } 是否在EU,以及对应计算比例 */ static calculateFuelEUCategory(departure?: { lat: number; lng: number; }, destination?: { lat: number; lng: number; }, options?: { requestId?: string; }): Promise<{ category: EUMRVLegCategory; areaRate: { [key: string]: number; }; }>; }