기하 도형 또는 속성을 사용하여 레이어를 결합하는 방법

요약

GIS에서 조인은 공통 속성이나 공간적 관계를 기반으로 서로 다른 레이어의 정보를 결합하기 위한 강력한 메커니즘입니다. 조인을 사용하면 일반 필드 또는 공간 위치를 사용하여 한 레이어(소스 레이어)의 속성 데이터를 다른 레이어(대상 레이어)와 병합할 수 있습니다. 첫 번째는 테이블의 속성을 기반으로 하는 데이터 조인입니다. 공통 필드(예: 고유 키)를 사용하여 하나의 테이블에서 다른 테이블의 레코드를 연결할 수 있습니다. 두 번째 접근 방식은 위치에 따른 데이터 조인(공간적)입니다. 우리는 두 가지 접근 방식을 모두 지원하며 필요에 따라 사용할 수 있는 기회를 제공합니다.

지구 구역별 인구 변화율을 설명하는 데이터를 받았고 이 정보를 기반으로 여러 개의 인구 성장 지도를 생성하려는 경우를 가정해 보겠습니다. 인구 데이터가 데이터베이스의 테이블에 저장되어 있고 레이어와 공통 필드를 공유하는 동안 이 데이터를 지리적 객체에 조인하고 레이어 객체를 라벨링, 범주화, 쿼리 또는 분석하기 위한 추가 필드를 활용할 수 있습니다.

일반적으로 두 테이블 모두에 존재하는 필드 값을 기반으로 데이터 조인을 수행합니다. 필드 이름은 반드시 일치할 필요는 없지만 데이터 유형은 동일해야 합니다(숫자는 숫자에 해당하고 문자열은 문자열에 해당함 등). “조인 추가” 지오프로세싱 도구를 사용하여 데이터 조인을 실행할 수 있습니다. 속성을 조인할 때 조인된 필드는 기존 테이블에 동적으로 추가됩니다. 별칭, 가시성 및 숫자 서식과 같은 필드 속성은 조인을 추가하거나 제거할 때 유지됩니다.

키 필드로 결합 기능

  • 이 접근 방식을 사용하면 공통 키 필드를 기반으로 서로 다른 테이블의 레코드를 연결할 수 있습니다. 관계를 설정하기 위해 비교에 사용할 키 필드를 지정할 수 있습니다. 식별자 또는 기타 고유 속성을 기반으로 데이터를 병합해야 할 때 특히 유용합니다.

키 필드 기반 데이터 비교 방법을 지정:

  • 데이터를 병합할 때 다양한 비교 방법을 키 필드에 대해 정의할 수 있습니다. 예를 들어 정확히 일치시키거나 패턴을 기반으로 비교하거나 값 범위 내에서 비교하도록 선택할 수 있습니다. 이를 통해 레코드 간의 관계를 보다 정확하게 결정하고 데이터 병합 프로세스를 제어할 수 있습니다.

병합할 속성 이름 목록 지정:

  • 데이터를 병합할 때 병합해야 하는 특정 속성을 지정할 수 있습니다. 이렇게 하면 필요한 속성만 선택적으로 병합하고 결과 테이블 구조를 관리할 수 있습니다.

기하 도형을 사용하여 결합 기능

  • 이 접근 방식을 사용하면 공간 위치를 기반으로 데이터를 연결할 수 있습니다. 검색 반경 내에서 가장 가까운 기하 객체를 검색하여 병합합니다. 지리적 위치를 기반으로 데이터를 조인해야 할 때 유용합니다.

가장 가까운 기하 객체를 찾기 위한 검색 반경 제어:

  • 위치 기반 데이터 병합 시 검색 반경을 제어할 수 있습니다. 반경 값을 지정하여 병합에 사용할 가장 가까운 객체가 검색되는 거리를 결정합니다. 이를 통해 공간적 관계를 기반으로 데이터 병합 프로세스에 참여하는 객체를 제어할 수 있습니다.

데모 프로젝트

