POS文件GPS数据写入JGP exif信息
将无人机航飞POS文件中经纬度写入对应JPG照片的exif信息中,这样便于数据处理,以及当照片有经纬度数据后自动化应用。
def write_gps_img(self):
self.get_useful_img()
pos_file=self.ent_pospath.get()
(path, filename) = os.path.split(pos_file)
(file, ext) = os.path.splitext(filename)
mission_name=file
self.txt_2_csv(pos_file)
csv_path=self.output_csv_path
csv_data = open(csv_path, "r")
reader = csv.reader(csv_data)
self.img_list_new = sorted(os.listdir(self.new_file_path))
parent_path = os.path.dirname(self.new_file_path)
if self.ent_imgout.get()=="":
jpeg_savepath=self.new_file_path+mission_name+"exifpos"+"/"
os.mkdir(jpeg_savepath)
else:
jpeg_savepath =self.ent_imgout.get()+"/"
global id
id=0
total = int( end ) - int( start ) + 1
for item in reader:
try:
float(item[1])
except BaseException:
continue
else:
lat = float(item[1])
lng = float(item[2])
alt = float(item[3])
lng_exif = self.format_latlng(lng)
lat_exif = self.format_latlng(lat)
alt_exif = (int(100 * round(alt, 2)), 100)
_dict = {"alt": alt_exif, "lng":
lng_exif, "lat": lat_exif, "lng_ref": 'E', "lat_ref": 'N'}
image_path = self.new_file_path + "/" + self.img_list_new[id]
save_path =jpeg_savepath + self.img_list_new[id]
my_file=Path(save_path)
if my_file.is_file():
save_path = jpeg_savepath + "R"+self.img_list_new[id]
else:
save_path = jpeg_savepath + self.img_list_new[id]
self.read_modify_exif(image_path, save_path, _dict)
id += 1
print(id)
self.progress( id, total )
if id==total:
tkinter.messagebox.showinfo( '提示', '提取并写入信息成功!' )
else:
tkinter.messagebox.showerror('结果错误','核对相关数据后重新提取!')