summaryrefslogtreecommitdiff
path: root/bin/map2globe.py
blob: cb496756dd14505da986ff5929442930510247a0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/python3.6

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))
  print("{} rotate 0 {} 0".format(name,str(rotation)))
  rotation+=1
  rotation%=360

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

print("# done")