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.