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

Private GIT Repository
Adding data directory
[predictops.git] / main.py
diff --git a/main.py b/main.py
index 9ccb687252334a014f74a9d4bdf468977947ccca..b43c188627d52c218cb527d5dce3ee16dde1575d 100644 (file)
--- a/main.py
+++ b/main.py
@@ -1,21 +1,25 @@
-from lib.source import MeteoFrance
+from predictops.source.ephemeris import Ephemeris
+from predictops.source.meteofrance import MeteoFrance
+from predictops.target.toarea import ToArea
 
 
+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
 
+import geopandas as gpd
 
 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 +31,49 @@ 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'])
+
+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)
 
 
-engine = Engine(clean = False)
-engine.add_meteofrance()
-engine.meteofrance.update()
-print(len(engine.meteofrance.dated_features))
\ No newline at end of file