-
Notifications
You must be signed in to change notification settings - Fork 2
/
populate_30yr_averages.py
64 lines (49 loc) · 2.57 KB
/
populate_30yr_averages.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from util.gdd import *
from spring_index.spring_index_util import *
import time
import logging
import yaml
import os.path
from util.log_manager import get_error_log
with open(os.path.abspath(os.path.join(os.path.dirname(__file__), 'config.yml')), 'r') as ymlfile:
cfg = yaml.load(ymlfile)
log_path = cfg["log_path"]
# This script is used to generate historic 30year average spring index and agdd maps. It is not ran nightly.
# Before running this script populate_prism.py must be ran for the years you want to average over.
# Before running this script populate_six.py must be ran for the years you want to average over.
def main():
t0 = time.time()
logging.info(' ')
logging.info('*****************************************************************************')
logging.info('****************beginning script populate_30yr_averages.py*******************')
logging.info('*****************************************************************************')
# calculate doy spring index prism raster averaged over 3 species
# this function was written to fix averaging error over 3 species bloom
# without having to rerun the spring index over each year
# populate_yearly_six_prism_species_averages('bloom')
# populate 30 year average for each day of year's spring index based on prism data
populate_six_30yr_average('average', 'leaf', 'PRISM')
populate_six_30yr_average('average', 'bloom', 'PRISM')
# populate_six_30yr_average('average', 'leaf', 'NCEP')
# populate_six_30yr_average('average', 'bloom', 'NCEP')
# populate 30 year average for each day of year's agdd based on prism data
# base = 32
# import_average_agdd(1981, 2011, base)
# base = 50
# import_average_agdd(1981, 2011, base)
t1 = time.time()
logging.info('*****************************************************************************')
logging.info('**************populate_30yr_averages.py finished in %s seconds***************', t1-t0)
logging.info('*****************************************************************************')
if __name__ == "__main__":
logging.basicConfig(filename=log_path + 'populate_30yr_averages.log',
level=logging.INFO,
format='%(asctime)s %(message)s',
datefmt='%m/%d/%Y %I:%M:%S %p')
error_log = get_error_log()
try:
main()
except (SystemExit, KeyboardInterrupt):
raise
except:
error_log.error('populate_30yr_averages.py failed to finish: ', exc_info=True)