X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/predictops.git/blobdiff_plain/910a056eaa0181df00d21fa836f3c68504051717..eb6d0d929146ad8df7760eb586653ee67a2f6fed:/main.py diff --git a/main.py b/main.py index fe8ed20..426d3b5 100644 --- a/main.py +++ b/main.py @@ -1,87 +1,35 @@ -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.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)) + exit() - def add_feature(self, name, **kw): + depts = gpd.read_file( Path.cwd() / 'data' / 'targets' / 'departments' / "departements-20180101.shp") + Doubs = depts.loc[depts['nom'] == 'Doubs'].iloc[0] - 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') + ToArea(area=Doubs.geometry, + start = start, end = end, + csv_file = Path.cwd() / 'data' / 'targets' / 'sdis25' / 'interventions.csv')