吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 217|回复: 6
收起左侧

[其他求助] 求提取网页的js代码转成python

[复制链接]
tsavp 发表于 2026-3-8 20:18
30吾爱币
将该网页JavaScript代码提取出来,转成python代码,python代码跟该网页计算一致即可,谢谢https://osgeo.cn/app/s2286/

最佳答案

查看完整内容

用方法一就行 [mw_shl_code=python,true]import math def compute_m_density(temperature, pressure, humidity): """ 计算湿空气密度(基于温度、气压和相对湿度) 参数: temperature: 温度 (°C) pressure: 气压 (hPa) humidity: 相对湿度 (%) 返回: dict: 包含总密度、干空气密度和水汽密度 """ T = temperature P = pressure RH ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Su007 发表于 2026-3-8 20:18
用方法一就行
[Python] 纯文本查看 复制代码
import math

def compute_m_density(temperature, pressure, humidity):
    """
    计算湿空气密度(基于温度、气压和相对湿度)
    
    参数:
        temperature: 温度 (°C)
        pressure: 气压 (hPa)
        humidity: 相对湿度 (%)
    
    返回:
        dict: 包含总密度、干空气密度和水汽密度
    """
    T = temperature
    P = pressure
    RH = humidity
    
    # 计算饱和水汽压 (hPa)
    Psat = 6.0178 * (10 ** ((7.5 * (T + 273.15) - 2048.625) / (T + 273.15 - 35.85)))
    
    # 计算实际水汽压 (hPa)
    Pv = RH / 100 * Psat
    
    # 计算干空气密度 (kg/m³)
    Pd = (P - Pv) / (287.058 * (T + 273.15))
    
    # 计算水汽密度 (kg/m³)
    Pv_density = Pv / (461.495 * (T + 273.15))
    
    # 总密度
    density = round((Pd + Pv_density) * 100, 4)
    mda = round(Pd * 100, 4)
    mwv = round(Pv_density * 100, 4)
    
    return {
        'density': density,      # 湿空气密度
        'dry_air': mda,         # 干空气密度
        'water_vapor': mwv      # 水汽密度
    }


def compute_dp_density(dewpoint, temperature, pressure):
    """
    计算湿空气密度(基于露点温度)
    
    参数:
        dewpoint: 露点温度 (°C)
        temperature: 温度 (°C)
        pressure: 气压 (hPa)
    
    返回:
        dict: 包含总密度、干空气密度和水汽密度
    """
    # Goff-Gratch方程系数
    eso = 6.1078
    c0 = 0.99999683
    c1 = -0.0090826951
    c2 = 0.00078736169
    c3 = -0.00000061117958
    c4 = 0.0000000043884187
    c5 = -0.000000000029883885
    c6 = 0.000000000000021874425
    c7 = -0.000000000000000017892321
    c8 = 0.000000000000000000011112018
    c9 = -0.000000000000000000000030994571
    
    t = dewpoint
    
    # 计算饱和水汽压 (hPa)
    Es = eso * (c0 + t * (c1 + t * (c2 + t * (c3 + t * (c4 + t * (c5 + t * (c6 + t * (c7 + t * (c8 + t * c9))))))))) ** -8
    
    # 温度转开尔文
    Tk = temperature + 273.15
    
    # 水汽压 (Pa)
    Pv = Es * 100
    
    # 干空气压力 (Pa)
    Pd = (pressure - Es) * 100
    
    # 水汽密度 (kg/m³)
    dv = Pv / (461.4964 * Tk)
    
    # 干空气密度 (kg/m³)
    dd = Pd / (287.0531 * Tk)
    
    # 总密度
    d = dd + dv
    
    return {
        'density': round(d, 4),
        'dry_air': round(dd, 4),
        'water_vapor': round(dv, 4)
    }


# 使用示例
if __name__ == "__main__":
    # 方法1:使用温度、气压和相对湿度
    result1 = compute_m_density(
        temperature=25,    # °C
        pressure=31013.3,   # hPa (注意:示例中的101000应该是1010 hPa)
        humidity=25        # %
    )
    
    print("方法1 - 基于相对湿度:")
    print(f"湿空气密度: {result1['density']} kg/m³")
    print(f"干空气密度: {result1['dry_air']} kg/m³")
    print(f"水汽密度: {result1['water_vapor']} kg/m³")
    
    print("\n" + "="*50 + "\n")
    
    # 方法2:使用露点温度
    result2 = compute_dp_density(
        dewpoint=10,       # °C
        temperature=25,    # °C
        pressure=1013.25   # hPa
    )
    
    print("方法2 - 基于露点温度:")
    print(f"湿空气密度: {result2['density']} kg/m³")
    print(f"干空气密度: {result2['dry_air']} kg/m³")
    print(f"水汽密度: {result2['water_vapor']} kg/m³")
始于丨初心 发表于 2026-3-8 20:41
用ChatGPT转的Python代码,楼主可以试下

def compute_m_density(celsius, pressure, humidity):
    T = celsius
    P = pressure
    RH = humidity

    # 饱和水蒸气压
    Psat = 6.0178 * 10 ** ((7.5 * (T + 273.15) - 2048.625) / (T + 273.15 - 35.85))

    # 实际水蒸气压
    Pv = RH / 100 * Psat

    # 干空气密度
    Pd = (P - Pv) / (287.058 * (T + 273.15))

    # 水蒸气密度
    Pv_density = Pv / (461.495 * (T + 273.15))

    # 总密度
    density = (Pd + Pv_density) * 100
    Md = Pd * 100
    Mv = Pv_density * 100

    return round(density, 4), round(Md, 4), round(Mv, 4)

# 示例
density, Md, Mv = compute_m_density(
    celsius=25,
    pressure=101000,
    humidity=25
)

print("湿空气密度:", density)
print("干空气密度:", Md)
print("水蒸气密度:", Mv)
 楼主| tsavp 发表于 2026-3-8 20:52
    celsius=30,
    pressure=3101330,
    humidity=60
计算结果跟网页不一致
始于丨初心 发表于 2026-3-8 20:59
本帖最后由 始于丨初心 于 2026-3-8 21:00 编辑
tsavp 发表于 2026-3-8 20:52
celsius=30,
    pressure=3101330,
    humidity=60
一样的,
 楼主| tsavp 发表于 2026-3-8 21:09
本帖最后由 tsavp 于 2026-3-8 21:10 编辑

   celsius=25,
    pressure=31013.3,
    humidity=25
应该是这组参数程序计算结果如下
湿空气密度: 36.2328
干空气密度: 36.2272
水蒸气密度: 0.0057
网页的
湿空气密度: 35.6277
szh12123 发表于 2026-3-8 21:40
def computeMDensity(T,P,RH):
    Psat = 6.0178 * 10 ** ((7.5 * (T + 273.15) - 2048.625) / (T + 273.15 - 35.85))
    Pv = RH / 100 * Psat
    Pd = (P - Pv) / (287.058 * (T + 273.15))
    Pv = Pv / (461.495 * (T + 273.15))
    Density = round((Pd + Pv) * 100,4)
    Mda = round((Pd * 100),4)
    Mwv = round((Pv * 100),4)
    print(f'输入参数:温度: {T}, 空气压力: {P}hPa, 相对湿度: {RH}%')
    print(f'湿空气密度: {Density}kg/m3, 干燥空气: {Mda}, 水汽: {Mwv}')

computeMDensity(25,101000,25)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-5-7 16:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表