摘要:数码照片在拍摄时会记录照片的拍摄信息,如果拍照时开启了GPS定位服务功能,则就会记录拍摄时的经纬度坐标及高程信息。本文介绍如何读取数码照片中的位置信息,以及根据位置信息转换成shapefile格式点数据。
1、目标
数码照片在拍摄时会产生一个Exif数据(Exchangeable image file format),该数据记录了照片的拍摄信息,并附加于JPEG、TIFF、RIFF等文件之中,如果拍照时开启了GPS定位服务功能,则Exif数据就会记录照片拍摄时的位置数据(经纬度坐标及高程)。打开照片的属性对话框可以看到Exif数据。
图1 照片属性对话框
通过从数码照片中读取位置信息,则可以产生拍摄点的点数据,进一步根据多个照片的拍摄时间可以产生拍摄点的轨迹数据。
2、方法
照片中的Exif数据读取可利用PIL(新的版本称为Pillow)图像处理包。PIL图像对象的_getexif()方法以字典形式返回照片的Exif数据,形式如下:
{271: 'HUAWEI',
272: 'HUAWEI B199',
282: (72, 1),
283: (72, 1),
296: 2,
531: 1,
33434: (1, 1089),
34665: 146,