ArcGIS for Desktop에서 눈금이없는 데이터를 수동으로 분류합니까?


13

아래 그림과 같이 점진적 색상으로 상징되는 값을 가진 격자를 나타내는 두 개의 shapefile이 있습니다.

기발한

두 개의 shapefile이 유사한 데이터 범위를 포함하지만이 데이터의 범위에 약간 다른 색상을 할당 함을 알 수 있습니다. 동일한 범위에 대해 동일한 색상을 사용하여 두 모양 파일 각각의 범위를 상징화하여 파일 간의 비교를 쉽게하고 단일 범례를 사용할 수 있도록하고 싶습니다.

그러나 수동 간격으로 범위를 분류하려고하면 ArcGIS가 데이터 세트의 최소값도 포함하도록 최상위 범위가되어야합니다. 아래 왼쪽 데이터 프레임의 "-81.64-10.00"범위에서이를 확인할 수 있습니다. 그러면 전체 레이어가이 색상으로 심볼 화됩니다. 본질적으로 ArcGIS는 데이터 세트의 최소값을 범위 중 하나의 값으로 사용해야합니다.

새로운 간격

이 기능을 우회하는 방법이 있습니까?


어떻게 해결했는지 정확히 기억할 수는 없지만이 문제도 기억합니다. "동일 간격"으로 분류하고 값을 두 번 클릭하면 그런 식으로 변경할 수 있습니까?
GISKid

@GISKid 두 번 클릭하면 분류가 "수동"으로 되돌려집니다.
hfisch

히스토그램 자체의 값을 조정하는 것은 어떻습니까?
GISKid

@GISKid 값을 최소값 아래로 드래그하면 최소값으로 돌아갑니다.
hfisch

2
나는 이것에 대한 가장 좋고 간단한 대답은 gis.stackexchange.com/a/136497 이라고 생각합니다 -첫 번째 (현재 받아 들여진) 대답은 취향에 비해 너무 깁니다.
PolyGeo

답변:


12

ArcMap이 원치 않을 때에도 도움이 되려고 노력할 때 확실히 큰 고통 입니다.

내가 찾은 해결 방법 중 하나는 새로운 임시 데이터 세트를 만들고 출력에 필요한 최소값과 최대 값으로 몇 가지 점을 추가하는 것입니다. 전체 범위를 포함해야합니다.

이 가짜 데이터 세트를 기반으로 심볼을 작성하고이 심볼을 레이어 파일 에 저장 하십시오 .

여기에 이미지 설명을 입력하십시오

... * .lyr 파일의 심볼로지를 실제 데이터 세트로 가져옵니다.

여기에 이미지 설명을 입력하십시오


1
이 솔루션은 나의 것보다 덜 해킹 적입니다. 나는 당신의 대답으로 바꾸고 있습니다.
hfisch

감사합니다. 아크 맵이 충분한주의를 기울여 모든 대화 상자를 읽는다면 매력처럼 작동합니다.
Luuklag

6

@ChrisW는 말했다 :

내가 알고 증거를 찾을 수있는 한 데이터의 최소값 아래로 분류 범위를 설정할 수 없습니다.

이것은 나를 생각하게 만들었고 실제로 분류 범위를 최소값 아래로 설정하는 방법을 찾았습니다. 내 원래 문제는 가장 낮은 분류 범위가 데이터의 최소값을 포함해야한다는 사실을 중심으로 작성되었습니다.

그러나 사용 된 다른 분류 범위에는 그러한 제한이 없습니다. 따라서 개 이상의 분류 범위가 데이터의 최소값 아래로 떨어지도록 할 수 있습니다. 이들 중 하나는 선호되는 최소 분류 범위를 나타내고 다른 하나는 최소값을 포함하는 더미 범위로 작동합니다.


분류에 사용한 시작점은 다음과 같습니다. 4 개의 데이터 프레임 내의 각 층은 다른 층의 데이터 범위에 관계없이 10 ft의 정의 된 간격을 사용하여 분류되었다.

출발점

4 개의 데이터 프레임 중 하나의 최대 분류 범위는 "0.01 ~ 10.00"이고 최소 분류 범위는 "-110.62 ~ -110.00"(이상적으로는 "-119.00 ~ -110.00"이 됨)입니다. 10 피트 간격을 유지하려고 시도하기 때문에 총 13 간격으로 해석됩니다.


왼쪽 범례 데이터 프레임을 일반 범례의 소스로 사용하고 있습니다. 먼저 Layer Properties를 열고 Classify로갑니다. 13 개의 간격이 보이기를 원하기 때문에 더미 범위를 사용 하려면 14 간격을 선택해야 합니다. 방법으로 Manual을 선택하고 14 개의 클래스를 작성하여이를 수행합니다.

1a 단계

범위가 현재 상태로 설정되어 있으면 (가장 큰 값이 맨 위에 있음) 범위에 입력 한 값을 변경해도 목록 맨 아래의 범위 이외의 다른 항목에는 영향을 미치지 않습니다. @ChrisW는 이것이 버그가 아니라 ArcGIS가 중단 값을 할당하는 방법의 특징이라고 지적했습니다. 다음은 수동 방법을 선택한 후 범위를 변경하기 전에 레이어 속성 창입니다.

1b 단계


이 문제를 해결하기 위해 레이어 정렬을 일시적으로 되돌립니다. 이 시점에서 가장 낮은 범위는 맨 위에 있고 가장 높은 범위는 맨 아래에 있습니다.

2a 단계

이제 범위 목록의 맨 아래로 스크롤하여 (가장 높은 범위가 표시되는) 맨 아래부터 적절한 간격을 정의하기 시작하면 ArcGIS는 내가 정의한 범위를 기억합니다.

2b 단계

이 이미지에서는 14 개 범위 중 5 개에서 상위 값을 정의했습니다. 가장 큰 값 (10.00)부터 시작하여 아래쪽으로 작업했습니다.


목록 상단에 도달하여 14 번째 범위를 편집 할 때 최소값은 레이어에서 최소값으로 정의됩니다. 아래에 다른 범위가 없어 값을 가져올 수 없습니다.

3a 단계

그러나 이전에 언급 한 더미 범위이기 때문에 이것은 중요하지 않습니다. 이 시점에서 레이어 정렬을 다시 한 번 반대로하여 가장 높은 범위가 다시 맨 위에 있습니다. 아래 이미지는 왼쪽 상단 데이터 프레임에 대한 업데이트 된 범례를 보여줍니다. 이제 14 번째 더미 범위를 포함하여 4 개의 데이터 프레임 모두에 대한 적절한 범위가 반영됩니다 .

3b 단계


다음 단계는 이러한 변경 사항을 나머지 데이터 프레임으로 전파하는 것입니다. 그러나 심볼을 다른 데이터 프레임으로 가져 오려고 할 때 몇 가지 문제가 분명합니다.

4a 단계

@ChrisW가 지적했듯이 이것은 모든 데이터 프레임에서 절대 최소값을 갖지 않는 레이어로 시작하기로 결정했기 때문입니다. 데이터 프레임은 원래 데이터 프레임에 존재하는 범위 아래로 떨어지는 범위를 표시하지 않는 것 같습니다.

내가 한 것과 같은 계층으로 시작하는 경우, 내가 찾은 최선의 해결책은 네 가지 데이터 프레임 각각에 대해 위에서 설명한 단계를 반복하는 것입니다. 수동으로 14 개의 클래스를 정의하고 클래스 정렬을 취소하고 각 범위의 맨 위를 재정의 한 다음 정렬을 되돌려 최상위 범위를 맨 위에 놓습니다.

그러나 가장 간단한 해결책은 가장 작은 값을 가진 계층으로 분류 프로세스를 시작하는 것입니다. 그러면 심볼 데이터 가져 오기 옵션을 다른 데이터 프레임에 올바르게 사용할 수 있습니다.

4b 단계


마지막으로 세 가지 범례를 삭제하고 나머지 범례에서 더미 범위를 숨기거나 그래픽으로 변환하고 더미 범위를 삭제할 수 있습니다.

끝점


당신이 무언가를 얻을 수있어서 다행입니다. 난 당신이 인용 mistatement을 (- 원본 이미지가 내가 말했다 이유를 잘 모르겠어요 해결하기 위해 내 대답을 편집 했다 당신이 수).
크리스 W

사실, 나는 이것을 복제하는 데 문제가 있습니다. 답변을 좀 더 유용하게 만들기 위해 최소값 미만으로 해당 범위를 생성 한 방식으로 정확하게 편집 할 수 있습니까?
Chris W

@ChrisW 프로세스가 크게 확장되었습니다. 그래도 이해가되지 않으면 알려주세요!
hfisch

