ns-3-leo/utils/geo2vec.py
2020-08-19 00:55:18 +02:00

49 lines
1,001 B
Python
Executable file

#!/usr/bin/env python3
import logging as log
import fileinput
from sys import argv
from skyfield.api import Topos, load
log.basicConfig(level=log.DEBUG)
"""
Converts pairs of format `name longitute latitude` to `ns3::Vector` format in ITRF frame
See `ns3::Vector::operator >>`
"""
def isogeo():
for i in range(-60,60,5):
for j in range(-180,180,5):
yield "foo,%f,%f" % (i, j)
"""
Stores the vector data
"""
class Vector:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __repr__(self):
return "%f:%f:%f" % (self.x, self.y, self.z)
if __name__ == "__main__":
if len(argv) > 1:
if argv[1] == "-r":
f = isogeo()
else:
f = fileinput.input(argv[1])
else:
f = fileinput.input()
for line in f:
_, lat, lng = line.split(',')
location = Topos(float(lat), float(lng))
d = location.itrf_xyz().m
print(Vector(d[0], d[1], d[2]))