jmunsch

Python: map latitude longitude and density

Aug 29th, 2014
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.31 KB | None | 0 0
  1. def returnData(fp):
  2.     with open(fp,'r') as f:
  3.         lines = f.read()
  4.     lines = lines.split('\n')
  5.     lines = [line.split(',') for line in lines]
  6.     return lines
  7.  
  8. def writedensity():
  9.     fp = 'l.txt'
  10.     lines = returnData(fp)
  11.     for line in lines:
  12.         count = 0
  13.         print(line)
  14.         result = getlatlon(line, count)
  15.         if result:
  16.             with open('out','a+') as f:
  17.                 f.write(','.join(result+['\n']))
  18.  
  19. def getlatlon(line, count):
  20.     #from geopy.geocoders import Nominatim as nom
  21.     #g = nom()
  22.     #writedensity()
  23.    
  24.     try:
  25.         l = g.geocode(line[0])
  26.         lon, lat = l.raw['lon'],l.raw['lat']
  27.         print("found")
  28.         return [lat,lon,line[1]]
  29.     except Exception, e:
  30.         print('.')
  31.         count += 1
  32.         if count > 3:
  33.             return None
  34.         else:
  35.             getlatlon(line, count)
  36.     #from geopy.geocoders import Nominatim as nom
  37.     #g = nom()
  38.     #writedensity()
  39.  
  40.  
  41. import matplotlib.pyplot as plt
  42. import numpy as np
  43. from mpl_toolkits.basemap import Basemap
  44. import matplotlib.cm as cm
  45. import math
  46. m = Basemap(resolution='i', projection='cyl', llcrnrlat=0,urcrnrlat=90, llcrnrlon=-180,urcrnrlon=180)
  47. m.drawcoastlines()
  48. m.fillcontinents(color='white',lake_color='gray',zorder=0)
  49. m.drawparallels(np.arange(-80.,81.,20.))
  50. m.drawmeridians(np.arange(-180.,181.,20.))
  51. m.drawmapboundary(fill_color='gray')
  52. m.drawstates()
  53. fp = 'out'
  54. data = returnData(fp)
  55. print(data[1])
  56. print('len_data: ',len(data))
  57. #towns = ["Chicago Illinois", "Minneapolis Minnesota"]
  58. #for name in towns:
  59. lats = []
  60. lons = []
  61. sizes = []
  62. colors = []
  63.  
  64. for l in data:
  65.     colors.append(int(l[2]))
  66.     #print(l)
  67. #print(max(sizes))
  68. max_size = max(colors)
  69.  
  70. #print('max_size',max_size,'len sizes',len(sizes))
  71. sizes = []
  72.  
  73.  
  74. for line in data:
  75.     lat, lon, size = line[0],line[1],line[2]
  76.     lats.append(lat)
  77.     lons.append(lons)
  78.     cols = (float(size)/float(max_size))#((float(size)/float(max_size)), (0.), (float(size)/float(max_size)))
  79.     #size = (math.log(float(size))+1.)*80.
  80.     size = float(size)*10
  81.     #sizes.append(size)
  82.     #print("read points")
  83.     xpt, ypt = m(lon, lat)
  84.     #print("added points")
  85.     m.scatter(xpt, ypt, s=size, c=cols, marker='o',cmap=cm.jet, alpha=.7)
  86.     #print("added scatters")
  87. plt.show()
  88. print("showing plot")
Advertisement
Add Comment
Please, Sign In to add comment