def initAlgorithm(self, config): #분석지역 self.addParameter( QgsProcessingParameterFeatureSource( self.IN_SITE, '❖ ' + self.tr('Analysis Site'), [QgsProcessing.TypeVectorPolygon], optional=False) ) # 기존 SOC 시설 레이어 self.addParameter( QgsProcessingParameterFeatureSource( self.IN_CURSOC, '❖ ' + self.tr('Located Neighborhood Facility'), [QgsProcessing.TypeVectorPoint], optional=False) ) # 인구 레이어 self.addParameter( QgsProcessingParameterFeatureSource( self.IN_POP, '❖ ' + self.tr('Resident Population'), [QgsProcessing.TypeVectorPoint], optional=False) ) # 인구 필드 self.addParameter( QgsProcessingParameterField( self.IN_POP_CNTFID, self.tr('Population Field'), None, self.IN_POP, QgsProcessingParameterField.Numeric, optional=False) ) # 분석 최소단위(잠재적 위치 격자 사이즈) self.addParameter( QgsProcessingParameterNumber( self.IN_GRID_SIZE, '❖ ' + self.tr('Analysis Unit(Cell size : m)'), QgsProcessingParameterNumber.Integer, 1000, False, 100, 10000) #디폴트, 옵션, 미니멈, 맥시멈 ) paramUsrgridlyr = QgsProcessingParameterFeatureSource( name=self.IN_USERGRID, description=self.tr('New Facility Location Review Area(Point)'), types=[QgsProcessing.TypeVectorPoint], defaultValue='', optional=True ) paramUsrgridlyr.setFlags(paramUsrgridlyr.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(paramUsrgridlyr) # 거리 조락 self.addParameter( QgsProcessingParameterNumber( self.IN_LIMIT_DIST, # "❖ " + self.tr('Facility Effective Service Coverage : If you input 0, it is regarded as the whole area'), "❖ " + self.tr('Facility Effective Service Coverage'), QgsProcessingParameterNumber.Integer, 1000, False, 0, 1000000) #디폴트, 옵션, 미니멈, 맥시멈 ) # 기존 SOC 서비스 중인 인구 제외 비율 self.addParameter( QgsProcessingParameterNumber( self.IN_POP_EXCLUSION, '❖ ' + self.tr('Population Exclusion Ratio(%)'), QgsProcessingParameterNumber.Integer, 100, False, 0, 100) # 디폴트, 옵션, 미니멈, 맥시멈 ) # 등급 self.addParameter( QgsProcessingParameterNumber( self.IN_CALSSIFYNUM, '❖ ' + self.tr('Analysis result grade number of sections: configurable range (2 ~ 100)'), QgsProcessingParameterNumber.Integer, 10, False, 2, 100) # 디폴트, 옵션, 미니멈, 맥시멈 ) # 최종 결과 self.addParameter( QgsProcessingParameterVectorDestination( self.OUTPUT, self.tr('Efficiency Analysis Results(Euclidean)') ) )
def initAlgorithm(self, config): #분석지역 self.addParameter( QgsProcessingParameterFeatureSource( self.IN_SITE, '❖ ' + self.tr('Analysis Site'), [QgsProcessing.TypeVectorPolygon], optional=False)) # 기존 SOC 시설 레이어 self.addParameter( QgsProcessingParameterFeatureSource( self.IN_CURSOC, '❖ ' + self.tr('Located Neighborhood Facility'), [QgsProcessing.TypeVectorPoint], optional=False)) # 인구 레이어 self.addParameter( QgsProcessingParameterFeatureSource( self.IN_POP, '❖ ' + self.tr('Resident Population'), [QgsProcessing.TypeVectorPoint], optional=False)) # 인구 필드 self.addParameter( QgsProcessingParameterField(self.IN_POP_CNTFID, self.tr('Population Field'), None, self.IN_POP, QgsProcessingParameterField.Numeric, optional=False)) # 분석 최소단위(잠재적 위치 격자 사이즈) self.addParameter( QgsProcessingParameterNumber( self.IN_GRID_SIZE, '❖ ' + self.tr('Analysis Unit(Cell size : m)'), QgsProcessingParameterNumber.Integer, 1000, False, 100, 10000) #디폴트, 옵션, 미니멈, 맥시멈 ) # QgsProcessingParameterDefinition : 사용자 레이어 추가하여 잠재적 위치로 사용 paramUsrgridlyr = QgsProcessingParameterFeatureSource( name=self.IN_USERGRID, description=self.tr('New Facility Location Review Area(Point)'), types=[QgsProcessing.TypeVectorPoint], defaultValue='', optional=True) paramUsrgridlyr.setFlags( paramUsrgridlyr.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(paramUsrgridlyr) # 거리 조락 self.addParameter( QgsProcessingParameterNumber( self.IN_LIMIT_DIST, # "❖ " + self.tr('Facility Effective Service Coverage : If you input 0, it is regarded as the whole area'), "❖ " + self.tr('Facility Effective Service Coverage'), QgsProcessingParameterNumber.Integer, 1000, False, 0, 1000000) #디폴트, 옵션, 미니멈, 맥시멈 ) # 노드레이어 self.addParameter( QgsProcessingParameterFeatureSource( self.IN_NODE, '❖ ' + self.tr('Node Layer'), [QgsProcessing.TypeVectorPoint], optional=False)) # 노드레이어 PK self.addParameter( QgsProcessingParameterField(self.IN_NODE_ID, self.tr('Node ID FIELD'), None, self.IN_NODE, QgsProcessingParameterField.Any, optional=False)) # 링크레이어 self.addParameter( QgsProcessingParameterFeatureSource(self.IN_LINK, '❖ ' + self.tr('Link Layer'), [QgsProcessing.TypeVectorLine], optional=False)) self.addParameter( QgsProcessingParameterEnum( self.IN_LINK_TYPE, self.tr('Network direction'), options=[self.tr('One-way'), self.tr('Bidirectional')], defaultValue=1, optional=False)) # 기점 노드 필드 self.addParameter( QgsProcessingParameterField(self.IN_LINK_FNODE, self.tr('Origin field'), None, self.IN_LINK, QgsProcessingParameterField.Any, optional=False)) self.addParameter( QgsProcessingParameterField(self.IN_LINK_TNODE, self.tr('Destination'), None, self.IN_LINK, QgsProcessingParameterField.Any, optional=False)) self.addParameter( QgsProcessingParameterField(self.IN_LINK_LENGTH, self.tr('Link Length Field'), None, self.IN_LINK, QgsProcessingParameterField.Numeric, optional=False)) self.addParameter( QgsProcessingParameterField( self.IN_LINK_SPEED, self. tr('Speed Field : If the speed value is zero, it is replaced by the minimum value' ), None, self.IN_LINK, QgsProcessingParameterField.Numeric, optional=True)) # 기존 SOC 서비스 중인 인구 제외 비율 self.addParameter( QgsProcessingParameterNumber( self.IN_POP_EXCLUSION, '❖ ' + self.tr('Population Exclusion Ratio(%)'), QgsProcessingParameterNumber.Integer, 100, False, 0, 100) # 디폴트, 옵션, 미니멈, 맥시멈 ) # 등급 self.addParameter( QgsProcessingParameterNumber(self.IN_CALSSIFYNUM, '❖' + self.tr( 'Analysis result grade number of sections: configurable range (2 ~ 100)' ), QgsProcessingParameterNumber.Integer, 10, False, 2, 100) # 디폴트, 옵션, 미니멈, 맥시멈 ) # 최종 결과 self.addParameter( QgsProcessingParameterVectorDestination( self.OUTPUT, self.tr('Efficiency Analysis Results(Network)')))
def initAlgorithm(self, config=None): self.addParameter( QgsProcessingParameterVectorLayer( "areaboundary", "Area Boundary", types=[QgsProcessing.TypeVectorPolygon], defaultValue=None, )) param = QgsProcessingParameterFeatureSource( "cnlookup", "CN_Lookup.csv", optional=True, types=[QgsProcessing.TypeVector], defaultValue="", ) param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(param) param = QgsProcessingParameterBoolean( "drainedsoilsleaveuncheckedifnotsure", "Drained Soils? [leave unchecked if not sure]", defaultValue=False, ) param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(param) self.addParameter( QgsProcessingParameterBoolean( "OutputNLCDLandCoverRaster", "Output NLCD Land Cover Raster", defaultValue=False, )) self.addParameter( QgsProcessingParameterBoolean( "OutputNLCDLandCoverVector", "Output NLCD Land Cover Vector", defaultValue=False, )) self.addParameter( QgsProcessingParameterBoolean( "OutputNLCDImperviousRaster", "Output NLCD Impervious Surface Raster", defaultValue=False, )) self.addParameter( QgsProcessingParameterBoolean("OutputSoilLayer", "Output Soil Layer", defaultValue=False)) self.addParameter( QgsProcessingParameterBoolean( "OutputCurveNumberLayer", "Output Curve Number Layer", defaultValue=False, )) # read usage with open(os.path.join(cmd_folder, "usage_counter.log"), "r+") as f: counter = int(f.readline()) # check if counter is milestone if (counter + 1) % 25 == 0: self.addOutput( QgsProcessingOutputHtml("Message", "Curve Number Generator")) # check if new version is available of the plugin try: # try except because this is not a critical part avail_version = check_avail_plugin_version( "Curve Number Generator") if avail_version != curr_version: upgradeMessage() except: pass