2012-10-11 2 views
0

같은 경로의 여러 동영상 트랙이 1 년 내내 여러 차례 촬영되었습니다. 모든 비디오 트랙은 1Hz GPS로 GPS 태그가 붙어 있으므로 모든 샷의 초당 GPS 포인트가 있습니다.PostGIS : GPS 포인트에 의한 시간 코드 동기화

내가 달성하고 싶은 것은 이러한 모든 비디오 트랙을 예를 들어 After Effects를 선택하고 GPS 위치로 시간을 다시 매핑하십시오. 트랙을 신호등과 다른 장애물이 포함되어 있으므로 시간별로 트랙을 동기화 할 수 없습니다.

저는 두 개의 테이블을 만듭니다. 하나는 메인 비디오 트랙 인 여름, 다른 하나는 모두 포함 된 샷이라고합니다.

그래서
Column |   Type   |        Modifiers        | Storage | Description 
----------+------------------------+-------------------------------------------------------------------+----------+------------- 
id  | integer    | not null default nextval('shot_id_seq'::regclass) | plain | 
season | character varying(255) | not null               | extended | 
timecode | time without time zone | not null               | plain | 
point | geometry(Point,4326) | not null               | main  | 

Indexes: 
    "shot_pkey" PRIMARY KEY, btree (id) 
    "shot_point_id" gist (point) 
Referenced by: 
    TABLE "summer" CONSTRAINT "summer_autumn_id_fkey" FOREIGN KEY (autumn_id) REFERENCES shot(id) DEFERRABLE INITIALLY DEFERRED 
    TABLE "summer" CONSTRAINT "summer_spring_id_fkey" FOREIGN KEY (spring_id) REFERENCES shot(id) DEFERRABLE INITIALLY DEFERRED 
    TABLE "summer" CONSTRAINT "summer_winter_id_fkey" FOREIGN KEY (winter_id) REFERENCES shot(id) DEFERRABLE INITIALLY DEFERRED 
Has OIDs: no 

, 기본적으로 내가하고 싶은 것, 모든 행을 통해 실행하는 것입니다 : 촬영 테이블이 보이지만

 Column |   Type   |        Modifiers        | Storage | Description 
-----------+------------------------+--------------------------------------------------------------------+---------+------------- 
id  | integer    | not null default nextval('summer_id_seq'::regclass) | plain | 
timecode | time without time zone | not null               | plain | 
spring_id | integer    |                 | plain | 
autumn_id | integer    |                 | plain | 
winter_id | integer    |                 | plain | 
point  | geometry(Point,4326) | not null               | main | 

Indexes: 
    "summer_pkey" PRIMARY KEY, btree (id) 
    "summer_autumn_id" btree (autumn_id) 
    "summer_point_id" gist (point) 
    "summer_spring_id" btree (spring_id) 
    "summer_winter_id" btree (winter_id) 
Foreign-key constraints: 
    "summer_autumn_id_fkey" FOREIGN KEY (autumn_id) REFERENCES shot(id) DEFERRABLE INITIALLY DEFERRED 
    "summer_spring_id_fkey" FOREIGN KEY (spring_id) REFERENCES shot(id) DEFERRABLE INITIALLY DEFERRED 
    "summer_winter_id_fkey" FOREIGN KEY (winter_id) REFERENCES shot(id) DEFERRABLE INITIALLY DEFERRED 
Has OIDs: no 

:

는 여름 테이블은 다음과 같다 여름 테이블, 다른 테이크 각각에 대해 각 행에 가장 가까운 지점을 찾고이 정보로 여름 테이블을 업데이트하십시오.

내가 함께 작동하지 않는 이유는 개인적으로 보이지 않는 쿼리를 넣어했지만 출력이 이상하고, After Effects에서 다시 매핑 시간이 전혀 작동하지 않습니다 :

SELECT DISTINCT ON (summer.id) 
    summer.id AS summer_id, shot.id AS autumn_id, 
    ST_Distance_Sphere(summer.point, shot.point) AS distance 
FROM shot.summer summer 
    LEFT JOIN shot.shot.track 
    ON ST_DFullyWithin (summer.point, shot.point, 0.001) 
    AND shot.season='autumn' 
ORDER BY summer.id ASC; 

누군가 올바른 방향으로 나를 가리킬 수 있습니까?

감사합니다.

답변

1

그냥 내 옆에서 추측 당신은 지리적 좌표를 사용하는

을 (어쩌면 당신은? "이상한 출력"에 조금 정교한 수), 다음 0.001의 반경은 매우 큰 거리 (약 100m이다 북쪽 - 남쪽, 덜 동서 - 얼마나 북쪽에 있느냐에 따라) 그러면 두 테이블에 일치하는 히트 수가 많을 것입니다. 내가 이해하는 한, 각 "가을 점"에 대해 하나의 "여름 지점"을 원한다. 가장 가까운 지점을 골라 내야한다. 또한, 나는 같은 x와 y 해상도를 가진 투사로 데이터를 재 투영합니다 (예 : 너무 큰 동서 거리를 다루지 않는 한, utm). 북쪽 약 60도에서 북쪽으로 약 60도, 지형 투영법으로 ~ 110 미터 남북 거리는 0.001 도의 수치차를 보이지만 55 미터 동서 거리는 같은 수치 차이가 있습니다. 나는. 계산의 경우 동쪽으로 55 미터 오류는 북쪽으로 110 미터 오류와 같습니다 ... (적도에 더 가깝다면 그 차이는 작고 멀리 떨어져서 더 나빠질 것입니다)

희망이 있습니다. 올바른 방향으로