라이브러리의 기능을 더 잘 이해하려면 사용 예제를 고려해 보겠습니다. 이 코드는 속성 또는 기하 도형으로 벡터 레이어를 조인하는 방법을 보여줍니다.

제공된 코드에는 JoinByIndex() 및 JoinByCoords()의 두 가지 방법이 포함되어 있으며, 이는 LayerConstructor 클래스를 사용하여 데이터 조인 작업을 시연합니다.

JoinByIndex() 메서드에서:

  • 속성과 관련된 기하 도형 목록이 생성됩니다.

  • LayerConstructor 객체가 초기화됩니다.

  • 해당 기하 도형을 사용하여 벡터 레이어와 기하 레이어가 만들어집니다.

  • 고유 식별자(“Id”)를 사용하여 JoinLayersById() 메서드를 통해 기하 레이어를 조인합니다.

  • 결과로 조인된 벡터 레이어가 반환됩니다.

JoinByCoords() 메서드에서:

  • 속성과 관련된 기하 도형 목록이 생성됩니다.

  • LayerConstructor 객체가 초기화됩니다.

  • 해당 기하 도형을 사용하여 기하 레이어가 만들어집니다.

  • JoinLayersByCoords() 메서드를 통해 일치하는 좌표를 기반으로 기하 레이어를 조인합니다.

  • 결과로 조인된 벡터 레이어가 반환됩니다.

요약하면 이러한 방법은 고유 식별자를 기반으로 하는 것과 일치하는 좌표를 기반으로 하는 두 가지 다른 데이터 조인 접근 방식을 보여줍니다. LayerConstructor 클래스는 이러한 데이터 조인 작업을 용이하게 합니다.

인덱스에 대한 조인 옵션

JoinOptions 클래스는 레이어를 결합하도록 구성하기 위한 일련의 옵션을 제공합니다. 각 옵션에 대해 자세히 알아보겠습니다.

  • JoinAttributeName: 이 옵션을 사용하면 조건 비교에서 사용할 조인된 레이어의 속성 이름을 지정할 수 있습니다. 이를 통해 두 레이어 간의 연결이 설정됩니다.

  • TargetAttributeName: 이 옵션을 사용하면 조인된 레이어의 속성과 비교할 주 레이어의 속성 이름을 지정할 수 있습니다. 레이어 간의 일치하는 기능을 결정하는 데 도움이 됩니다.

  • JoinAttributeNames: 이 옵션을 통해 조인하려는 속성 이름 목록을 지정할 수 있습니다. 이 목록이 비워 두거나 null로 설정되면 조인된 레이어의 모든 속성이 조인 작업에 포함됩니다. 그러나 특정 속성 이름을 선택하면 병합되는 속성을 제어하여 메모리 사용량과 처리 시간을 최적화할 수 있습니다.

  • ConditionComparer: 이 옵션을 통해 두 레이어의 기능 간의 속성 값을 비교하기 위한 사용자 지정 논리를 정의할 수 있습니다. 기본적으로 EqualityComparer.Default 비교기를 사용하여 동일성을 확인합니다. 그러나 IEqualityComparer를 구현하는 자체 사용자 지정 비교기를 제공하여 보다 전문화된 비교 요구 사항을 충족할 수 있습니다.

  • JoinedAttributesPrefix: 이 옵션을 사용하면 조인된 레이어의 속성 이름에 접두사 문자열을 지정할 수 있습니다. 기본값은 “joined_“이며, 이는 조인된 속성이 결과로 조인된 레이어에서 “joined_“으로 접두사가 붙는다는 의미입니다. 이 접두사는 주 레이어의 원래 속성과 구별되는 조인된 속성을 구분하는 데 도움이 됩니다.

JoinOptions 클래스는 레이어를 결합하는 프로세스의 다양한 측면에 대한 유연성과 제어를 제공합니다. 조인할 속성을 지정하고 비교 논리를 사용자 정의하며 결과로 조인된 속성에 접두사를 정의할 수 있습니다. 이러한 옵션을 통해 특정 요구 사항에 따라 조인 작업을 조정하고 병합된 레이어에서 의미 있는 통찰력을 얻을 수 있습니다.

기하 도형에 대한 조인 옵션

JoinByGeometryOptions 클래스는 기하 도형을 기반으로 레이어를 결합하기 위한 옵션을 나타냅니다. 각 옵션의 기능을 살펴보겠습니다.

  • Radius: 이 옵션은 조인된 기하 도형이 검색될 반경을 지정합니다. 이는 공간 관계를 기반으로 주 레이어의 기능이 조인된 레이어의 기능과 일치하는 근접성을 결정합니다.

  • ConditionComparer: 이 옵션을 통해 두 레이어의 기능에서 속성 값을 비교하기 위한 사용자 지정 논리를 정의할 수 있습니다. 기본적으로 EqualityComparer.Default가 사용되며, 이는 동일성을 확인합니다. 그러나 보다 구체적인 비교 요구 사항을 위해 IEqualityComparer를 구현하는 자체 사용자 지정 비교기를 제공할 수 있습니다.

  • JoinedAttributesPrefix: 이 옵션을 통해 조인된 레이어의 속성 이름에 접두사 문자열을 지정할 수 있습니다. 기본값은 “joined_“이며, 이는 조인된 속성이 결과로 조인된 레이어에서 “joined_“으로 접두사가 붙는다는 의미입니다. 이 접두사는 주 레이어의 원래 속성과 구별되는 조인된 속성을 구분하는 데 도움이 됩니다.

JoinByGeometryOptions 클래스는 공간 관계를 기반으로 레이어를 결합하는 프로세스를 사용자 정의할 수 있는 방법을 제공합니다. 검색 반경을 지정하면 기하 도형이 일치하는 범위를 제어할 수 있습니다. 이를 통해 기능 간의 공간적 관계에 따라 조인 작업을 미세 조정할 수 있습니다. 사용자 지정 비교기를 제공하는 옵션을 통해 속성 값을 비교하는 데 유연성을 얻을 수 있으며, 조인된 속성에 접두사를 추가하는 옵션은 결과로 조인된 레이어에서 구분하는 데 도움이 됩니다.

이러한 옵션을 사용하면 공간적으로 인식하는 데이터 병합을 수행하고 공간적 근접성과 속성 값 모두를 기반으로 조인된 레이어에서 통찰력을 얻을 수 있습니다.

요약

GIS의 데이터 조인 메커니즘은 서로 다른 레이어의 기하 객체와 해당 속성을 결합할 수 있도록 합니다. 이를 통해 데이터 내의 공간적 및 속성 관계를 기반으로 분석하고 정보를 추출할 수 있습니다. 사용 가능한 옵션을 통해 특정 요구 사항과 GIS 데이터 분석 요구 사항을 충족하도록 조인 프로세스를 사용자 정의할 수 있습니다.

데이터 조인은 다음을 포함한 다양한 작업을 용이하게 합니다.

  • 특정 기준(예: 특정 지점 반경 500미터 내의 모든 건물 식별)을 충족하는 객체 찾기.

  • 보다 포괄적이고 유익한 개요를 만들기 위해 지리적 데이터를 결합합니다.

  • 추세와 패턴을 식별하기 위해 특정 공간 조건에 따라 객체의 속성 값을 분석합니다.

데이터 조인 옵션을 통해 객체 일치 프로세스를 정확하게 구성할 수 있습니다. 이러한 옵션에는 조인할 속성을 선택하고, 속성 값 비교를 위한 사용자 지정 논리를 정의하고, 조인된 데이터의 속성 이름에 접두사를 추가하는 것이 포함됩니다. 이러한 옵션을 통해 GIS 데이터 분석 목표에 맞게 병합 프로세스를 조정할 수 있는 유연성과 적응성이 제공됩니다.

데이터 조인 메커니즘은 지리적 데이터를 통합하고 분석하는 데 중요한 역할을 하며, 조사 중인 객체의 공간적 및 속성 특성에 대한 보다 포괄적인 이해를 제공합니다.