Skip to content

Instantly share code, notes, and snippets.

@jachym
Created September 16, 2017 23:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jachym/453cf466d5437ba3f030f69cd2a76581 to your computer and use it in GitHub Desktop.
Save jachym/453cf466d5437ba3f030f69cd2a76581 to your computer and use it in GitHub Desktop.
Skript pro převod pokrytí dálničí sítě mobilním signálem CSV do GeoJSON
#!/usr/bin/env python3
import csv
import os
import json
def get_features(filename):
with open(filename, newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=';')
skipfirst = True
for row in spamreader:
if skipfirst:
skipfirst = False
continue
(time, lat, lon, tmobile_lte_rsrp, tmobile_lte_sinr, o2_lte_rsrp,
o2_lte_sinr, vodafone_lte_rsrp, vodafone_lte_sinr,
tmobile_gsm, o2_gsm, vodafone_gsm) = row
if not (time and lat and lon):
continue
(time, lat, lon, tmobile_lte_rsrp, tmobile_lte_sinr, o2_lte_rsrp,
o2_lte_sinr, vodafone_lte_rsrp, vodafone_lte_sinr,
tmobile_gsm, o2_gsm, vodafone_gsm) =\
(time, float(lat.replace(",", ".")),
float(lon.replace(",", ".")),
float(tmobile_lte_rsrp.replace(",", ".")),
float(tmobile_lte_sinr.replace(",", ".")),
float(o2_lte_rsrp.replace(",", ".")),
float(o2_lte_sinr.replace(",", ".")),
float(vodafone_lte_rsrp.replace(",", ".")),
float(vodafone_lte_sinr.replace(",", ".")),
float(tmobile_gsm.replace(",", ".")),
float(o2_gsm.replace(",", ".")),
float(vodafone_gsm.replace(",", ".")))
yield {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": (lon, lat)
},
"properties": {
"time": time,
"lat": lat,
"lon": lon,
"tmobile_lte_rsrp": tmobile_lte_rsrp,
"tmobile_lte_sinr": tmobile_lte_sinr,
"o2_lte_rsrp": o2_lte_rsrp,
"o2_lte_sinr": o2_lte_sinr,
"vodafone_lte_rsrp": vodafone_lte_rsrp,
"vodafone_lte_sinr": vodafone_lte_sinr,
"tmobile_gsm": tmobile_gsm,
"o2_gsm": tmobile_gsm,
"vodafone_gsm": vodafone_gsm
}
}
def main():
filenames = [csv for csv in os.listdir("./") if csv.find(".csv") > 0]
with open("pokryti.json", "w") as pokryti:
outobj = {
"type": "FeatureCollection",
"features":[]
}
for filename in filenames:
for feature in get_features(filename):
outobj["features"].append(feature)
pokryti.write(json.dumps(outobj, indent=2))
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment