머리를 get 수없는 문제가 있습니다. 두 개의 다각형 레이어가 있습니다.
- 다각형 A-동일한 필드를 가진 다각형 B의 하위 집합이며 다각형 B와 동일한 다각형을 갖습니다.
- 다각형 B-다각형 A에 있고 싶은 속성 데이터가 있습니다.
어떻게 할 수 있습니까? QGIS 도구 "위치 별 속성에 가입"을 시도했지만 일부 다각형이 다른 다각형 내에 있으므로 찾은 첫 번째 교차점 (외부 다각형)에 연결되는 경향이 있습니다.
머리를 get 수없는 문제가 있습니다. 두 개의 다각형 레이어가 있습니다.
어떻게 할 수 있습니까? QGIS 도구 "위치 별 속성에 가입"을 시도했지만 일부 다각형이 다른 다각형 내에 있으므로 찾은 첫 번째 교차점 (외부 다각형)에 연결되는 경향이 있습니다.
답변:
@Dano는 전체 답변으로 가장 잘 해결되는 몇 가지 문제를 올바르게 제기합니다.
@Celenius가 이미 언급 한 한 가지 어려움 은 B와 A 사이의 조인 (어느 방향이든)이 모든 필드를 복제한다는 것입니다. 이 문제를 해결하는 것은 번거로울 수 있습니다. 의견으로는 분명한 쉬운 방법 (스프레드 시트로 내보내기)이 데이터 무결성 문제를 제기한다고 제안했습니다. Celenius의 제안으로 이미 해결 된 또 다른 어려움 은 데이터베이스 조인이 불가능하기 때문에 속성 조합이 A와 B 모두의 키 역할을 할 수없는 경우이 문제를 해결하는 것과 관련이 있습니다. 공간 조인은 그 문제를 해결합니다.
그렇다면 좋은 해결책은 무엇입니까? 한 가지 접근법은 A를 사용하여 원하는 데이터를 포함하는 B의 해당 레코드를 식별합니다. 다각형의 구성에 대한 가정에 따라 (겹치는 지 여부, 일부는 다른 것을 포함 할 수 있는지 여부 등) 한 가지 레이어를 사용하여 다른 개체를 선택하거나 결합을 통해 다양한 방법으로 수행 할 수 있습니다. 여기서 중요한 것은 우리가이 단계에서하고 싶은 것은 A에 해당하는 B의 부분 집합을 선택한다는 것입니다.
선택을 완료 하면 선택을 내보내고 A. Done을 대체하십시오 .
이 솔루션은 B의 모든 필드가 A의 해당 필드를 대체하기위한 것으로 가정합니다 . 그렇지 않은 경우 실제로 B (소스)를 A (대상)에 1-1 조인해야합니다. 식별자를 기반으로 한 조인이 가장 좋지만 ID를 사용할 수 없고 A와 B의 해당 다각형 모양이 약간 다를 가능성 이없는 경우 다각형 ID (Celenius)에 조인하는 것이 좋습니다 . (이것은 미묘한 점이며, 교묘 한 오류의 잠재적 원인입니다. B에 A에 해당하지 않는 다각형을 편집하면 GIS가 "스냅 핑"또는 "유지 토폴로지"인 경우 여전히 B의 다른 다각형을 보이지 않게 수정할 수 있기 때문입니다. 그렇지 않으면 로컬 편집 중에 자동으로 전역 변경을 수행합니다.)
이 시점에서 모든 필드에는 두 개의 사본이 있습니다. [Foo]가 A와 B에 대한 공통 필드 인 경우 조인에는 A. [Foo]와 B. [Foo]가 포함됩니다. 필드 계산을 사용하여 B. [Foo]를 A. [Foo]에 복사하십시오. 필요한 모든 필드에 대해 반복하십시오. 이 작업이 끝나면 조인을 제거하십시오.
이 절차는 많은 분야가 관련 될 때 약간 번거로울 수 있지만 장점은 다음과 같습니다.
이 제안과 관련된 몇 가지 지침 원칙 은 다음과 같습니다.
많은 경우에 동일한 결과에 도달하는 더 빠르고 쉬운 방법이 있다고 반대 할 수 있습니다. 그렇습니다. 효과적 일 수 있으며 대개주의 해서 수행 할 때 효과가 있습니다 . 그러나 데이터를 위험에 빠뜨릴 수있는 솔루션은 범용 답변으로 권장하고 방어하기가 어렵습니다. 데이터의 손상이 빠르게 명백 해지고 그러한 실수의 결과가 중요하지 않은 작은 데이터 세트가있는 일회성 상황에 가장 적합합니다.
셰이프 파일 "B"에 대한 테이블을 Excel로 내보내고 중복 된 열과 필요없는 정보가 포함 된 열을 삭제하십시오. 공유 식별자 열을 유지 한 다음 적절한 폴더에 저장하십시오. ArcMap으로 이동하여 테이블을 추가 한 다음 Shapefile "A"를 마우스 오른쪽 버튼으로 클릭하고 테이블 조인을 수행하십시오 . 링크는이 작업을 수행하는 방법에 대한 비디오로 연결되어야합니다.
@ whuber-전체 접근 방식은 건전하며 데이터의 무결성을 보장합니다. 이 답변을 반박 할 수있는 유일한 것은 특정 상황 / 프로젝트가 우리에게 접근 할 때이 체계적인 시간이나 예산을 줄 수 없다는 것입니다.
실제와 같은 예 :
Junior Mining Company는 자원을 "증명"할 수있는 능력으로 휴식을 취하면서 수백 만 달러의 현금을 투입 한 주요 광석에 앉아 있습니다. 출판물 및 지질지도 / 데이터에 대한 데스크탑 검토는 매우 목표가 있고 비용이 많이 드는 드릴 프로그램으로 이어집니다. 분석이 첫 번째 실행에서 돌아 오면이 값은 테이블 조인을 통해 해당 지점 위치에 태그가 지정되고 데이터가 DataMine으로 가져 오기 위해 열심히 준비된 Excel 형식으로 펌핑됩니다 (3D orebody 보간).
내 경험에 의하면 , 프로젝트 지질 학자들은 필요 는 EVERY이 편지에 규칙 / 규칙을 포맷 (공백, 특수 문자 등)와 DataMine 가져 오기 파일은 .CSV 형식으로 전달 된 것을 따랐다,이 데이터가 Excel에서 수험 공부를하는 것이 (그때 어쨌든). 이로 인해 목표 시추에 더 많은 투자가 이루어질 것이며, 우리는 그 과정 (일부 경우)을 여러 번 다시 방문 할 것입니다. 이 모든 것은 일반적으로 매우 타이트하고 중요한 타임 라인에서 발생했습니다.
우리 각자는 우리 자신의 이야기와 우리가 일을 수행하는 방법에 대한 우리의 접근 방식에 포함시킨 다양한 경험을 가지고 있습니다. 내 경험에 따르면 Excel은 절대적으로 필요하며 워크 플로에서 중요한 도구로 여겨졌습니다. 내가 아는 것입니다. 이 데이터를 준비 할 때 모든 QA / QC 예방 조치를 취했습니다. Excel에서 부끄러워하는 곳에서는 사용할 수밖에 없었습니다.
1990 년대 후반에 우리는 55 개의 NTS 맵 시트와 수천 가지의 특징을 포함하여 모든 수역과 수로에 대한 대규모 업데이트를 받았습니다. 기존 수 문학 (호수 이름, 표면 높이 등)의 부가 가치 속성을 유지하고 형상을 대체해야했습니다. 구식과 신식의 지오메트리는 각 폴리곤의 중심이 새로운 폴리곤 경계에 의해 여전히 구속 될 수 있음을 보장 할만큼 충분히 가까웠습니다. 이것은 기본적인 확실성이 없으면 중요한 접근 방식이지만 아래의 접근 방식은 좋지 않습니다.
이 특별한 경우 의 해결책 은 속성을 지오메트리로 가져 오는 대신 지오메트리를 속성으로 가져 오는 것입니다. 따라서 개념적으로 :
arcinfo-worksation에 대한 자세한 설명과 레시피는 여기 를 참조 하십시오 . 현대 Arcgis 또는 Qgis에서도 속성 레코드의 속성 레코드를 동시에 삭제하지 않고 형상을 삭제할 수 있는지 확실하지 않지만, 경우에 따라 여기 아이디어가 있습니다.
확실하지는 않지만 일부 DBMS는 SQL (?)의 Shape 필드에서 동등 작업을 수행합니다. 두 기하학이 동일하면 SQL =
연산자는 true ( WHERE A.Shape = B.Shape
)를 반환해야합니다 .
이것이 사용중인 데이터베이스에 해당되는 경우 비 공간 조인과 동일한 구문을 사용하여 공간 조인을 수행 할 수 있어야합니다.
외모 ST_Equals의 이 사용할 수있는 방법 (AN OGC 표준).
평소와 같이 whuber가 옳습니다. 프로세스에 대해 철저히 생각해야합니다. 특히 이들이 대규모 데이터 세트이고이 작업이 여러 번 수행되거나 데이터가 미션 크리티컬 한 경우.
데이터와 책임을 고려하십시오.
무슨 짓을 한거야?
뭐하는거야?
무엇을하려고합니까?
그리고 항상 묻습니다. 왜?
이제 질문에 직접적으로 초점을 맞춘 간단한 대답이 있습니다. 항상 5 가지 방법으로 작업을 수행 할 수 있지만 일반적으로 가장 좋은 방법은 1 가지입니다.
전체 집합에 하위 집합에 포함하려는 모든 속성이 있고 하위 집합에 오래된 정보를 제외하고 전체 집합에 아직없는 것이 있다고 가정합니다.
서브셋 토폴로지가 풀셋과 일치하는지 추측합니다 (원점 / 투영 및 XY 공차 포함).
1) "내부"체크 상자를 체크 한 상태에서 피처 투 포인트를 사용하고 서브 세트에서 포인트 피처 클래스 또는 쉐이프 파일을 생성합니다.
2) 공간 결합 별 선택을 사용하여 새로 작성된 점 피쳐 클래스 또는 쉐이프 파일을 기반으로 하위 세트에 해당하는 전체 세트의 모든 다각형을 찾습니다.
3) 전체 세트에서 선택을 내 보내면 새 하위 집합이 될 수 있습니다.