다각형 피처의 확장 시뮬레이션


13

내가 기대하는 것이 흥미로운 질문이 될 것입니다. 나는 걸프 오일 유출 데이터를 사용하여 일반적인 벡터 기반 공간 분석 방법 (버퍼, 오버레이 등)을 소개하는 GIS 과정 소개 과제를 진행 중입니다. 특정 날짜에 딥 워터 호라이즌 오일 유출이 발생했으며 버퍼로 확장을 시뮬레이션하고 있습니다.

개념을 설명하는 작업을 수행하지만 현실적인 결과를 제공하지는 않습니다. 오일이 팽창함에 따라 오일을 다양한 방향으로 향하게하는 전류의 효과를 모방 / 위조하는 방식으로 덜 균일 한 결과를 제공하는 방법으로 이것이 어떻게 수행 될 수 있는지 생각했습니다.

일반적으로 입력 다각형 기능을 사용하여 다음을 수행하는 워크 플로를 찾고 있습니다.

  • 지정된 면적 (예 : 10 평방 킬로미터) 또는 지정된 요인 (예 : 5 %)만큼 원본보다 큰 새 다각형 피처를 만듭니다.
  • 새로운 폴리곤 피처는 임의의 모양을 가지게됩니다.
  • 새로운 폴리곤 피처는 원래 폴리곤 피처를 포함 할 것입니다 (이 점은 거래 차단기는 아니지만 좋은 것입니다)

실제 솔루션에는 해류, 유체 역학 등을 모델링해야합니다.이 작업은 내가하려는 일의 범위를 벗어납니다. (이를 포함하는 솔루션은 확실히 환영받을 만하지 만 흥미로울 것입니다.) 그러나 그 아이디어는 근본적인 공간 문제에 대한 호기심을 자극했으며 어떤 해결책이 있는지 궁금합니다. 하나의 솔루션을 염두에두고 있지만 다른 솔루션에 어떤 솔루션이 있는지 알고 싶습니다.

ESRI 세계에서 일하고 있지만 다른 패키지 / 플랫폼과 관련된 솔루션은 확실히 환영합니다 (테스트 할 수는 없지만). 일반적인 알고리즘, 의사 코드 및 코드도 좋습니다.


2
흥미롭고 혁신적인 해결책이 있지만, 그러한 운동이 기름 유출과 관련이 있다는 암시 적 전제가 우려됩니다. 관련된 과학적 정보의 양은 그의 배꼽을 바라 보는 철학자가 이용할 수있는 것 이상이다. 물론, 다각형을 퍼뜨리는 것이 즐겁습니다. 96 년에 ArcView 2를 사용한 화재 시뮬레이션에 대해 이것을 설명하는 ESRI 담당자의 말을 듣는 것을 기억합니다. 그러나이 과정이 임의적이거나 오도 할 수 있다고 말하는 것을 어떻게 정당화합니까?
whuber

1
@ whuber-결과가 임의의 것이 아니라고 주장하지는 않습니다. 임의의 결과를 얻는 것은 질문에서 적극적으로 찾고 있습니다. 결과는 실제 세계와 유사하지 않을 것입니다. 그것이 바로 "오일 유출의 확대 시뮬레이션"과는 반대로 제가 질문을 한 이유입니다. 특정 영역에서의 적용이 아닌 계산 기하학 / GIS 방법론 측면에 관심이 있습니다. 기름 유출 부분은 단순히 흥미로운 공간 문제에 대한 생각의 원동력이었습니다. 나는 이것을 질문에서 명확히하려고 노력할 것이다.
James M

언급을 잊어 버렸습니다. 과제를 제출할 때 학생들이 왜 버퍼 도구를 이런 식으로 사용하는 것이 현실을 반영하려고하는지에 대한 나쁜 선택에 대해 생각하도록하는 질문이 있습니다. 그래서 누군가 내가 이것을 현실적으로 전달하려고 노력하고 있다고 걱정한다면 :)
James M

