관리 메뉴

Lucete

image GPS.py 본문

Language/Python

image GPS.py

LuCeT3 2016. 12. 21. 03:31


  1. from PIL import Image
  2. from PIL.ExifTags import TAGS
  3.  
  4. filename = "sunset.jpg"
  5. extension = filename.split('.')[-1]
  6. if (extension == 'jpg') | (extension == 'JPG') | (extension == 'jpeg') | (extension == 'JPEG') | (extension == 'PNG') |(extension == 'png'):
  7.     try:
  8.         img = Image.open(filename)
  9.         info = img._getexif()
  10.         exif = {}
  11.         for tag, value in info.items():
  12.             decoded = TAGS.get(tag, tag)
  13.             exif[decoded] = value
  14.         # from the exif data, extract gps
  15.         exifGPS = exif['GPSInfo']
  16.         latData = exifGPS[2]
  17.         lonData = exifGPS[4]
  18.         # calculae the lat / long
  19.         latDeg = latData[0][0] / float(latData[0][1])
  20.         latMin = latData[1][0] / float(latData[1][1])
  21.         latSec = latData[2][0] / float(latData[2][1])
  22.         lonDeg = lonData[0][0] / float(lonData[0][1])
  23.         lonMin = lonData[1][0] / float(lonData[1][1])
  24.         lonSec = lonData[2][0] / float(lonData[2][1])
  25.         # correct the lat/lon based on N/E/W/S
  26.         Lat = (latDeg + (latMin + latSec / 60.0) / 60.0)
  27.         if exifGPS[1] == 'S': Lat = Lat * -1
  28.         Lon = (lonDeg + (lonMin + lonSec / 60.0) / 60.0)
  29.         if exifGPS[3] == 'W': Lon = Lon * -1
  30.         # print file
  31.         msg = "There is GPS info in this picture located at " + str(Lat) + "," + str(Lon)
  32.         print msg
  33.         kmlheader = '<?xml version="1.0" encoding="UTF-8"?>' + '<kml xmlns="http://www.opengis.net/kml/2.2">'
  34.         kml = ('<Placemark><name>%s</name><Point><coordinates>%6f,%6f</coordinates></Point></Placemark></kml>') % (
  35.         filename, Lon, Lat)
  36.         with open(filename + '.kml', "w") as f:
  37.             f.write(kmlheader + kml)
  38.         print 'kml file created'
  39.     except:
  40.         print 'There is no GPS info in this picture'
  41.         pass


'Language > Python' 카테고리의 다른 글

individual bands of image.py  (0) 2016.12.21
RGB image analysis.py  (0) 2016.12.21
image GPS.py  (0) 2016.12.21
base image.py  (0) 2016.12.21
python 같은 파일 뽑아내기 :)  (0) 2016.12.18
md5 한번에 인코딩하기 :) ex)폴더지정  (0) 2016.12.18
0 Comments
댓글쓰기 폼