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

Private GIT Repository
Reducing the computation time and adding holidays features
[predictops.git] / main.py
diff --git a/main.py b/main.py
index b43c188627d52c218cb527d5dce3ee16dde1575d..27f502aeaa676fd0a0500e2ca4f20a295f5d0ce9 100644 (file)
--- a/main.py
+++ b/main.py
@@ -1,79 +1,30 @@
-from predictops.source.ephemeris import Ephemeris
-from predictops.source.meteofrance import MeteoFrance
-from predictops.target.toarea import ToArea
+from predictops.engine import Engine
 
 
-from datetime import datetime
 from logging import getLogger
 from logging.config import fileConfig
 from pathlib import Path
 from logging import getLogger
 from logging.config import fileConfig
 from pathlib import Path
-from shutil import rmtree
 
 
-import geopandas as gpd
 
 fileConfig((Path.cwd() / 'config') / 'logging.cfg')
 logger = getLogger()
 
 
 fileConfig((Path.cwd() / 'config') / 'logging.cfg')
 logger = getLogger()
 
+if __name__ == '__main__':
 
 
-class Engine:
-    def __init__(self, start = None, end = None, time_step = None):
-        logger.info("Predictops engine launched")
-        self._X = {}
-        self._Y = {}
+    config = (Path.cwd() / 'config') / 'learn.cfg'
+    engine = Engine(config_file = config)
 
 
+    engine.add_features()
+    engine.add_target()
 
 
-    def clean(self):
-        # Cleaning the data directory
-        logger.info("Cleaning and restoring data directory")
-        directory  = Path.cwd() / 'data'
-        if directory.is_dir():
-            rmtree(directory)
-        p = Path(Path.cwd() / 'data')
-        p.mkdir()
+    engine.add_preprocessing()
 
 
+    engine.learn()
 
 
-    def add_feature(self, name, **kw):
+    '''target = toarea(stream_file = Path.cwd() / 'data' / 'targets' / 'sdis25' / 'interventions.csv')
 
 
-        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'])
-
-print(engine.X[datetime.strptime('06/30/2010 21:00:00', '%m/%d/%Y %H:%M:%S')])
-
-depts = gpd.read_file( Path.cwd() / 'data' / 'targets' / 'departments' / "departements-20180101.shp")
-Doubs = depts.loc[depts['nom'] == 'Doubs'].iloc[0]
-
-ToArea(area=Doubs.geometry,
-       start = start, end = end)
+    depts = gpd.read_file( Path.cwd() / 'data' / 'targets' / 'departments' / "departements-20180101.shp")
+    Doubs = depts.loc[depts['nom'] == 'Doubs'].iloc[0]
 
 
+    ToArea(area=Doubs.geometry,
+           csv_file = Path.cwd() / 'data' / 'targets' / 'sdis25' / 'interventions.csv')
+    '''