-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
40 lines (35 loc) · 1.38 KB
/
main.py
File metadata and controls
40 lines (35 loc) · 1.38 KB
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
import csv
from datetime import datetime
from pprint import pformat
from lib.logger import logger
from utils.config_loader import ConfigLoader
from utils.raw_data_loader import DirectoryScanner
from utils.pixel_mapper import PixelMapper
from utils.fapar_calc import FaparCalc
from utils.model_draw import FaparModel
if __name__ == '__main__':
config_name = 'config.yaml'
logger.info('Parsing config {}'.format(config_name))
config = ConfigLoader(config_name).parse_config()
logger.debug(pformat(config))
scanner = DirectoryScanner(config['workdir'])
logger.debug(scanner.scenes)
fapar_results = []
for scene in scanner.scenes:
mapp = PixelMapper(scanner.scenes[scene])
if 'points' in config:
for point in config['points']:
rc = mapp.get_geo2raster(point[2:4])
if rc:
b = FaparCalc(mapp.metadata, rc)
if b.mean == 0.0:
continue
fapar_results.append((point, scene, mapp.metadata['DATE_ACQUIRED'], b.DOY, b.mean, b.sd))
print(b.mean)
#print(pformat(fapar_results))
date_string = f'{datetime.now():%Y-%m-%d_%H:%M:%S%z}'
with open('fapar_results_{}.csv'.format(date_string), 'w') as f:
w = csv.writer(f)
w.writerows(fapar_results)
a = FaparModel(fapar_results)
b = a.draw_model()