2
업데이트 해 주셔서 감사합니다. 나는 문제를 알아 냈습니다-나누기 정의가 버그로 질문하는 것과 관련된 분류 대화 상자와 기호 대화 상자 사이에서 처리되는 방식에 큰 차이가 있습니다. 기본적으로 중단 값을 자동 정렬하지만 최소값 미만의 최저 중단은 항상 최소값에 연결되며 맨 위에 표시됩니다 (또는 정렬에 따라 맨 아래에 표시). 참고로, 총 수를 지정할 수는 없지만 히스토그램을 마우스 오른쪽 버튼으로 클릭하여 수동으로 클래스를 추가하거나 제거 할 수 있습니다.
크리스 W

1
내 대답에서 언급했듯이 다른 데이터 프레임에 기호를 적용하는 한 초기 기호에 대해 가장 낮은 값 (-110.62)을 가진 데이터부터 시작하십시오 . 마지막 세 번째 이미지에서 더미 클래스 최소 값은 4 개 모두에 대해 여전히 -61.01입니다.이 클래스가 있지만 아래에 아무것도 렌더링되지 않는 이유가 있습니다. 가장 낮은 값으로 시작하고 최소값이 더 높으면 다른 데이터 세트에 기호를 적용 할 때 데이터 분에 기호 분을 포함하거나 가져올 것이라고 생각합니다.
크리스 W

5

나는이 같은 문제를 겪었다 고 생각합니다 .... 내가 올바르게 이해한다면 두 개 이상의 데이터 세트가 있고 비교를 할 수 있도록 데이터 세트 스케일 범위를 가져와야합니다.

나는 그것을 해결했다.

  1. 원하는대로 첫 번째 데이터 세트를 만듭니다. 가장 큰 데이터 범위를 갖는 것이 이상적이므로 기호를 두 번째 (더 작은 범위의) 데이터 세트로보다 쉽게 ​​복사 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

  1. 두 번째 데이터 집합을 만들지 만 아직 어떤 상징에 대해서도 걱정하지 마십시오. 두 번째 데이터 세트 레이어 속성> 심볼로지 탭에서 첫 번째 데이터 세트와 동일한 유형의 분류를 선택하십시오.이 예에서는 범주> 고유 값 을 사용 하고 있습니다. 모든 값 추가 버튼 을 클릭하십시오 .

여기에 이미지 설명을 입력하십시오

  1. 첫 번째 데이터 세트에 사용 된 해당 범위에 속하도록 값을 그룹화합니다. 특정 카테고리의 모든 값을 선택한 다음 마우스 오른쪽 단추를 클릭하고 그룹을 선택하십시오 . 상위 2 개 카테고리는 아래 이미지에 이미 그룹화되어 있으며, 4 개의 강조 표시된 골짜기는 세 번째 그룹으로 "당겨져"있습니다.

여기에 이미지 설명을 입력하십시오

  1. 이 단계에서 카테고리를 쉽게 재 지정하기 위해 카테고리의 레이블을 다시 지정하는 것이 더 쉽다는 것을 알게되었습니다. 이제 7 개의 범주 중 5 개가 채워져 있음을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오

  1. 마지막으로 (거의)이 문제의 요점은 두 번째 데이터 세트의 데이터 범위 밖에있는 빈 범주를 추가하는 것입니다. 에서 레이어 속성> 심볼로지의 탭을 클릭합니다 추가 값의 필요에 따라 데이터 범위 위와 아래에 필요한 범주와 버튼을 채우기합니다.

여기에 이미지 설명을 입력하십시오

  1. 마지막으로 새 빈 범주의 레이블을 다시 지정하여 첫 번째 데이터 세트와 일치하도록 한 다음 각 범주의 색상을 변경하여 첫 번째 데이터 세트와 일치시킵니다.

여기에 이미지 설명을 입력하십시오

그것이 약간 단순화되거나 심지어 잘못되거나 명백한 잘못 / 나쁜 습관이라면 죄송합니다. 저는 GIS Stack Exchange를 오랫동안 사용해 왔으며 기여하기 시작한 시간에 대해 생각했기 때문에 이것이 첫 번째 게시물입니다!


2
죄송합니다. OP는 졸업 데이터 용이며 빠른 확인 후 내 솔루션이 잘못되었음을 알았습니다. 다음에 더 자세히 읽을 게요 ....
Nige

4
  1. 원하는 수업 수를 선택하십시오.
  2. 심볼을 마우스 오른쪽 버튼으로 클릭하고 save class breaks
  3. 텍스트 편집기에서 열고 편집 할 수있는 xml 파일이 저장됩니다.
  4. xml 파일에서 원하는 클래스 나누기를 편집하고 저장하십시오.
  5. 심볼을 다시 마우스 오른쪽 버튼으로 클릭하고 새로 편집 한 클래스 구분 파일을 가져옵니다.

끝난


3

