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

Private GIT Repository
From dict to dataframe: done
[predictops.git] / main.py
diff --git a/main.py b/main.py
index 9ccb687252334a014f74a9d4bdf468977947ccca..fe8ed203fe9fd78a2f61b98fed7a0474a4b3d3bd 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.learn.preprocessing import Preprocessing
+from predictops.target.toarea import ToArea
 
 
+from datetime import datetime, timedelta
 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):
-        logger.info("Predictops engine launched")
-        if clean:
-            self.clean()
-            print("To prevent from downloading again csv files, copy the archive in data rep")
+    def __init__(self, start = None, end = None, time_step = None):
+        self._X = {}
+        self._Y = {}
+
 
     def clean(self):
         # Cleaning the data directory
 
     def clean(self):
         # Cleaning the data directory
@@ -27,12 +31,57 @@ 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'])
+
+process = Preprocessing(dict_features = engine.X,
+                   start = start, end = end, timestep = timedelta(hours=1))
+
+process.fill_na()
+print(process.dataframe.head(n=20))
+#print(engine.X[datetime.strptime('06/30/2010 21:00:00', '%m/%d/%Y %H:%M:%S')])
+
+exit()
 
 
+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,
+       csv_file = Path.cwd() / 'data' / 'targets' / 'sdis25' / 'interventions.csv')
 
 
-engine = Engine(clean = False)
-engine.add_meteofrance()
-engine.meteofrance.update()
-print(len(engine.meteofrance.dated_features))
\ No newline at end of file