감사. 인상적인 학생들은 다각형 유출에 대한 멋진 그래픽 시연과 함께 "석유 유출"에 대한 언급을 볼 때, 후자를 사실적으로 표현하는 것으로 비판적으로 받아 들일 수 있을까 걱정했다.
whuber

답변:


7

어이

PostGIS에서 약간 재미있는 방법이라고 생각합니다. 이것은 확장이 전류를 나타내는 일부 선 문자열을 따르도록 확장 될 수 있다고 생각합니다. 그러나 이제는 한 방향으로 만 확장됩니다.

반복이 50 회 반복 될 때마다 반복 할 때마다 마지막 반복에서 다각형을 가져 와서 이동시키고 버퍼링 (간단히 실행하도록 단순화)하고 볼록하게 결합합니다. 나는 convexhull이 그것을 결합하는 것보다 더 좋은 결과를 주었다고 생각했습니다.

결과적으로 50 개의 다각형이 점점 커지고 있습니다. 모든 큰 다각형은 모든 작은 다각형과 완전히 겹칩니다.

결과를 보려면 http://postgisonline.org/map.php 에서 시도 하십시오.

아래의 sql-code를 복사하고 "map1"을 클릭하십시오.

WITH RECURSIVE t (the_geom, n) AS (SELECT 'POLYGON ((10 10,8 13, 10 15, 12 14, 15 15, 16 12, 15 10, 10 10))':: geometry AS the_geom, 1을 n으로 UNION ALL SELECT ST_Convexhull (ST_Collect (ST_Simplify (ST_Buffer (ST_Transscale (the_geom, 1.3, 2.7,1,1), 1), 0.1), the_geom)), n + 1 as n FROM t WHERE n <50) the_geom FROM t 선택 ;

30 번째 반복에서 다각형을 보려면 t와 세미콜론 사이에
한계 1 오프셋 30
을 끝에 추가 할 수 있습니다

이 50 개의 다각형을 생성하는 데 약 50ms가 사용되므로 너무 많은 대기없이 모델을 확장 할 수 있습니다.

Nicklas 감사합니다

이것은 내가 생각하는 것보다 훨씬 좋았습니다.

WITH RECURSIVE t (the_geom, n) AS (SELECT 'POLYGON ((10 10,8 13, 10 15, 12 14, 15 15, 16 12, 15 10, 10 10))':: geometry AS the_geom, 1을 n으로 UNION ALL SELECT st_convexhull (ST_collect (ST_Simplify (ST_Buffer (ST_Transscale (the_geom, 1.1 * n, 15,1,1), 0.2 * n), 0.1), the_geom))), n + 1 as n FROM t WHERE n <50) t_geom에서 선택

우회전 확장 시뮬레이션


그것은 깔끔한 솔루션이며 공간 데이터베이스 컨텍스트에서 GIS에 대해 배우기 시작해야 할 시간을 찾아야한다는 또 하나의 알림입니다. 이와 같은 사이트가 작동하는 이유를 보여주는 좋은 예입니다. 내가 생각했던 것과 완전히 다른 솔루션을 찾을뿐만 아니라 새로운 리소스를 보너스로 찾습니다.
James M

예. 공간 SQL을 사용하는 많은 양의 확률이 있습니다. 위의 쿼리는 재귀 부분으로 인해 평소보다 읽기가 약간 더 어렵습니다. 시작하는 데 도움이되는 많은 권장 사항이 있습니다.
Nicklas Avén

3

whuber 의주의 사항은 중요하며, 설명을 목적으로만하고 유체 역학을 끌어 들이고 싶지 않다면 가능한 한 문제가 복잡합니다.

그것은 흥미로운 질문이라고 생각하며 학생들에게 재미있을 수 있습니다. 문제를 보는 또 다른 방법은 각 셀 내에서 오일 밀도를 측정 한 래스터 기반 현상으로 생각하는 것입니다. 여기에서 r.spread( documentation ) 과 같은 aniotropy를 고려한 모델을 사용 하여 확산을 '직접'하는 가짜 전류를 포함하여 성장률을 모델링 할 수 있습니다. 선형 버퍼링 문제를 해결하기 위해 불규칙한 모양을 사용하여 ArcGIS 내에서 다른 종류의 초점 작업으로 비슷한 작업을 수행 할 수 있습니다.