그동안 분류는 유사한 범위를 사용의 데이터 범위를 공유하지 않습니다. 여기서 해결책은 실제 분류가 아니라 범례 및 색상 할당에서 해결하는 것입니다.

왼쪽 하단 결과부터 시작하여 해당 범례를 그래픽으로 변환하십시오. 원하는 범위를 갖도록 텍스트를 편집하십시오. 다른 모든 이미지의 단위 범위는 10이지만이 이미지는 20 개이며 겹칩니다. 예를 들어 3 개의 이미지는 -49.99 ~ -40.00이지만 왼쪽 아래에는 -49.99 ~ -60.00이며 다음 클래스는 -59.99 ~ -70.00입니다. 이미지도 반대 범위입니다. 즉, 3은 왼쪽에서 더 낮은 값이고 왼쪽 아래는 오른쪽에서 더 낮은 값입니다 ( 왼쪽에서 오른쪽으로 이 아닌 경우 숫자 가 증가 함 ) 수동 텍스트 편집이 아닌 시간을 절약하기 위해 이러한 문제를 먼저 해결해야 할 수도 있습니다.

범위와 색상 램프가있는 범례가 있으면 처음 두 레이어 (이미 올바르게 분류 됨)로 돌아가서 범례의 범위에 대해 결정한 색상과 일치하도록 각 범위의 색상 패치를 수동으로 편집 할 수 있습니다 . 두 레이어는 자체 범례를 표시하지 않으므로 그 중 하나의 범위는 실제로 -89.99에서 -80.00이고 다른 하나는 -81.64에서 -80.00이며 둘 다 동일한 색상을 갖기 때문에 중요하지 않습니다. .

그러나 이것은 두 데이터 세트의 범위가 같지 않다는 것을 의미합니다. 실제로 각각 하나의 맵에만 사용되는 두 가지 색상 패치가있는 것 같습니다 (가장 높고 낮음). 절대 데이터 범위를 제공하는 각 맵에 메모를 추가 할 수 있습니다. 음수 값을 사용하면 읽기가 혼란 스럽기 때문에 범위 사이의 '-'대신 'to'를 사용합니다.


대체 솔루션 :

내가 알고 증거를 찾을 수있는 한, 최소한의 가치로 시작하는 수업이 있어야합니다. 데이터 범위 위나 아래에 클래스 (빈 클래스도)를 수동으로 추가 할 수 있지만 하나의 클래스는 최소값에서 시작해야합니다.

따라서 모든 래스터의 최소 / 최소 값을 포함하는 래스터를 사용하여 심볼을 설정하십시오. 이것들을 상징화하십시오. 그런 다음 클래스 라벨 을 편집하여 원하는대로 말할 수 있습니다. 따라서 가장 낮은 값이 0.4 인 경우 레이블을 0으로 변경해도됩니다.

이 작업을 완료하고 원하는 색상 램프로 설정 한 후 기호의 lyr 파일을 저장하십시오. 그런 다음 다른 래스터를 열고 동일한 기호를 적용 할 수 있어야합니다. 다른 래스터는 모두 더 높은 값을 가지므로 올바르게 분류해야하며 최소값 자체 만 증가합니다 (또는 그 안에 아무것도 들어 가지 않으면 해당 클래스가 삭제 될 수 있음). 다시 말하지만 심볼로지가 적용되지 않으면 클래스 레이블을 실제 값 대신 클래스 플로어로 변경할 수 있습니다.


실제로 .lyr 단계를 건너 뛰고 원하는대로 하나의 래스터 (범위, 색상 등)를 분류 한 다음 가져 오기 기호 기능을 사용하여 다른 모든 래스터에 적용 할 수 있습니다. Layer Properties를 열고 Symbology 탭을 선택한 다음 오른쪽 상단의 폴더 아이콘 @를 선택하십시오 (이 위에 마우스를 가져 가면 가져 오기가 표시됨)-모방하려는 래스터를 선택하십시오.
JWallace

@JWallace True, 다른 래스터가 이미 동일한지도 문서에로드 된 경우 (아마도 동일한 데이터 프레임-다른 프레임 워크에서 심볼을 가져올 수 있는지 여부를 기억할 수 없음) symbology 는 mxd 에만 상주합니다 (변경 사항이있을 경우 백업을 저장할 수 있습니다). 이 단계 다루는 그래픽 답변 이 있습니다 .
Chris W

