2013-08-06 1 views
0

나는 다음과 같은 기능을 구현해야 프로젝트에서 일하고 있습니다.예측 피할 landmass

  1. (해양 환경의) 선박의 위치를 ​​향후 시간으로 예측합니다 (칼만 필터, IMM 필터 및 기타 알고리즘으로 수행 할 수 있음). 배송은 전 세계 어디에서나 가능합니다.
  2. 최단 경로 나는 완전히 해안선 정보를 고려하지 않고 예측되는 첫 번째 부분으로 수행하고있는 해안선

함께 예측 동안 대륙을 방지. 나는 기능 2 문제와 시간에서 기능이
3.

문제가, 당신의 예상 위치는 완전히 받아 들일 수있는 대륙 지역에 해당 할 수 있습니다. 해안 지역의 shp 파일 http://openstreetmapdata.com/data/coastlines 이 파일은 세계 해안 데이터의 XY 값을 변환했습니다. 이 shp 파일을 postgreSQL에로드하고 postgis를 사용하여 데이터베이스에서 읽습니다.

내 생각은 모든 폴리곤 (폴리곤을 기반으로 정의 된 해안선)을 통과하고 현재 위치와 예상 위치를 연결하는 선이 다각형을 교차하는지 확인하는 것입니다. 그것이 교차하면, 우리는 배가 해안선을 먼저 차단하는 곳을 찾아야한다는 것을 의미합니다. 그래서 모든 폴리곤을 통과하는이 방법을 따르면 영원히 시간이 걸릴 것입니다. (각 폴리곤은 약 62000 개의 다각형을 가지고 있으며 각각은 점의 1000을가집니다. 그래서 이것에 대한 조언은? 처음에는 월드 맵을 hierachical 영역 (Level 1 : 10 polygon, Level 2 : 각 다각형 안에 10 개의 다각형이 있음)으로 나누는 것에 대해 생각했습니다. 그러나 위의 shp 파일로 월드 맵을 필요한 폴리곤 레벨로 나누는 방법을 모르겠습니다. 또는 postgis의 모든 기능이이 기능에 도움이됩니까? 또는이 목적을위한 다른 라이브러리. 나는 이런 종류의 기능이 이미 이용 가능해야한다고 생각한다. 하지만 나는 을 알아낼 수 없었다.


지금 우리가 처음 해안선 가로 챌 배를 않는 곳 알고 있기 때문에 기능 3, 우리는 우리가 대상 정보를 알고 주어진 최단 경로 알고리즘을 사용하여 해안선을 따라 그것을 예측할 수 있습니다. 그러나이를 위해서는 위의 해안선지도를 그리드로 나누어 최단 경로를 사용할 수 있어야합니다. 이렇게 해안선을 따라 어떻게 그리드를 만들 수 있습니까? 나는 여기서 이미지 처리를하고 있지 않다. 지금 가지고있는 것은이 shp 파일입니다. 모든 조언을 부탁드립니다. 또는 일부 이미지 처리 방법을 사용하고 그리드 해안선을 만들어야합니다. 그렇다면 링크를 제공해주십시오.

+0

이 질문을 gis.stackexchange.com에 게시하는 것을 고려하십시오. 당신의 문제에 대한 좋은 접근법을 제공 할 수있는 GIS 전문가가 많이 있습니다. 함수 2와 관련하여 공간 인덱스를 사용해야합니다. http://workshops.opengeo.org/postgis-intro/indexing.html – lreeder

+0

감사합니다. Ireeder를 참조하십시오. 나는 거기도 게시했지만 아직 답변이 없습니다. – kaja

답변

0

우선 PostGIS는 꽤 빠르며 올바른 색인을 사용하면 폴리곤을 적당히 작게 유지하면 좋은 색인 생성과 중복 된 연산자 지원으로 수를 보충 할 수 있습니다 (겹치는 폴리곤 수 GISTGIN 색인을 사용하십시오. 후자는 읽기보다 읽기 성능이 좋고 쓰기는 성능이 떨어집니다.

62000 개의 다각형은 전 세계적으로 아무것도 아닙니다. 바운딩 박스가 라인과 겹치는 수천 개 이상을 확인해야하는 경우 다시 작성하십시오.

세 번째 문제는 한 방향으로 가고 있습니까?나는 특정 벡터 (벡터는 (point, point) 튜플로 나타낼 수 있음)를 따라 폴리곤에 가장 가까운 탄젠트를 반환하는 tangent(point, vector, polygon) 함수를 작성하는 것이 얼마나 힘든지 궁금하다. 이것을 KNN 검색과 결합하려면 WITH RECURSIVE 쿼리를 사용하여 코스를 그릴 수 있어야합니다.