From 40471b883c13dc5fe10827756600359f5799c540 Mon Sep 17 00:00:00 2001 From: Alexander Hess Date: Thu, 4 Feb 2021 16:12:25 +0100 Subject: [PATCH] Add infos on tactical demand forecasting --- README.md | 34 +++++++++++++++++++++++++++------- research/01_clean_data.ipynb | 2 +- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 537aa98..a260581 100644 --- a/README.md +++ b/README.md @@ -16,19 +16,39 @@ that iteratively build on each other. ### Data Cleaning The UDP provided its raw data as a PostgreSQL dump. -This [notebook](https://nbviewer.jupyter.org/github/webartifex/urban-meal-delivery/blob/develop/research/clean_data.ipynb) +This [notebook](https://nbviewer.jupyter.org/github/webartifex/urban-meal-delivery/blob/main/research/01_clean_data.ipynb) cleans the data extensively -and maps them onto the [ORM models](https://github.com/webartifex/urban-meal-delivery/tree/develop/src/urban_meal_delivery/db) +and maps them onto the [ORM models](https://github.com/webartifex/urban-meal-delivery/tree/main/src/urban_meal_delivery/db) defined in the `urban-meal-delivery` package -that is developed in the [src/](https://github.com/webartifex/urban-meal-delivery/tree/develop/src) folder +that is developed in the [src/](https://github.com/webartifex/urban-meal-delivery/tree/main/src) folder and contains all source code to drive the analyses. Due to a non-disclosure agreement with the UDP, neither the raw nor the cleaned data are published as of now. -However, previews of the data can be seen throughout the [research/](https://github.com/webartifex/urban-meal-delivery/tree/develop/research) folder. +However, previews of the data can be seen throughout the [research/](https://github.com/webartifex/urban-meal-delivery/tree/main/research) folder. -### Real-time Demand Forecasting +### Tactical Demand Forecasting + +Before any optimizations of the UDP's operations are done, +a **demand forecasting** system for *tactical* purposes is implemented. +To achieve that, the cities first undergo a **gridification** step +where each *pickup* location is assigned into a pixel on a "checker board"-like grid. +The main part of the source code that implements that is in this [file](https://github.com/webartifex/urban-meal-delivery/blob/main/src/urban_meal_delivery/db/grids.py#L60). +Visualizations of the various grids can be found in the [visualizations/](https://github.com/webartifex/urban-meal-delivery/tree/main/research/visualizations) folder +and in this [notebook](https://nbviewer.jupyter.org/github/webartifex/urban-meal-delivery/blob/main/research/03_grid_visualizations.ipynb). + +Then, demand is aggregated on a per-pixel level +and different kinds of order time series are generated. +The latter are the input to different kinds of forecasting `*Model`s. +They all have in common that they predict demand into the *short-term* future (e.g., one hour) +and are thus used for tactical purposes, in particular predictive routing (cf., next section). +The details of how this works can be found in the first academic paper +published in the context of this research project +and titled "*Real-time Demand Forecasting for an Urban Delivery Platform*" +(cf., the [repository](https://github.com/webartifex/urban-meal-delivery-demand-forecasting) with the LaTeX files). +All demand forecasting related code is in the [forecasts/](https://github.com/webartifex/urban-meal-delivery/tree/main/src/urban_meal_delivery/forecasts) sub-package. + ### Predictive Routing @@ -51,11 +71,11 @@ and `poetry install --extras research` The `--extras` option is necessary as the non-develop dependencies -are structured in the [pyproject.toml](https://github.com/webartifex/urban-meal-delivery/blob/develop/pyproject.toml) file +are structured in the [pyproject.toml](https://github.com/webartifex/urban-meal-delivery/blob/main/pyproject.toml) file into dependencies related to only the `urban-meal-delivery` source code package and dependencies used to run the [Jupyter](https://jupyter.org/) environment with the analyses. Contributions are welcome. Use the [issues](https://github.com/webartifex/urban-meal-delivery/issues) tab. -The project is licensed under the [MIT license](https://github.com/webartifex/urban-meal-delivery/blob/develop/LICENSE.txt). +The project is licensed under the [MIT license](https://github.com/webartifex/urban-meal-delivery/blob/main/LICENSE.txt). diff --git a/research/01_clean_data.ipynb b/research/01_clean_data.ipynb index 1d9f6fb..c3de005 100644 --- a/research/01_clean_data.ipynb +++ b/research/01_clean_data.ipynb @@ -19,7 +19,7 @@ "- numeric columns are checked for plausibility\n", "- foreign key relationships are strictly enforced\n", "\n", - "The structure of the data can be viewed at the [ORM layer](https://github.com/webartifex/urban-meal-delivery/tree/develop/src/urban_meal_delivery/db) in the package." + "The structure of the data can be viewed at the [ORM layer](https://github.com/webartifex/urban-meal-delivery/tree/main/src/urban_meal_delivery/db) in the package." ] }, {