2

나는 전류를 나타내는 벡터 기능을 가져 와서 뒤틀림 작업에서 제어 벡터로 사용하려는 유혹을 느낍니다. 중요한 것은 하루의 스프레드를 모방하도록 벡터를 올바르게 스케일링하는 것입니다.

Andy W에 동의하면 경계를 포인트로 떨어 뜨리는 것이 전제 조건 일 수 있습니다. 정확한 결과를 얻으려면 포인트 수를 조여야 할 수도 있습니다.

ESRI 세계에서 어떻게 워프하는지 잘 모르겠습니다. 나는 Data Interop 확장이 그렇게 할 것이라는 것을 알고 있지만, 내장 된 방법이나 이러한 종류의 확장을 위해 특별히 확장이 있어야한다고 가정합니다.


1

누군가가 실제로 유사한 시뮬레이션을 수행 한 경우 놀라지 않을 것입니다. 그러나 여기에 내가 프로젝트에 접근하는 방법 (오일 유출을 확산시키는 해양 프로세스에 대한 사전 지식이 없음)이 있습니다.

다각형으로 엄격하게 작업하려면 경계를 미리 정해진 수의 점으로 잘라냅니다. 이러한 점을 사용하여 확장 방향 및 확장 거리와 관련하여 확률 적 요소가 포함 된 시뮬레이션을 소개합니다 (사전 결정된 합리적인 범위 내에서) 필요한만큼 여러 단계를 반복합니다. 그런 다음 새 위치를 기준으로 모든 점의 볼록 껍질을 다시 만드십시오 (이전 다각형을 항상 포함하도록하려면 확장을 바깥쪽으로 제한해야합니다). 입문 GIS 과정에서는 확률 적 요소를 고려할 때 여러 가지 가능한 반복을 시각화했을 것입니다.

또한 조금 다른 접근 방식으로 시뮬레이션의 에이전트로 오일을 시각화하는 것이 꽤 멋질 수 있다고 생각합니다. 예를 들어 유출 된 모든 원유 배럴에 대해 새 약제를 만든 다음 앞에서 말했던 것과 동일한 확률 적 요소를 추가하십시오. 시간이 지나도 걸프 전체에 걸친 약제의 팽창을 시각화하거나 시간에 따른 오일 밀도를 시각화 할 수 있습니다.

정말 멋진 프로젝트처럼 들리며 완료되면 그림을 게시하십시오.


0

이와 같은 질문이 생성 할 수있는 다양한 결과를 설명하기 위해 질문을 게시 할 때 브레인 스토밍 한 솔루션에 대해 설명하겠습니다. 앞으로 며칠 안에 구현할 수있는 기회를 갖기 원하며 게시하면 게시하겠습니다.

  1. 다각형을 이진 래스터로 래스터 화합니다.
  2. 임의로 0과 1 값을 배치하여 1의 결과보다 큰 래스터를 만듭니다. 0과 1 값의 분포는 다각형을 확장해야하는 양과 일치합니다. 다각형이 5 평방 킬로미터를 확장해야한다면 목표에 도달하려면 5 평방 킬로미터가 될 것입니다. 1 세포의 가치.
  3. (1)과 (2)의 합집합 결과.
  4. 원래 래스터 화 된 다각형에 인접하지 않은 (3) 결과에서 모든 셀을 제거합니다.
  5. 원래 래스터 화 된 다각형 대신 (4)의 결과를 (2)에 공급하고 (1) 개의 셀이 대상 영역과 일치 할 때까지 반복합니다.

아마도 가장 효율적인 방법은 아니지만 작동해야합니다. 아이디어는 고등학생이하는 도시 성장 모델링 운동을 기반으로합니다. 그들의 무작위 래스터는 성장에 대한 적합성을 바탕으로 만들어졌으며 지역 제한이 없지만 무작위 성장 부분은 본질적으로 동일합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.