왼쪽 하단 결과에 대해 이상한 단위를 잘 잡습니다. 나는 그것이 수동으로 범위를 정의하려는 시도의 인공물이라고 생각하고 그 순서를 역순으로 정의했습니다. '-'대신 'to'를 사용하는 것도 좋습니다. 원래 솔루션의 문제점은 채색 및 라벨링에 많은 수동 작업이 필요하다는 것입니다.이 일련의 그림을 생성해야합니다. 그래도 대체 솔루션으로 아이디어를 얻었습니다. 좀 더 우아하게 만들고 최소값 문제를 제거하는 방법을 찾았습니다.
hfisch

3

나를 위해 일한 더 쉽고 더 더러운 솔루션. 원본 데이터의 백업을 만드는 것을 잊지 마십시오.

  1. 속성 테이블을 열고 편집을 시작하십시오
  2. 분류의 기준이되는 최소값과 최대 값이 포함되도록 두 값을 수동으로 편집하십시오 (원래 값을 기억하십시오)
  3. 저장 후 편집 중지
  4. 새로운 극단을 기준으로 분류
  5. 다시 시작하고 변경된 값을 원래 값으로 수동으로 바꿉니다.
  6. 기존 분류는 영향을받지 않습니다

2

나는 이것이 기능 범례에 관한 것이지만 래스터는 아니라고 생각합니다. 이것이 래스터에 관한 것이라면 내 제안을 무시하십시오. 나는 보통 이것을 사용합니다 :

  • 2 개 이상의 쉐이프 파일을 하나로 병합하여 가족이라고합시다
  • FAMILY의 전설 만들기
  • FAMILY에서 모든 어린이에 대한 기호 가져 오기

도움이 되길 바랍니다. FP


그냥이 JWallace 매우 유사하다 실현
FelixIP

2

다음 해결 방법을 수행했습니다. XML 문서에서 나만의 클래스 나누기를 만들어 두 레이어의 분류 된 기호에로드했습니다.

  1. 클래스 나누기 -XML 문서의 템플릿을 가져 오려면 : 레이어 속성에서 분류 범위를 마우스 오른쪽 단추로 클릭 한 다음 "클래스 나누기 저장"을 클릭하십시오.
  2. XML 문서 편집 : XML 문서에 클래스 구분을 입력하고 데이터 세트 범위를 벗어난 숫자를 입력 할 수도 있습니다.
  3. XML 클래스 나누기로드 : 템플리트를 저장 한 동일한 메뉴 (1 참조), "클래스 나누기로드"를 클릭하십시오.

    1 단계와 3 단계

2 단계


1
어떤 버전의 ArcMap? 나는 10.6에서 급 브레이크를 저장하는 옵션이 없습니다 : i.imgur.com/znDqUpQ.png
매트 윌키

@mattwilkie 버전의 문제가 아니라 데이터 형식입니다. 벡터 데이터에 대한 기호 대화 상자를보고 있으며 이와 같은 클래스 나누기를 저장하는 것은 래스터 데이터에만 사용할 수 있습니다. 이 답변은 기본적으로 Craig의 것과 동일하지만 삽화가 있습니다.
Chris W

1

다른 방법은 각 레이어의 모든 값을 하나의 레이어로 결합하는 것입니다.이 방법을 사용하면 레이어에 최소값과 최대 값이 있습니다.

그림 :
1. 엑셀 시트에서 모든 레이어의 값을 하나의 열 (All_Vals로 이름 지정)로 결합

  1. All_Vals 열 옆에 X와 Y라는 두 개의 새 열을 추가하고 0으로 채 웁니다.

  2. arcmap에서 엑셀 시트를 테이블로 추가하고 그것을 사용하여 xy data 명령 / 도구 display를 사용하여 포인트 피쳐 클래스를 생성 한 다음 이벤트 레이어를 shapefile (내 이름은 NB_Point)로 내보내 데이터 프레임에 추가하십시오.

4. NB_Point 쉐이프 파일을 레이어의 피처 클래스 유형으로 변환하십시오. 예를 들어 피처 레이어의 유형이 다각형 인 경우 버퍼 도구를 사용하여 NB_Point 쉐이프 파일에서 폴리곤 피처 클래스 (NB_polygon으로 이름 지정)를 작성하십시오.

  1. 이제 마지막 레이어 NB_polygon을 마우스 오른쪽 버튼으로 클릭하고 자연 나누기 분류를 사용하여 점진적인 색상 기호를 적용하고 각 레이어마다 레이어 가져 오기 기호 유틸리티를 사용할 때 입력 레이어로 사용하려면 .lyr 파일로 내보내십시오. 원래 레이어의.

이 도움말이 도움이 되길 바라며 철자가 틀리면 죄송합니다.

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