aboutsummaryrefslogblamecommitdiffstats
path: root/bin/map2globe.py
blob: 1a50ea558423875fb90deda43855703f5412b8e2 (plain) (tree)
1
                  

















































                                                                                                   




                                     
#!/usr/bin/python3

import sys
import math

plat=0
plon=0
lat=0
lon=0
x="0"
y="0"
z="0"

#lon goes from -180 to +180
#lat goes from -90 to +90
# / 90 * math.pi
#they need to be in the range 0 to 2pi?

if(len(sys.argv) < 2):
 sys.stderr.write("usage: map2globe.py name < map.dat\n")
 sys.exit(1)

name=sys.argv[1]

print("{} addshape 4 1  0 0 0  1 0 0".format(name))
rotation=0

while(1):
 #print (plat,plon,lat,lon)
 try:
  line=input()
  line.strip('\r\n')
  (lon,lat)=map(float,filter(None,line.split(' ')))
  slat=(((lat)/180)*math.pi)
  slon=(((lon)/180)*math.pi)
  (x,y,z)=map(str,(math.cos(slat)*math.cos(slon), math.sin(slat),math.cos(slat)*math.sin(slon)))
#  (x,y,z)=map(str,(slon,slat,0))
 except EOFError:
  print("# reached EOF")
  break
 except ValueError:
  #ignore this line
  print("# read an invalid line: " + line)
  if(line == ""):
   (lat,lon,x,y,z)=(0,0,"","","")
 except:
  e = sys.exc_info()[0]
  print("# error: " + str(e))
  break
 if(lat and lon and x and y and z and plat and plon and px and py and pz): #if the previouses exist
  print("{} addshape 2 2 {} {} {} {} {} {}".format(name,x,y,z,px,py,pz))

#set previouses to currents
 (plat,plon,px,py,pz)=(lat,lon,x,y,z)

print("# done")