经地理标记的照片转点 (数据管理)
摘要
根据存储在经地理标记的照片中的 x、y 和 z 坐标信息创建点。或者,也可以将照片文件作为地理数据库附件添加到输出要素类的要素中。
插图
用法
此工具从 JPEG 和 TIFF 照片文件中读取经度、纬度和高度坐标信息,并将这些坐标及关联的属性写入到输出点要素类中。
-
输出要素类将具有如下属性字段:
- Path - 用于生成点的照片文件的完整路径,例如 C:\data\photos\Pic0001.jpg
- Name - 照片文件的短名称,例如 Pic0001.jpg
- DateTime - 照片文件的原始拍摄日期和时间,例如 2010:11:21 15:23:34
- Direction - 拍摄照片时设备所指的方向。取值范围介于 0 到 359.99 之间,其中 0 表示北,90 表示东,依此类推。如果设备未记录任何方向,此字段的值将为 -9999。根据所使用的设备,该值表示偏离正北或磁北方向的角度。有关详细信息,请参阅设备文档。注:
使用地理标记照片的方向信息时,务必要谨慎,因为设备记录的方向可能不准确。有关方向准确性的信息,请参阅设备文档。
输出 DateTime 字段是以 yyyy:MM:dd HH:mm:ss 格式作为时间戳的文本字段。使用转换时间字段工具可将此文本字段转换为真正的日期时间字段,转换后的字段可用于随时间变化分析和绘制数据图像。
如果输出 DateTime 字段的值是 null 或为空,则这可能表明您的设备未在地理标记的照片上捕捉可用时间戳。照片文件可能具有拍摄日期或修改日期的属性,但它们通常不代表拍摄照片的日期和时间。
如果照片的 x,y 坐标为 0,0,则不会针对该照片生成任何点。这些空坐标经常出现,因为照相机的 GPS 没有足够的信号来捕获实时坐标。如果选中了包括未经地理标记的照片参数(脚本中的 ALL_PHOTOS),则将以具有空几何的输出记录形式添加照片。
输出要素类将具有 GCS_WGS_1984 空间参考,因为该坐标系是 GPS 接收器所用的坐标系。
语法
参数 | 说明 | 数据类型 |
Input_Folder |
照片文件所在的文件夹。此文件夹是递归扫描照片文件得到的;基础等级文件夹以及任何子文件夹中的所有照片都将被添加到输出中。 | Folder |
Output_Feature_Class |
输出点要素类。 | Feature Class |
Invalid_Photos_Table (可选) |
可选的输出表,将列出输入文件夹中所有包含无效 Exif 元数据或空 GPS 坐标的照片文件。 如果未指定路径,则不会创建此表。 | Table |
Include_Non-GeoTagged_Photos (可选) |
指定是应将所有照片文件都作为记录添加到输出要素类中,还是仅将那些包含有效 GPS 坐标的照片文件添加到输出要素类中。
| Boolean |
Add_Photos_As_Attachments (可选) |
指定照片文件是否作为地理数据库附件添加到输出要素类中。 许可: 添加附件时,至少需要一个 ArcGIS for Desktop Standard 许可,并且输出要素类必须处于 10 或更高版本的地理数据库中。
| Boolean |
代码实例
以下 Python 窗口代码片段演示了如何使用 GeoTaggedPhotosToPoints 工具。
import arcpy
arcpy.GeoTaggedPhotosToPoints_management("c:/data/photos", "c:/data/city.gdb/photo_points", "", "ONLY_GEOTAGGED", "ADD_ATTACHMENTS")
以下脚本演示了如何使用 GeoTaggedPhotosToPoints 工具。
"""Name: GeoTaggedPhotosToPoints example
Description: Convert a folder of photos to points, then perform a buffer
"""
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inFolder = "photos"
outFeatures = "city.gdb/photos_points"
badPhotosList = "city.gdb/photos_noGPS"
photoOption = "ONLY_GEOTAGGED"
attachmentsOption = "ADD_ATTACHMENTS"
buffers = "city.gdb/photos_points_buffer"
bufferDist = "1 Miles"
arcpy.GeoTaggedPhotosToPoints_management(inFolder, outFeatures, badPhotosList, photoOption, attachmentsOption)
arcpy.Buffer_analaysis(outFeatures, buffers, bufferDist)