首页 > 其他分享 >计算潜在蒸散量PET的方法

计算潜在蒸散量PET的方法

时间:2023-08-21 16:23:32浏览次数:37  
标签:潜在蒸散 pd PET df 计算 方法 Thornthwaite

目标是想计算相对湿润度指数MI

 得先计算PET:

PET的方法可以采用Thornthwaite方法和FAO Penman-Monteith方法,但是彭曼公式涉及到辐射,需要辐射数据比较麻烦,所以采用Thornthwaite方法

 原始数据:

 处理后的数据:

代码如下:

#!usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: Suyue
@file: calculateMI.py
@time: 2023/08/17
@desc:
"""
import pandas as pd
import numpy as np


df = pd.read_excel('G:/drought/processdata/lianxi/鄂尔多斯.xlsx')
df[df['temp']<0] = np.nan
ab = df.dropna(axis=0,how='all')

# 计算Hi
temp = ab.temp.values
T = np.power(temp/5,1.514)
Hi = pd.DataFrame(T)

# 创建一个新DataFrame放入分类好后的站点数据
df2 = pd.DataFrame(ab)
df2.insert(loc=7, column='Hi',value=Hi.values)
# 给站点分类
nameList1 = set(df2.name.values)


# 想将结果写入excel,需创建空的dataframe
df_all = pd.DataFrame(data=None)

for i in nameList1:
    # 进行站点遍历
    dfName = df2[df2['name'] == i]
    df3 = pd.DataFrame(dfName)
    # 分年求和
    nameList2 = set(df3.year.values)


    for j in nameList2:
        # 按年遍历
        dfYear = df3[df3['year'] == j]
        df4 = pd.DataFrame(dfYear)
        # 计算Hi的和
        H_sum = dfYear['Hi'].sum()
        df4.insert(loc=8, column='H_sum', value=H_sum)
        # 计算A值
        A = (6.75e-07)*np.power(H_sum,3) - (7.71e-05)*np.power(H_sum,2) + (1.792e-02)*H_sum + 0.49
        df4.insert(loc=9, column='A', value=A)
        # 提取temp、H_sum、A用于计算PET
        temp = df4.temp.values
        H_sum = df4.H_sum.values
        A = df4.A.values
        # 计算PET
        PET = 16 * np.power((10*temp)/H_sum,A)
        df4.insert(loc=10, column='PET',value=PET)
        df5 = pd.DataFrame(df4)
        # concat 合并有相同字段名的dataframe
        df_all = pd.concat([df_all, df5],ignore_index=True)

# 避免字段名重复写入,一般会做去重处理
data_list = df_all.drop_duplicates(keep='first')
# 写出数据
df_all.to_excel('G:/drought/processdata/lianxi/鄂尔多斯PET.xlsx', index=False)

 

标签:潜在蒸散,pd,PET,df,计算,方法,Thornthwaite
From: https://www.cnblogs.com/shirleysu90/p/17646354.html

相关文章

  • js计算一串数字最长子链长度
    假设有一串字符串"186186150200160130197200";现在求它的最长升序子串长度。letstr="186186150200160130197200";letarr=str.split(""); //转化为数组letarrLeft=[]; //存储每个数左边小于其的数的个数for(leti=0;i<arr.length;i++){  arrLeft[i]=......
  • 计讯物联边缘计算网关TG452助力燃气柜智慧监测,共织用气安全网
    方案背景近年来,随着城市化进程不断推进,燃气已然成为城市现代化建设的基础设施之一。当前,全国各地利用数字化技术推进燃气的智慧化建设,持续提升燃气监管的信息化水平,实现了从管网、节点、设施设备到燃气柜用户全业务、全场景的智能监管和预警。  作为燃气柜智慧监测的专家企......
  • 机房收费管理系统-计算机毕业设计源码+LW文档
    【摘要】作为计算机机房管理的必要组成部分,计算机机房管理系统有助于机房资源的合理分配、统一管理和设备利用率的提高,从而有力地保证了机房的管理质量。现代化、信息化和自动化是计算机机房的发展方向,它们旨在实现无人或少人值守的开放式管理,并减轻管理员的压力。通过自动计费和合......
  • 寄存器与内存在CPU计算中的作用
    cpu的计算是在内存上做的吗?计算过程中的数据存储在内存中,但CPU执行计算的过程是在寄存器中进行的,而不是直接在内存上进行。当需要使用内存中的数据时,CPU会将数据加载到寄存器中进行操作,并将结果存回内存。这样可以加快计算的速度,因为寄存器是位于CPU内部,速度比内存更快。然而,寄存......
  • 计算机萌新的成长历程——初识C语言3
    今天我将继续分享数据类型的相关内容,本篇的主要内容将围绕short/int/long/longlong——整型数据类型的区别。在介绍他们的区别前,首先我们要先了解计算机中的单位,计算机的单位有以下几种单位:bit——比特位,计算机中最小的单位,1个比特位只能存放一个“1”或一个“0”byte——字节,1字......
  • 《计算机系统与结构》---计算机安全
    信息安全五大基本要素保密性完整性可用性可控性可审查性安全威胁分类重放攻击ARP拒绝服务DOS业务流分析信息泄露破坏信息的完整性非授权访问假冒旁路控制授权侵犯特洛伊木马陷阱门抵赖对称和不对称的加密技术(保密性)对称对数据的加密和解密的密钥(密码......
  • 解决Windows远程桌面“由于安全设置错误, 客户端无法连接到远程计算机”
    用windows2008远程桌面连接Ubuntu系统,出现如下错误: 但我用win10可以进入登录界面,查了一下,需要修改安全策略,设置为如下: 参考资料:https://it.cha138.com/python/show-1249300.html ......
  • 加速比计算+一致性新的O状态+block大小对cache的影响+BBM和写时复制+伪汇编和嵌入+汉
    加速比计算100个处理器对于程序的并发而言,是100倍的加速。对于程序的顺序执行而言,是1倍的速度。对于该题目,首先明确90倍的加速意味着什么:原始程序量为1,原始执行时间为1,现在加速了90倍,而程序本身不变,则:原始的程序量为1,现在的执行时间是1/90。现在假设x为并行执行的比例,则程序......
  • 使用PySpark计算AUC,KS与PSI
    当特征数量或者模型数量很多的时候,使用PySpark去计算相关指标会节省很多的时间。网上关于使用PySpark计算相关指标的资料较少,这里抛砖引玉,写了三个风控常用的指标AUC,KS和PSI相关的计算方法,供参考。AUCAUC的相关概念网上已经有很多的很好的文章,这里不在赘述,AUC使用的到的计算公式......
  • 计算机萌新的成长历程——初识C语言2
    今天我将分享初识数据类型的学习体会和心得。刚刚开始接触数据类型,我学习到了以下几个数据类型char——字符数据类型short——短整型int——整型long——长整型longlong——更长的整型float——单精度浮点数double——双精度浮点数下面我将分享一下我对这些数据类型的理解。理解这......