main.py 2.68 KB
Newer Older
Commandre Benjamin's avatar
Commandre Benjamin committed
1
2
3
4
5
6
7
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys, time

from osgeo import ogr

8
import configparser
Commandre Benjamin's avatar
Commandre Benjamin committed
9
from app.Processing import Processing
10
import app.Constantes as Constantes
Commandre Benjamin's avatar
Commandre Benjamin committed
11
12
import app.Outils as Outils

13
14
15
def str2bool(v):
	return v.lower() in (["false"])

Commandre Benjamin's avatar
Commandre Benjamin committed
16
17
18
19
20
21
22
class Telechargement(Processing):

	def __init__(self, parent=None):
		super(Processing, self).__init__()
		Processing.__init__(self)

		self.logger = Outils.Log("log", "Téléchargement")
23

Commandre Benjamin's avatar
Commandre Benjamin committed
24
		self.get_variable()
25
26

	def get_variable(self):
Commandre Benjamin's avatar
Commandre Benjamin committed
27
28
29
30
31
32
33
34
35
		"""
			Récupération des variables dans le fichier de configuration
		"""

		configfile = configparser.ConfigParser()
		configfile.read("config.ini")

		# Dossier contenant les résultats
		self.resultats = "{}".format(configfile["sortie"]["chemin"])
36

Commandre Benjamin's avatar
Commandre Benjamin committed
37
38
39
		# Capteur utilisé
		self.capteur = "{}".format(configfile["satellite"]["capteur"])
		self.niveau = "{}".format(configfile["satellite"]["processingLevel"])
Commandre Benjamin's avatar
Commandre Benjamin committed
40
		self.bandes = "{}".format(configfile["satellite"]["bandes"])
41
42
43
44
45
46
47
48
49

		try:
			if str2bool("{}".format(configfile["sortie"]["extraction"])):
				self.extraction = False
			else :
				self.extraction = True
		except :
			self.extraction = True

Commandre Benjamin's avatar
Commandre Benjamin committed
50
		# Date de début et de fin de la recherche
51
52
53
54
		try:
			self.annee_debut = int("{}".format(configfile["donnees"]["annee_debut"]))
		except Exception as e:
			raise "L'année de départ est requise."
55

56
		self.annee_fin = "{}".format(configfile["donnees"]["annee_fin"])
57
		self.seuil_nuage = float("{}".format(configfile["donnees"]["seuil_nuage"]))/100.0 if "{}".format(configfile["donnees"]["seuil_nuage"]) else 0.0
58

Commandre Benjamin's avatar
Commandre Benjamin committed
59
60
61
62
63
64
		# Emprise et zone de l'étude
		self.emprise 	= "{}".format(configfile["donnees"]["chemin_emprise"])
		self.zone_etude = "{}".format(configfile["donnees"]["chemin_zone_etude"])

		if not self.zone_etude :
			self.zone_etude = self.emprise
65

Commandre Benjamin's avatar
Commandre Benjamin committed
66
67
68
69
70
		# Identifiant, mot de passe et proxy pour le téléchargement des images Théia
		self.id 	= "{}".format(configfile["theia"]["identifiant"])
		self.mdp 	= "{}".format(configfile["theia"]["mdp"])
		self.proxy 	= "{}".format(configfile["theia"]["proxy"])

71

Commandre Benjamin's avatar
Commandre Benjamin committed
72
73
74
	def run(self):
		"""
			Fonction pour lancer le programme
75
		"""
76
		# Début du processus
Commandre Benjamin's avatar
Commandre Benjamin committed
77
		debut = time.time()
78

Commandre Benjamin's avatar
Commandre Benjamin committed
79
80
		# Recherche de nouvelles images non traitées et téléchargement de celles-ci le cas échéant
		self.i_download()
81
82

		# Traitement des images
Commandre Benjamin's avatar
Commandre Benjamin committed
83
		self.i_images_processing()
84

Commandre Benjamin's avatar
Commandre Benjamin committed
85
86
87
88
89
90
		# Fin du processus
		fin = time.time()

		self.logger.info('Programme terminé en {} secondes'.format(fin - debut))
		nb_jours = int(time.strftime('%d', time.gmtime(fin - debut))) - 1
		self.logger.info("Cela représente {} jour(s) {}".format(nb_jours, time.strftime('%Hh %Mmin%S', time.gmtime(fin - debut))))
Commandre Benjamin's avatar
Commandre Benjamin committed
91

Commandre Benjamin's avatar
Commandre Benjamin committed
92
if __name__ == "__main__":
Commandre Benjamin's avatar
Commandre Benjamin committed
93

Commandre Benjamin's avatar
Commandre Benjamin committed
94
	app = Telechargement()
95
	sys.exit(app.run())