2 votos

Encuentra fotos por zona horaria

Algunas de mis fotos en Apple Photos 2.0 (3150.4.120) tienen la zona horaria equivocada, pero no sé cuáles. Puedo encontrar la zona horaria de una foto individual, seleccionando Imagen > Ajustar fecha y hora.

¿Pero cómo puedo encontrar todas las fotos con una cierta zona horaria? He intentado buscar en el Finder, en los metadatos del sistema de archivos de las fotos (usando mdls), en los metadatos EXIF de las fotos (usando exiftool), e incluso en la base de datos de Photos sqlite, pero no he encontrado dónde está almacenado.

¿Dónde está esta información?

2voto

Kent Puntos 3462

Puede que dependa de la cámara/teléfono y del sistema operativo; pero, no creo que la zona horaria se almacene explícitamente en los metadatos EXIF de la imagen.

En algunos metadatos, hay una GPS Time (Atomic Clock) que se fija en UTC. Así que, Fotos probablemente sólo calcula las compensaciones de Date and Time (Original) para mostrar la zona horaria.

Es posible que pueda utilizar la exiftool para elaborar una lista de esas dos veces para sus fotos, y buscar valores atípicos que sean más (o menos) diferentes de los otros.

Actualización del cartel original:

Junté una pitón rápida script para comparar estos tiempos, e imprimir los que no están en la zona horaria esperada, o tienen valores diferentes para los minutos. Tendrás que exportar los originales sin modificar de Photos, ya que los modificados no tienen estos metadatos, y luego pasar sus nombres de archivo a este script.

Por supuesto, no tengo ni idea de si esto se acerca a lo que hace Fotos para fijar la zona horaria. Pero identificó correctamente las fotos que conocía con la zona horaria equivocada, y no encontró ningún falso positivo.

#!/usr/bin/python

from subprocess import check_output
import sys, re, os
from dateutil.parser import parse
from datetime import datetime

expected_offset_hours = 8.0  # set to appropriate time zone offset

def get_field(out, name):
    match = re.search("^" + re.escape(name) + "\t(.+?)$", out, re.MULTILINE)
    if match:
        return match.group(1)
    return None

for arg in sys.argv[1:]:
    if not os.path.exists(arg):
        continue
    out = check_output(["exif", "-m", arg])
    gps_date = get_field(out, "GPS Date")
    gps_time = get_field(out, "GPS Time (Atomic Clock)")
    if gps_date == None or gps_time == None:
        print arg + "\tNo GPS date/time"
        continue
    gps_parsed = datetime.strptime(gps_date + " " + gps_time, '%Y:%m:%d %H:%M:%S.%f')
    orig_datetime = get_field(out, "Date and Time (Original)")
    if orig_datetime == None:
        continue
    orig_parsed = datetime.strptime(orig_datetime, '%Y:%m:%d %H:%M:%S')
    offset_secs = (orig_parsed - gps_parsed).total_seconds()
    offset_hours = round(offset_secs / 3600)
    offset_mins = abs(offset_secs - (offset_hours * 3600)) // 60
    if offset_hours != expected_offset_hours or offset_mins > 0:
        #print gps_date + ' ' + gps_time + ' ' + str(gps_parsed)
        #print orig_datetime + ' ' + str(orig_parsed)
        print arg + "\t" + str(offset_hours) + "\t" + str(offset_mins)

0 votos

Así que estoy asumiendo que estamos hablando de GPSDateTime y DateTimeOriginal . Si miro una foto que muestre la zona horaria "lejana", esto cuadra. Pero si miro una que muestra la zona horaria "de origen", no cuadra; de hecho, la hora del GPS ni siquiera está a un número entero de horas de la hora original. Y lo mismo ocurre con una tercera foto, que muestra una zona horaria en blanco. ¡Menudo lío!

0 votos

Sí... no parece fácil. Los nombres de campo que he utilizado eran de un 5S corriendo iOS8, y el uso de macports "exif" para obtener la información. No estoy seguro de si el nombre exacto es una función de la cámara / teléfono o la aplicación exif / exiftool. En mi caso, el tiempo de GPS fue de unos segundos fuera de la hora de la cámara (más el ajuste TZ)

1 votos

Así que tal vez hace alguna suposición acerca de lo lejos que los minutos de la hora del GPS puede ser de la hora original, sin contar la diferencia de horas debido a la zona horaria. Si están demasiado alejados, establece la zona horaria en blanco o la local. Pero, ¿cuál y a qué distancia? Supongo que esa información no la conocemos los mortales.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X