From 4459ad5a73af304bc4baf5abe0001d26190b3bff Mon Sep 17 00:00:00 2001
From: anuShrestha83 <57894222+anuShrestha83@users.noreply.github.com>
Date: Thu, 16 Apr 2020 15:52:19 +0200
Subject: [PATCH 1/4] Modified notebook and added statistics
---
.../api_request_deckgl_anuShrestha83.ipynb | 1037 +++++++++++++++++
1 file changed, 1037 insertions(+)
create mode 100644 examples/api_request_deckgl_anuShrestha83.ipynb
diff --git a/examples/api_request_deckgl_anuShrestha83.ipynb b/examples/api_request_deckgl_anuShrestha83.ipynb
new file mode 100644
index 0000000..4df451f
--- /dev/null
+++ b/examples/api_request_deckgl_anuShrestha83.ipynb
@@ -0,0 +1,1037 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Package loading and basic configurations"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "conda 4.8.3\n",
+ "\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ }
+ ],
+ "source": [
+ "conda --version"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 117,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The autoreload extension is already loaded. To reload it, use:\n",
+ " %reload_ext autoreload\n"
+ ]
+ }
+ ],
+ "source": [
+ "%load_ext autoreload\n",
+ "%autoreload 2\n",
+ "\n",
+ "# load dependencies'\n",
+ "import pandas as pd\n",
+ "import geopandas as gpd\n",
+ "import seaborn as sns\n",
+ "\n",
+ "from envirocar import TrackAPI, DownloadClient, BboxSelector, ECConfig\n",
+ "\n",
+ "# create an initial but optional config and an api client\n",
+ "config = ECConfig()\n",
+ "track_api = TrackAPI(api_client=DownloadClient(config=config))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Querying enviroCar Tracks"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The following cell queries tracks from the enviroCar API. It defines a bbox for the area of Münster (Germany) and requests 50 tracks. The result is a GeoDataFrame, which is a geo-extended Pandas dataframe from the GeoPandas library. It contains all information of the track in a flat dataframe format including a specific geometry column. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 118,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " time | \n",
+ " geometry | \n",
+ " GPS VDOP.value | \n",
+ " GPS VDOP.unit | \n",
+ " Intake Temperature.value | \n",
+ " Intake Temperature.unit | \n",
+ " O2 Lambda Voltage.value | \n",
+ " O2 Lambda Voltage.unit | \n",
+ " GPS PDOP.value | \n",
+ " ... | \n",
+ " track.end | \n",
+ " sensor.type | \n",
+ " sensor.engineDisplacement | \n",
+ " sensor.model | \n",
+ " sensor.id | \n",
+ " sensor.fuelType | \n",
+ " sensor.constructionYear | \n",
+ " sensor.manufacturer | \n",
+ " track.appVersion | \n",
+ " track.touVersion | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 5a9bad3844ea851012e06c09 | \n",
+ " 2018-02-24T16:21:20 | \n",
+ " POINT (6.77675 51.22546) | \n",
+ " 1.722027 | \n",
+ " precision | \n",
+ " 32.999999 | \n",
+ " c | \n",
+ " 2.774379 | \n",
+ " V | \n",
+ " 2.022027 | \n",
+ " ... | \n",
+ " 2018-02-24T16:44:46Z | \n",
+ " car | \n",
+ " 1800 | \n",
+ " Avensis | \n",
+ " 574e78cbe4b09078f97bbb4a | \n",
+ " gasoline | \n",
+ " 2011 | \n",
+ " Toyota | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 5a9bad3844ea851012e06c0b | \n",
+ " 2018-02-24T16:21:25 | \n",
+ " POINT (6.77668 51.22518) | \n",
+ " 2.919473 | \n",
+ " precision | \n",
+ " 32.000000 | \n",
+ " c | \n",
+ " 4.589390 | \n",
+ " V | \n",
+ " 3.281339 | \n",
+ " ... | \n",
+ " 2018-02-24T16:44:46Z | \n",
+ " car | \n",
+ " 1800 | \n",
+ " Avensis | \n",
+ " 574e78cbe4b09078f97bbb4a | \n",
+ " gasoline | \n",
+ " 2011 | \n",
+ " Toyota | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 5a9bad3844ea851012e06c0c | \n",
+ " 2018-02-24T16:21:30 | \n",
+ " POINT (6.77635 51.22497) | \n",
+ " 1.700000 | \n",
+ " precision | \n",
+ " 34.227160 | \n",
+ " c | \n",
+ " 3.118953 | \n",
+ " V | \n",
+ " 2.157822 | \n",
+ " ... | \n",
+ " 2018-02-24T16:44:46Z | \n",
+ " car | \n",
+ " 1800 | \n",
+ " Avensis | \n",
+ " 574e78cbe4b09078f97bbb4a | \n",
+ " gasoline | \n",
+ " 2011 | \n",
+ " Toyota | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 5a9bad3844ea851012e06c0d | \n",
+ " 2018-02-24T16:21:35 | \n",
+ " POINT (6.77594 51.22484) | \n",
+ " 1.951852 | \n",
+ " precision | \n",
+ " 32.000000 | \n",
+ " c | \n",
+ " 3.282321 | \n",
+ " V | \n",
+ " 2.351852 | \n",
+ " ... | \n",
+ " 2018-02-24T16:44:46Z | \n",
+ " car | \n",
+ " 1800 | \n",
+ " Avensis | \n",
+ " 574e78cbe4b09078f97bbb4a | \n",
+ " gasoline | \n",
+ " 2011 | \n",
+ " Toyota | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 5a9bad3844ea851012e06c0e | \n",
+ " 2018-02-24T16:21:40 | \n",
+ " POINT (6.77566 51.22471) | \n",
+ " 1.905823 | \n",
+ " precision | \n",
+ " 32.397662 | \n",
+ " c | \n",
+ " 3.358742 | \n",
+ " V | \n",
+ " 2.188153 | \n",
+ " ... | \n",
+ " 2018-02-24T16:44:46Z | \n",
+ " car | \n",
+ " 1800 | \n",
+ " Avensis | \n",
+ " 574e78cbe4b09078f97bbb4a | \n",
+ " gasoline | \n",
+ " 2011 | \n",
+ " Toyota | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 373 | \n",
+ " 57a35e90e4b086b281cf6bd8 | \n",
+ " 2016-08-04T15:24:17 | \n",
+ " POINT (6.46094 51.22493) | \n",
+ " 1.738716 | \n",
+ " precision | \n",
+ " 26.000000 | \n",
+ " c | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 2.111836 | \n",
+ " ... | \n",
+ " 2016-08-04T15:24:37Z | \n",
+ " car | \n",
+ " 1400 | \n",
+ " Corsa D | \n",
+ " 578c86a7e4b086b281ada0d0 | \n",
+ " gasoline | \n",
+ " 2013 | \n",
+ " Opel | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 374 | \n",
+ " 57a35e90e4b086b281cf6bd9 | \n",
+ " 2016-08-04T15:24:22 | \n",
+ " POINT (6.46095 51.22494) | \n",
+ " 1.900000 | \n",
+ " precision | \n",
+ " 27.000000 | \n",
+ " c | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 2.327154 | \n",
+ " ... | \n",
+ " 2016-08-04T15:24:37Z | \n",
+ " car | \n",
+ " 1400 | \n",
+ " Corsa D | \n",
+ " 578c86a7e4b086b281ada0d0 | \n",
+ " gasoline | \n",
+ " 2013 | \n",
+ " Opel | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 375 | \n",
+ " 57a35e90e4b086b281cf6bda | \n",
+ " 2016-08-04T15:24:27 | \n",
+ " POINT (6.46095 51.22494) | \n",
+ " 1.827628 | \n",
+ " precision | \n",
+ " 28.000000 | \n",
+ " c | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 2.198899 | \n",
+ " ... | \n",
+ " 2016-08-04T15:24:37Z | \n",
+ " car | \n",
+ " 1400 | \n",
+ " Corsa D | \n",
+ " 578c86a7e4b086b281ada0d0 | \n",
+ " gasoline | \n",
+ " 2013 | \n",
+ " Opel | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 376 | \n",
+ " 57a35e90e4b086b281cf6bdb | \n",
+ " 2016-08-04T15:24:32 | \n",
+ " POINT (6.46097 51.22496) | \n",
+ " 1.900000 | \n",
+ " precision | \n",
+ " 29.000000 | \n",
+ " c | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 2.368122 | \n",
+ " ... | \n",
+ " 2016-08-04T15:24:37Z | \n",
+ " car | \n",
+ " 1400 | \n",
+ " Corsa D | \n",
+ " 578c86a7e4b086b281ada0d0 | \n",
+ " gasoline | \n",
+ " 2013 | \n",
+ " Opel | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 377 | \n",
+ " 57a35e90e4b086b281cf6bdc | \n",
+ " 2016-08-04T15:24:37 | \n",
+ " POINT (6.46097 51.22496) | \n",
+ " 3.300000 | \n",
+ " precision | \n",
+ " 30.000000 | \n",
+ " c | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 3.900000 | \n",
+ " ... | \n",
+ " 2016-08-04T15:24:37Z | \n",
+ " car | \n",
+ " 1400 | \n",
+ " Corsa D | \n",
+ " 578c86a7e4b086b281ada0d0 | \n",
+ " gasoline | \n",
+ " 2013 | \n",
+ " Opel | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
7440 rows × 52 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id time geometry \\\n",
+ "0 5a9bad3844ea851012e06c09 2018-02-24T16:21:20 POINT (6.77675 51.22546) \n",
+ "1 5a9bad3844ea851012e06c0b 2018-02-24T16:21:25 POINT (6.77668 51.22518) \n",
+ "2 5a9bad3844ea851012e06c0c 2018-02-24T16:21:30 POINT (6.77635 51.22497) \n",
+ "3 5a9bad3844ea851012e06c0d 2018-02-24T16:21:35 POINT (6.77594 51.22484) \n",
+ "4 5a9bad3844ea851012e06c0e 2018-02-24T16:21:40 POINT (6.77566 51.22471) \n",
+ ".. ... ... ... \n",
+ "373 57a35e90e4b086b281cf6bd8 2016-08-04T15:24:17 POINT (6.46094 51.22493) \n",
+ "374 57a35e90e4b086b281cf6bd9 2016-08-04T15:24:22 POINT (6.46095 51.22494) \n",
+ "375 57a35e90e4b086b281cf6bda 2016-08-04T15:24:27 POINT (6.46095 51.22494) \n",
+ "376 57a35e90e4b086b281cf6bdb 2016-08-04T15:24:32 POINT (6.46097 51.22496) \n",
+ "377 57a35e90e4b086b281cf6bdc 2016-08-04T15:24:37 POINT (6.46097 51.22496) \n",
+ "\n",
+ " GPS VDOP.value GPS VDOP.unit Intake Temperature.value \\\n",
+ "0 1.722027 precision 32.999999 \n",
+ "1 2.919473 precision 32.000000 \n",
+ "2 1.700000 precision 34.227160 \n",
+ "3 1.951852 precision 32.000000 \n",
+ "4 1.905823 precision 32.397662 \n",
+ ".. ... ... ... \n",
+ "373 1.738716 precision 26.000000 \n",
+ "374 1.900000 precision 27.000000 \n",
+ "375 1.827628 precision 28.000000 \n",
+ "376 1.900000 precision 29.000000 \n",
+ "377 3.300000 precision 30.000000 \n",
+ "\n",
+ " Intake Temperature.unit O2 Lambda Voltage.value O2 Lambda Voltage.unit \\\n",
+ "0 c 2.774379 V \n",
+ "1 c 4.589390 V \n",
+ "2 c 3.118953 V \n",
+ "3 c 3.282321 V \n",
+ "4 c 3.358742 V \n",
+ ".. ... ... ... \n",
+ "373 c NaN NaN \n",
+ "374 c NaN NaN \n",
+ "375 c NaN NaN \n",
+ "376 c NaN NaN \n",
+ "377 c NaN NaN \n",
+ "\n",
+ " GPS PDOP.value ... track.end sensor.type \\\n",
+ "0 2.022027 ... 2018-02-24T16:44:46Z car \n",
+ "1 3.281339 ... 2018-02-24T16:44:46Z car \n",
+ "2 2.157822 ... 2018-02-24T16:44:46Z car \n",
+ "3 2.351852 ... 2018-02-24T16:44:46Z car \n",
+ "4 2.188153 ... 2018-02-24T16:44:46Z car \n",
+ ".. ... ... ... ... \n",
+ "373 2.111836 ... 2016-08-04T15:24:37Z car \n",
+ "374 2.327154 ... 2016-08-04T15:24:37Z car \n",
+ "375 2.198899 ... 2016-08-04T15:24:37Z car \n",
+ "376 2.368122 ... 2016-08-04T15:24:37Z car \n",
+ "377 3.900000 ... 2016-08-04T15:24:37Z car \n",
+ "\n",
+ " sensor.engineDisplacement sensor.model sensor.id \\\n",
+ "0 1800 Avensis 574e78cbe4b09078f97bbb4a \n",
+ "1 1800 Avensis 574e78cbe4b09078f97bbb4a \n",
+ "2 1800 Avensis 574e78cbe4b09078f97bbb4a \n",
+ "3 1800 Avensis 574e78cbe4b09078f97bbb4a \n",
+ "4 1800 Avensis 574e78cbe4b09078f97bbb4a \n",
+ ".. ... ... ... \n",
+ "373 1400 Corsa D 578c86a7e4b086b281ada0d0 \n",
+ "374 1400 Corsa D 578c86a7e4b086b281ada0d0 \n",
+ "375 1400 Corsa D 578c86a7e4b086b281ada0d0 \n",
+ "376 1400 Corsa D 578c86a7e4b086b281ada0d0 \n",
+ "377 1400 Corsa D 578c86a7e4b086b281ada0d0 \n",
+ "\n",
+ " sensor.fuelType sensor.constructionYear sensor.manufacturer \\\n",
+ "0 gasoline 2011 Toyota \n",
+ "1 gasoline 2011 Toyota \n",
+ "2 gasoline 2011 Toyota \n",
+ "3 gasoline 2011 Toyota \n",
+ "4 gasoline 2011 Toyota \n",
+ ".. ... ... ... \n",
+ "373 gasoline 2013 Opel \n",
+ "374 gasoline 2013 Opel \n",
+ "375 gasoline 2013 Opel \n",
+ "376 gasoline 2013 Opel \n",
+ "377 gasoline 2013 Opel \n",
+ "\n",
+ " track.appVersion track.touVersion \n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 NaN NaN \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN \n",
+ ".. ... ... \n",
+ "373 NaN NaN \n",
+ "374 NaN NaN \n",
+ "375 NaN NaN \n",
+ "376 NaN NaN \n",
+ "377 NaN NaN \n",
+ "\n",
+ "[7440 rows x 52 columns]"
+ ]
+ },
+ "execution_count": 118,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bbox = BboxSelector([\n",
+ " 6.7559051513671875, # min_x\n",
+ " 51.21226046094158, # min_y\n",
+ " 6.792297363281249, # max_x\n",
+ " 51.22817289705297 # max_y\n",
+ "])\n",
+ "\n",
+ "# issue a query\n",
+ "track_df = track_api.get_tracks(bbox=bbox, num_results=20) # requesting 20 tracks inside the bbox\n",
+ "track_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "id\n",
+ "time\n",
+ "geometry\n",
+ "GPS VDOP.value\n",
+ "GPS VDOP.unit\n",
+ "Intake Temperature.value\n",
+ "Intake Temperature.unit\n",
+ "O2 Lambda Voltage.value\n",
+ "O2 Lambda Voltage.unit\n",
+ "GPS PDOP.value\n",
+ "GPS PDOP.unit\n",
+ "Consumption.value\n",
+ "Consumption.unit\n",
+ "Throttle Position.value\n",
+ "Throttle Position.unit\n",
+ "O2 Lambda Voltage ER.value\n",
+ "O2 Lambda Voltage ER.unit\n",
+ "Intake Pressure.value\n",
+ "Intake Pressure.unit\n",
+ "GPS Accuracy.value\n",
+ "GPS Accuracy.unit\n",
+ "Engine Load.value\n",
+ "Engine Load.unit\n",
+ "GPS Altitude.value\n",
+ "GPS Altitude.unit\n",
+ "GPS HDOP.value\n",
+ "GPS HDOP.unit\n",
+ "Rpm.value\n",
+ "Rpm.unit\n",
+ "GPS Speed.value\n",
+ "GPS Speed.unit\n",
+ "Speed.value\n",
+ "Speed.unit\n",
+ "MAF.value\n",
+ "MAF.unit\n",
+ "GPS Bearing.value\n",
+ "GPS Bearing.unit\n",
+ "CO2.value\n",
+ "CO2.unit\n",
+ "track.id\n",
+ "track.length\n",
+ "track.begin\n",
+ "track.end\n",
+ "sensor.type\n",
+ "sensor.engineDisplacement\n",
+ "sensor.model\n",
+ "sensor.id\n",
+ "sensor.fuelType\n",
+ "sensor.constructionYear\n",
+ "sensor.manufacturer\n",
+ "track.appVersion\n",
+ "track.touVersion\n",
+ "Calculated MAF.value\n",
+ "Calculated MAF.unit\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Printing the column names in track_df geodataframe\n",
+ "for col in track_df.columns:\n",
+ " print(col)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 119,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "20"
+ ]
+ },
+ "execution_count": 119,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(track_df.groupby('track.id'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 120,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 120,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "