QGIS의 일괄 리 팩터 필드 도구 "필드 매핑"구문은 무엇입니까?


10

QGIS 에는 Processing Toolbox 에이 멋진 도구 인 "Refactor Fields" 가 있습니다 :

리 팩터 필드 도구

단일 레이어에서 사용하는 것은 매우 간단합니다.

그러나 배치 모드에서 사용하려는 경우 "필드 맵핑" 텍스트 상자를 볼 수 있습니다 . 거기에 사용될 구문예를 찾고 있습니다 . 특정 문서를 아직 찾지 못했습니다.

일괄 리 팩터


GUI에서 리팩토링을 실행 한 후 Processing-> History 메뉴 (Ctrl + Alt + H)
kadarivan

답변:


7

매우 편안하지는 않지만 다음은 해당 텍스트 상자에 필요한 구문입니다 (명확성을 위해 여러 줄로 작성).

{'expression': u'type the expression here',
 'length': <type the length>,
 'type': <code of the type>,
 'name': u'type the field name here',
 'precision': <type the precision>}

예를 들어 (중괄호를 사용하는 것을 잊지 마십시오) :

{'expression': u'"FLAG1"+"FLAG2"',
 'length': 20, 'type': 6,
 'name': u'FLAG1',
 'precision': 5}

쉼표로 구분 된 입력 필드 수만큼 위의 행과 같이 많은 행을 작성해야합니다. 예를 들어 레이어에 세 개의 필드가 포함 된 경우 :

{'expression': u'"FLAG1"+"FLAG2"', 'length': 20, 'type': 6, 'name': u'FLAG1', 'precision': 5}, {'expression': u'100*"FLAG2"', 'length': 20, 'type': 6, 'name': u'FLAG2', 'precision': 5}, {'expression': u'"100-"FLAG2"', 'length': 20, 'type': 6, 'name': u'FLAG3', 'precision': 5}

그리고 그것은 작동해야합니다 (그것은 나를 위해 일했습니다).

사전 지향 구문을 사용하지 않고 필요한 값을 직접 사용할 수 있습니다. 예를 들어 첫 번째 예와 관련하여 간단히 다음을 사용할 수 있습니다.

{u'"FLAG1"+"FLAG2"', 20, 6, u'FLAG1', 5}

이 구문을 사용하지 않으면 다음 오류가 표시됩니다.

누락 된 매개 변수 값 : 필드 맵핑 (행 1)


2
<유형 코드>의 의미를 설명해 주시겠습니까? 문자열에 대한 것으로 가정하고 (드롭 다운 옵션의 3 번째이므로) 오류가 발생했습니다 .'int ' 개체에' getItem ' 속성이 없습니다 . 자세한 내용은 로그를 참조하십시오. 내가 사용한 코드는 {u ' "FLAG"', 0, 3, u'FLAG ', 0}입니다. {'expression ': u' "FLAG" ','length ': 0,' 유형 ': 3,'이름 ': u'FLAG', '정밀도': 0}.
JAT86

@ JAT86 데이터 유형을 식별하는 숫자입니다 (예 : int, string 등). 불행히도, 나는 그것들에 대한 참조를 찾지 못했지만 가장 많이 사용되는 유형의 값을 기억해야합니다 : int의 경우 2 , double의 경우 6 및 문자열의 경우 10 . 이 외에도 0필드 길이를 지정하지 않아야합니다 (적어도 1!). 문제가 해결되면 알려주십시오.
mgri

신속한 답변 감사합니다. 아마도 일괄 처리는 생각보다 훨씬 복잡합니다. {u ' "FLAG"', 1, 10, u'FLAG ', 0} 코드 유형에 길이 1 이상, 10 이상을 사용해 보았습니다. 여전히 오류가 표시됩니다.'int '개체에'속성이 없습니다 ' getItem '자세한 내용은 로그를 참조하십시오. 레이어 이름 은 다음과 같습니다 : 이름 : 플래그, 유형 : 문자열, 길이 : 0, 정밀도 : 0, 표현 : "flag"
JAT86

@ JAT86 GUI에서 도구를 실행하면 문제가 발생합니까?
mgri September

GUI에 의해 단일 계층을 의미하는 경우 아무런 문제가 없었습니다. "선택한 필드 삭제"를 클릭하면 FLAG 열이 성공적으로 삭제되고 "리팩터링 된"새 레이어에 저장되었습니다.
JAT86

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