-from predictops.source.ephemeris import Ephemeris
-from predictops.source.meteofrance import MeteoFrance
+from predictops.engine import Engine
from predictops.learn.preprocessing import Preprocessing
+from predictops.target.all import All
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
import geopandas as gpd
fileConfig((Path.cwd() / 'config') / 'logging.cfg')
logger = getLogger()
+if __name__ == '__main__':
-class Engine:
- def __init__(self, start = None, end = None, time_step = None):
- self._X = {}
- self._Y = {}
+ config = (Path.cwd() / 'config') / 'learn.cfg'
+ engine = Engine(config_file = config)
+ engine.add_features()
+ #print(engine.X)
+ process = Preprocessing(config_file = config, dict_features = engine.X)
- 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()
+ #print(engine.X[datetime.strptime('06/30/2010 21:00:00', '%m/%d/%Y %H:%M:%S')])
+ print(process.dataframe.head(n=20))
+ print(process.dataframe.tail(n=20))
- 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])
+ target = All(stream_file = Path.cwd() / 'data' / 'targets' / 'sdis25' / 'interventions.csv')
- @property
- def X(self):
- return self._X
+ exit()
- @X.setter
- def X(self, x):
- self._X = x
+ depts = gpd.read_file( Path.cwd() / 'data' / 'targets' / 'departments' / "departements-20180101.shp")
+ Doubs = depts.loc[depts['nom'] == 'Doubs'].iloc[0]
-
-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')
+ ToArea(area=Doubs.geometry,
+ start = start, end = end,
+ csv_file = Path.cwd() / 'data' / 'targets' / 'sdis25' / 'interventions.csv')