누적 값 열
Aug 28 2020
여기에 게시 된 몇 가지 예제와 솔루션을 통해 라인 체인 또는 누적 값을 계산했습니다. 그러나 여전히 원하는 결과를 얻을 수 없습니다. 내가하려는 것은 '행 번호'로 '길이'값을 추가하는 것입니다. 따라서 라인 섹션 1의 체인지 / 누적 값 = 7.69026,2 = 14.83986, 3 = 22.69265 ...... 등. 이를 달성하기 위해 필드 계산기에서 사용할 수있는 표현식이 있습니까?
답변
5 LouisCottereau Aug 28 2020 at 13:32
필드 계산기에서 함수 편집기로 이동하여 새 파일을 만들고 다음 함수를 삽입합니다.
"""
Define new functions using @qgsfunction. feature and parent must always be the
last args. Use args=-1 to pass a list of values as arguments
"""
from qgis.core import *
from qgis.gui import *
import sys
if sys.version_info.major == 3:
layer_registry = QgsProject
else:
layer_registry = QgsMapLayerRegistry
@qgsfunction(args="auto", group='Custom')
def get_length_feature(layer_id, feature, parent):
id = feature.id()
len_tot = 0.
for feat in layer_registry.instance().mapLayer(layer_id).getFeatures():
if feat["id"] <= feature["id"]:
len_tot += feat.geometry().length()
return len_tot
로드하고 표현식 탭으로 돌아가서 다음을 삽입하십시오. get_length_feature( @layer_id )
2 MBain Aug 28 2020 at 19:02
맞춤 기능의 경우 +1, 소매를 잡는 좋은 트릭입니다.
이 경우 내장 aggregate함수로 수행 할 수 있습니다 .
aggregate( 'Line_CHain','sum', "Length" ,"id"<= attribute( @parent,'id'))