Last active
January 6, 2021 21:32
-
-
Save YannBouyeron/c87e87113c08a7dd2f942889bb89e988 to your computer and use it in GitHub Desktop.
Climat.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from math import pi, log | |
import numpy as np | |
class Climat: | |
def __init__(self, d = 149.6 *(10**9), p = 3.87*(10**26), a = 0.3, refC = 280): | |
""" | |
d: distance terre soleil en metres | |
p: puissance du soleil en W | |
a: alebdo 0 <= a <= 1 | |
refC : concentration en carbone de reference (ère pre industrielle) en ppm | |
""" | |
self.d = d | |
self.p = p | |
self.a = a | |
self.refC = refC | |
def energie_incidente(self): | |
"""return energie incidente en w/m2""" | |
return self.p / (16*pi*(self.d**2)) | |
def energie_reflechie(self): | |
"""return energie reflechie en w/m2""" | |
if not 0 <= self.a <= 1: | |
self.a = self.a /100 | |
return self.energie_incidente() * self.a | |
def energie_incidente_absorbee(self): | |
"""return energie incidente absorbee en w/m2""" | |
return self.energie_incidente() - self.energie_reflechie() | |
def bilan_R(self, coo): | |
""" | |
argument: | |
coo: concentration CO2 atmospherique en ppm | |
return: bilan radiatif en W | |
""" | |
return (self.energie_incidente_absorbee()*390/240) + 5.35*log(coo/self.refC) | |
def boltzman(self, coo): | |
""" | |
argument: | |
coo: concentration CO2 atmospherique en ppm | |
return: temperature d'equilibre (kelvin, celcius)'""" | |
T = (self.bilan_R(coo) /(5.674*(10**-8)))**0.25 | |
C = T - 273.15 | |
return (T,C) | |
def teq(self, coo, l): | |
cref = 280 | |
rref = 390 | |
b = 5.674*10**-8 | |
df = 5.35*np.log(coo/cref) | |
r = rref + df | |
tref = (rref/b)**0.25 | |
tadd = df * l | |
t = tref+tadd | |
c = t - 273.15 | |
return {"R": r, "T": t, "C": c} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment