Skip to content
Snippets Groups Projects
Commit 8bcc18bc authored by markn92's avatar markn92
Browse files

create charging stations

parent d2470158
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
...@@ -5,6 +5,10 @@ verify_ssl = true ...@@ -5,6 +5,10 @@ verify_ssl = true
[dev-packages] [dev-packages]
pytest = "*" pytest = "*"
pandas = "*"
xlrd = "*"
openpyxl = "*"
odf = "*"
[packages] [packages]
networkx = "*" networkx = "*"
......
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "90bb1fb36e73adedd9b5cbdfa92a32607094a70b9581b3b4880138c5c20b5227" "sha256": "c7d493ff39406747f47d2c4cfff4a9c1fce490dd1c4fa600d3e0b5793326a174"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": { "requires": {
...@@ -37,29 +37,29 @@ ...@@ -37,29 +37,29 @@
}, },
"numpy": { "numpy": {
"hashes": [ "hashes": [
"sha256:1786a08236f2c92ae0e70423c45e1e62788ed33028f94ca99c4df03f5be6b3c6", "sha256:0aa2b318cf81eb1693fcfcbb8007e95e231d7e1aa24288137f3b19905736c3ee",
"sha256:17aa7a81fe7599a10f2b7d95856dc5cf84a4eefa45bc96123cbbc3ebc568994e", "sha256:163c78c04f47f26ca1b21068cea25ed7c5ecafe5f5ab2ea4895656a750582b56",
"sha256:20b26aaa5b3da029942cdcce719b363dbe58696ad182aff0e5dcb1687ec946dc", "sha256:1e37626bcb8895c4b3873fcfd54e9bfc5ffec8d0f525651d6985fcc5c6b6003c",
"sha256:2d75908ab3ced4223ccba595b48e538afa5ecc37405923d1fea6906d7c3a50bc", "sha256:264fd15590b3f02a1fbc095e7e1f37cdac698ff3829e12ffdcffdce3772f9d44",
"sha256:39d2c685af15d3ce682c99ce5925cc66efc824652e10990d2462dfe9b8918c6a", "sha256:3d9e1554cd9b5999070c467b18e5ae3ebd7369f02706a8850816f576a954295f",
"sha256:56bc8ded6fcd9adea90f65377438f9fea8c05fcf7c5ba766bef258d0da1554aa", "sha256:40c24960cd5cec55222963f255858a1c47c6fa50a65a5b03fd7de75e3700eaaa",
"sha256:590355aeade1a2eaba17617c19edccb7db8d78760175256e3cf94590a1a964f3", "sha256:46f404314dbec78cb342904f9596f25f9b16e7cf304030f1339e553c8e77f51c",
"sha256:70a840a26f4e61defa7bdf811d7498a284ced303dfbc35acb7be12a39b2aa121", "sha256:4847f0c993298b82fad809ea2916d857d0073dc17b0510fbbced663b3265929d",
"sha256:77c3bfe65d8560487052ad55c6998a04b654c2fbc36d546aef2b2e511e760971", "sha256:48e15612a8357393d176638c8f68a19273676877caea983f8baf188bad430379",
"sha256:9537eecf179f566fd1c160a2e912ca0b8e02d773af0a7a1120ad4f7507cd0d26", "sha256:6725d2797c65598778409aba8cd67077bb089d5b7d3d87c2719b206dc84ec05e",
"sha256:9acdf933c1fd263c513a2df3dceecea6f3ff4419d80bf238510976bf9bcb26cd", "sha256:99f0ba97e369f02a21bb95faa3a0de55991fd5f0ece2e30a9e2eaebeac238921",
"sha256:ae0975f42ab1f28364dcda3dde3cf6c1ddab3e1d4b2909da0cb0191fa9ca0480", "sha256:a41f303b3f9157a31ce7203e3ca757a0c40c96669e72d9b6ee1bce8507638970",
"sha256:b3af02ecc999c8003e538e60c89a2b37646b39b688d4e44d7373e11c2debabec", "sha256:a4305564e93f5c4584f6758149fd446df39fd1e0a8c89ca0deb3cce56106a027",
"sha256:b6ff59cee96b454516e47e7721098e6ceebef435e3e21ac2d6c3b8b02628eb77", "sha256:a551d8cc267c634774830086da42e4ba157fa41dd3b93982bc9501b284b0c689",
"sha256:b765ed3930b92812aa698a455847141869ef755a87e099fddd4ccf9d81fffb57", "sha256:a6bc9432c2640b008d5f29bad737714eb3e14bb8854878eacf3d7955c4e91c36",
"sha256:c98c5ffd7d41611407a1103ae11c8b634ad6a43606eca3e2a5a269e5d6e8eb07", "sha256:c60175d011a2e551a2f74c84e21e7c982489b96b6a5e4b030ecdeacf2914da68",
"sha256:cf7eb6b1025d3e169989416b1adcd676624c2dbed9e3bcb7137f51bfc8cc2572", "sha256:e46e2384209c91996d5ec16744234d1c906ab79a701ce1a26155c9ec890b8dc8",
"sha256:d92350c22b150c1cae7ebb0ee8b5670cc84848f6359cf6b5d8f86617098a9b73", "sha256:e607b8cdc2ae5d5a63cd1bec30a15b5ed583ac6a39f04b7ba0f03fcfbf29c05b",
"sha256:e422c3152921cece8b6a2fb6b0b4d73b6579bd20ae075e7d15143e711f3ca2ca", "sha256:e94a39d5c40fffe7696009dbd11bc14a349b377e03a384ed011e03d698787dd3",
"sha256:e840f552a509e3380b0f0ec977e8124d0dc34dc0e68289ca28f4d7c1d0d79474", "sha256:eb2286249ebfe8fcb5b425e5ec77e4736d53ee56d3ad296f8947f67150f495e3",
"sha256:f3d0a94ad151870978fb93538e95411c83899c9dc63e6fb65542f769568ecfa5" "sha256:fdee7540d12519865b423af411bd60ddb513d2eb2cd921149b732854995bbf8b"
], ],
"version": "==1.18.1" "version": "==1.18.3"
} }
}, },
"develop": { "develop": {
...@@ -70,13 +70,26 @@ ...@@ -70,13 +70,26 @@
], ],
"version": "==19.3.0" "version": "==19.3.0"
}, },
"et-xmlfile": {
"hashes": [
"sha256:614d9722d572f6246302c4491846d2c393c199cfa4edc9af593437691683335b"
],
"version": "==1.0.1"
},
"importlib-metadata": { "importlib-metadata": {
"hashes": [ "hashes": [
"sha256:06f5b3a99029c7134207dd882428a66992a9de2bef7c2b699b5641f9886c3302", "sha256:2a688cbaa90e0cc587f1df48bdc97a6eadccdcd9c35fb3f976a09e3b5016d90f",
"sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b" "sha256:34513a8a0c4962bc66d35b359558fd8a5e10cd472d37aec5f66858addef32c1e"
], ],
"markers": "python_version < '3.8'", "markers": "python_version < '3.8'",
"version": "==1.5.0" "version": "==1.6.0"
},
"jdcal": {
"hashes": [
"sha256:1abf1305fce18b4e8aa248cf8fe0c56ce2032392bc64bbd61b5dff2a19ec8bba",
"sha256:472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8"
],
"version": "==1.4.1"
}, },
"more-itertools": { "more-itertools": {
"hashes": [ "hashes": [
...@@ -85,6 +98,39 @@ ...@@ -85,6 +98,39 @@
], ],
"version": "==8.2.0" "version": "==8.2.0"
}, },
"numpy": {
"hashes": [
"sha256:0aa2b318cf81eb1693fcfcbb8007e95e231d7e1aa24288137f3b19905736c3ee",
"sha256:163c78c04f47f26ca1b21068cea25ed7c5ecafe5f5ab2ea4895656a750582b56",
"sha256:1e37626bcb8895c4b3873fcfd54e9bfc5ffec8d0f525651d6985fcc5c6b6003c",
"sha256:264fd15590b3f02a1fbc095e7e1f37cdac698ff3829e12ffdcffdce3772f9d44",
"sha256:3d9e1554cd9b5999070c467b18e5ae3ebd7369f02706a8850816f576a954295f",
"sha256:40c24960cd5cec55222963f255858a1c47c6fa50a65a5b03fd7de75e3700eaaa",
"sha256:46f404314dbec78cb342904f9596f25f9b16e7cf304030f1339e553c8e77f51c",
"sha256:4847f0c993298b82fad809ea2916d857d0073dc17b0510fbbced663b3265929d",
"sha256:48e15612a8357393d176638c8f68a19273676877caea983f8baf188bad430379",
"sha256:6725d2797c65598778409aba8cd67077bb089d5b7d3d87c2719b206dc84ec05e",
"sha256:99f0ba97e369f02a21bb95faa3a0de55991fd5f0ece2e30a9e2eaebeac238921",
"sha256:a41f303b3f9157a31ce7203e3ca757a0c40c96669e72d9b6ee1bce8507638970",
"sha256:a4305564e93f5c4584f6758149fd446df39fd1e0a8c89ca0deb3cce56106a027",
"sha256:a551d8cc267c634774830086da42e4ba157fa41dd3b93982bc9501b284b0c689",
"sha256:a6bc9432c2640b008d5f29bad737714eb3e14bb8854878eacf3d7955c4e91c36",
"sha256:c60175d011a2e551a2f74c84e21e7c982489b96b6a5e4b030ecdeacf2914da68",
"sha256:e46e2384209c91996d5ec16744234d1c906ab79a701ce1a26155c9ec890b8dc8",
"sha256:e607b8cdc2ae5d5a63cd1bec30a15b5ed583ac6a39f04b7ba0f03fcfbf29c05b",
"sha256:e94a39d5c40fffe7696009dbd11bc14a349b377e03a384ed011e03d698787dd3",
"sha256:eb2286249ebfe8fcb5b425e5ec77e4736d53ee56d3ad296f8947f67150f495e3",
"sha256:fdee7540d12519865b423af411bd60ddb513d2eb2cd921149b732854995bbf8b"
],
"version": "==1.18.3"
},
"openpyxl": {
"hashes": [
"sha256:547a9fc6aafcf44abe358b89ed4438d077e9d92e4f182c87e2dc294186dc4b64"
],
"index": "pypi",
"version": "==3.0.3"
},
"packaging": { "packaging": {
"hashes": [ "hashes": [
"sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3", "sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3",
...@@ -92,6 +138,28 @@ ...@@ -92,6 +138,28 @@
], ],
"version": "==20.3" "version": "==20.3"
}, },
"pandas": {
"hashes": [
"sha256:07c1b58936b80eafdfe694ce964ac21567b80a48d972879a359b3ebb2ea76835",
"sha256:0ebe327fb088df4d06145227a4aa0998e4f80a9e6aed4b61c1f303bdfdf7c722",
"sha256:11c7cb654cd3a0e9c54d81761b5920cdc86b373510d829461d8f2ed6d5905266",
"sha256:12f492dd840e9db1688126216706aa2d1fcd3f4df68a195f9479272d50054645",
"sha256:167a1315367cea6ec6a5e11e791d9604f8e03f95b57ad227409de35cf850c9c5",
"sha256:1a7c56f1df8d5ad8571fa251b864231f26b47b59cbe41aa5c0983d17dbb7a8e4",
"sha256:1fa4bae1a6784aa550a1c9e168422798104a85bf9c77a1063ea77ee6f8452e3a",
"sha256:32f42e322fb903d0e189a4c10b75ba70d90958cc4f66a1781ed027f1a1d14586",
"sha256:387dc7b3c0424327fe3218f81e05fc27832772a5dffbed385013161be58df90b",
"sha256:6597df07ea361231e60c00692d8a8099b519ed741c04e65821e632bc9ccb924c",
"sha256:743bba36e99d4440403beb45a6f4f3a667c090c00394c176092b0b910666189b",
"sha256:858a0d890d957ae62338624e4aeaf1de436dba2c2c0772570a686eaca8b4fc85",
"sha256:863c3e4b7ae550749a0bb77fa22e601a36df9d2905afef34a6965bed092ba9e5",
"sha256:a210c91a02ec5ff05617a298ad6f137b9f6f5771bf31f2d6b6367d7f71486639",
"sha256:ca84a44cf727f211752e91eab2d1c6c1ab0f0540d5636a8382a3af428542826e",
"sha256:d234bcf669e8b4d6cbcd99e3ce7a8918414520aeb113e2a81aeb02d0a533d7f7"
],
"index": "pypi",
"version": "==1.0.3"
},
"pluggy": { "pluggy": {
"hashes": [ "hashes": [
"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0",
...@@ -108,18 +176,32 @@ ...@@ -108,18 +176,32 @@
}, },
"pyparsing": { "pyparsing": {
"hashes": [ "hashes": [
"sha256:4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f", "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
"sha256:c342dccb5250c08d45fd6f8b4a559613ca603b57498511740e65cd11a2e7dcec" "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
], ],
"version": "==2.4.6" "version": "==2.4.7"
}, },
"pytest": { "pytest": {
"hashes": [ "hashes": [
"sha256:0d5fe9189a148acc3c3eb2ac8e1ac0742cb7618c084f3d228baaec0c254b318d", "sha256:0e5b30f5cb04e887b91b1ee519fa3d89049595f428c1db76e73bd7f17b09b172",
"sha256:ff615c761e25eb25df19edddc0b970302d2a9091fbce0e7213298d85fb61fef6" "sha256:84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970"
], ],
"index": "pypi", "index": "pypi",
"version": "==5.3.5" "version": "==5.4.1"
},
"python-dateutil": {
"hashes": [
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
"sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"
],
"version": "==2.8.1"
},
"pytz": {
"hashes": [
"sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d",
"sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be"
],
"version": "==2019.3"
}, },
"six": { "six": {
"hashes": [ "hashes": [
...@@ -130,10 +212,18 @@ ...@@ -130,10 +212,18 @@
}, },
"wcwidth": { "wcwidth": {
"hashes": [ "hashes": [
"sha256:8fd29383f539be45b20bd4df0dc29c20ba48654a41e661925e612311e9f3c603", "sha256:cafe2186b3c009a04067022ce1dcd79cb38d8d65ee4f4791b8888d6599d1bbe1",
"sha256:f28b3e8a6483e5d49e7f8949ac1a78314e740333ae305b4ba5defd3e74fb37a8" "sha256:ee73862862a156bf77ff92b09034fc4825dd3af9cf81bc5b360668d425f3c5f1"
], ],
"version": "==0.1.8" "version": "==0.1.9"
},
"xlrd": {
"hashes": [
"sha256:546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2",
"sha256:e551fb498759fa3a5384a94ccd4c3c02eb7c00ea424426e212ac0c57be9dfbde"
],
"index": "pypi",
"version": "==1.2.0"
}, },
"zipp": { "zipp": {
"hashes": [ "hashes": [
......
...@@ -15,6 +15,12 @@ pipenv shell pytest ...@@ -15,6 +15,12 @@ pipenv shell pytest
## Extras ## Extras
Create charging stations used of test region:
```shell script
python data.py --cut 51.7806 6.8067 51.7570 6.8741 Ladesaeulenkarte_Datenbankauszug30_04_2020.csv tests/osm/static/charging_stations_raesfeld.json
```
### Draw Graphs used for Testing ### Draw Graphs used for Testing
To draw all graphs, respectively create ```.tex``` snippets (that make use of the To draw all graphs, respectively create ```.tex``` snippets (that make use of the
......
This diff is collapsed.
data.py 0 → 100644
"""
Get OSM Data and merge with charging stops.
"""
import argparse
from typing import Tuple
import networkx as nx
import pandas as pd
long = float
lat = float
coordinate = Tuple[lat, long]
def parse_charging_stations_csv(file: str, nw_corner: coordinate = None, se_corner: coordinate = None):
def float_converter(s: str):
if not s:
return 0.0
return float(s.replace(',', '.'))
converters = {
'long': lambda s: float(s.replace(',', '.')),
'lat': lambda s: float(s.replace(',', '.')),
'p1': float_converter,
'p2': float_converter,
'p3': float_converter,
'p4': float_converter
}
df: pd.DataFrame = pd.read_csv(
file,
sep='\t',
skiprows=6,
header=None,
names=converters.keys(),
converters=converters,
usecols=[4, 5, 11, 14, 17, 20]
)
# Store only information about maximum power
df['power'] = df[['p1', 'p2', 'p3', 'p4']].max(axis=1)
del df['p1']
del df['p2']
del df['p3']
del df['p4']
if nw_corner is not None and se_corner is not None:
lat_max, long_min = nw_corner
lat_min, long_max = se_corner
df = df[(df['long'] <= long_max)
& (df['long'] >= long_min)
& (df['lat'] <= lat_max)
& (df['lat'] >= lat_min)
]
return df
def fetch_osm_data(nw_corner: coordinate, se_corner: coordinate) -> nx.DiGraph:
pass
def merge_osm_with_chtarging_stations(osm_data, charging_stations) -> nx.DiGraph:
pass
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Merge OSM map data with"
"charging station data.")
parser.add_argument(
'input_path',
metavar='source',
type=argparse.FileType('r'),
help='Path to the csv file.'
)
parser.add_argument(
'dest_path',
metavar='dest',
help='Path for destination of Charging Stations json.'
)
parser.add_argument(
'--cut',
type=float,
nargs=4,
metavar=('lat_nw', 'long_nw', 'lat_se', 'long_se'),
default=[None, None, None, None],
help='Use only those charging stations that are located with in a '
'rectangle defined by the north-west and south-east coordinates.'
)
args = parser.parse_args()
parse_charging_stations_csv(
args.input_path,
nw_corner=args.cut[:2],
se_corner=args.cut[2:]
).to_json(args.dest_path, orient='records')
""" """
Convert a Open Street Maps `.map` format file into a networkx directional graph. Convert a Open Street Maps `.map` format file into a networkx directional graph.
This parser is based on the osm to networkx tool from aflaxman : https://gist.github.com/aflaxman/287370/ This parser is based on the osm to networkx tool
from Loïc Messal (github : Tofull)
Added : Added :
- python3.6 compatibility - python3.6 compatibility
...@@ -10,8 +10,6 @@ Added : ...@@ -10,8 +10,6 @@ Added :
- cache to avoid downloading the same osm tiles again and again - cache to avoid downloading the same osm tiles again and again
- distance computation to estimate length of each ways (useful to compute the shortest path) - distance computation to estimate length of each ways (useful to compute the shortest path)
Copyright (C) 2017 Loïc Messal (github : Tofull)
""" """
import copy import copy
......
[{"long":6.838167,"lat":51.76805,"power":22.0}]
\ No newline at end of file
This diff is collapsed.
lat, long
(51.7806, 6.8067)
(51.7570, 6.8741)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment