]> AND Private Git Repository - predictops.git/blobdiff - main.py
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Adding calendar features
[predictops.git] / main.py
diff --git a/main.py b/main.py
index 9ccb687252334a014f74a9d4bdf468977947ccca..6733216b474c45a136766be52e83ed3e3a0591e7 100644 (file)
--- a/main.py
+++ b/main.py
@@ -1,21 +1,22 @@
-from lib.source import MeteoFrance
+from lib.source.ephemeris import Ephemeris
+from lib.source.meteofrance import MeteoFrance
 
 
+from datetime import datetime
 from logging import getLogger
 from logging.config import fileConfig
 from pathlib import Path
 from shutil import rmtree
 
 from logging import getLogger
 from logging.config import fileConfig
 from pathlib import Path
 from shutil import rmtree
 
-
 fileConfig((Path.cwd() / 'config') / 'logging.cfg')
 logger = getLogger()
 
 
 class Engine:
 fileConfig((Path.cwd() / 'config') / 'logging.cfg')
 logger = getLogger()
 
 
 class Engine:
-    def __init__(self, clean = False):
+    def __init__(self, start = None, end = None, time_step = None):
         logger.info("Predictops engine launched")
         logger.info("Predictops engine launched")
-        if clean:
-            self.clean()
-            print("To prevent from downloading again csv files, copy the archive in data rep")
+        self._X = {}
+        self._Y = {}
+
 
     def clean(self):
         # Cleaning the data directory
 
     def clean(self):
         # Cleaning the data directory
@@ -27,12 +28,42 @@ class Engine:
         p.mkdir()
 
 
         p.mkdir()
 
 
-    def add_meteofrance(self):
-        self.meteofrance = MeteoFrance()
+    def add_feature(self, name, **kw):
+
+        if name == 'meteofrance':
+            meteofeature = MeteoFrance(**kw)
+            meteofeature.update()
+            dated_features = meteofeature.dated_features
+            for date in dated_features:
+                self._X.setdefault(date,{}).update(dated_features[date])
+        elif name == 'ephemeris':
+            ephemerides = Ephemeris(**kw)
+            dated_features = ephemerides.dated_features
+            for date in dated_features:
+                self._X.setdefault(date,{}).update(dated_features[date])
+
+
+    @property
+    def X(self):
+        return self._X
+
+    @X.setter
+    def X(self, x):
+        self._X = x
+
+
+start = datetime.strptime('01/01/2010 00:00:00', '%m/%d/%Y %H:%M:%S')
+end = datetime.strptime('12/31/2010 23:00:00', '%m/%d/%Y %H:%M:%S')
 
 
+engine = Engine()
+engine.add_feature(name = 'meteofrance',
+                   start = start, end = end,
+                   latitude = 47.25, longitude = 6.0333, nb_stations = 3,
+                   features = ['temperature', 'pressure'])
 
 
+engine.add_feature(name = 'ephemeris',
+                   start = start, end = end,
+                   features = ['hour', 'dayInWeek', 'dayInMonth', 'dayInYear',
+                               'weekInYear', 'month', 'year'])
 
 
-engine = Engine(clean = False)
-engine.add_meteofrance()
-engine.meteofrance.update()
-print(len(engine.meteofrance.dated_features))
\ No newline at end of file
+print(engine.X)
\ No newline at end of file