本文整理汇总了Python中lds.LDSUtilities.LDSUtilities.precedence方法的典型用法代码示例。如果您正苦于以下问题:Python LDSUtilities.precedence方法的具体用法?Python LDSUtilities.precedence怎么用?Python LDSUtilities.precedence使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lds.LDSUtilities.LDSUtilities
的用法示例。
在下文中一共展示了LDSUtilities.precedence方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: processLDS
# 需要导入模块: from lds.LDSUtilities import LDSUtilities [as 别名]
# 或者: from lds.LDSUtilities.LDSUtilities import precedence [as 别名]
def processLDS(self):
'''Process with LDS as a source and the destination supplied as an argument'''
#fname = dst.DRIVER_NAME.lower()+self.LP_SUFFIX
self.dst.applyConfigOptions()
self.dst.setSRS(self.epsg)
#might as well initds here, its going to be needed eventually
if not self.dst.getDS():
ldslog.info('Initialising absent DST.DS. This is not recommended in GUI/threaded mode')
self.dst.setDS(self.dst.initDS(self.dst.destinationURI(None)))#DataStore.LDS_CONFIG_TABLE))
self.dst.versionCheck()
(self.sixtyfourlayers,self.partitionlayers,self.partitionsize,self.prefetchsize) = self.dst.confwrap.readDSParameters('Misc',{'idp':self.src.idp})
if not self.dst.getLayerConf():
self.dst.setLayerConf(TransferProcessor.getNewLayerConf(self.dst))
#still used on command line
if self.getInitConfig():
TransferProcessor.initialiseLayerConfig(self.src,self.dst)
if self.dst.getLayerConf() is None:
raise LayerConfigurationException("Cannot initialise Layer-Configuration file/table, "+str(self.dst.getConfInternal()))
#------------------------------------------------------------------------------------------
#Valid layers are those that exist in LDS and are also configured in the LC
self.readCapsDoc(self.src)
lds_valid = [i[0] for i in self.assembleLayerList(intersect=True)]
#if layer provided, check that layer is in valid list
#else if group then intersect valid and group members
lgid = self.idLayerOrGroup(self.lgval)
if lgid == LORG.GROUP:
self.lnl = set()
group = set(self.lgval.split(','))
for lid in lds_valid:
cats = self.dst.getLayerConf().readLayerProperty(lid,'category')
#if cats and set([f.encode('utf8').strip() for f in cats.split(',')]).intersection(group):
if cats and set([LU.recode(f) for f in cats.split(',')]).intersection(group):
self.lnl.update((lid,))
if not len(self.lnl):
ldslog.warn('Possible mis-identified Group, {}'.format(group))
lgid = LORG.LAYER
if lgid == LORG.LAYER:
layer = LU.checkLayerName(self.dst.getLayerConf(),self.lgval)
if layer in lds_valid:
self.lnl = (layer,)
else:
raise InputMisconfigurationException('Layer '+str(layer)+' invalid')
#override config file dates with command line dates if provided
ldslog.debug("SelectedLayers={}".format(len(self.lnl)))
#ldslog.debug("Layer List:"+str(self.lnl))
#------------------------------------------------------------------------------------------
#Before we go any further, if this is a cleaning job, no point doing anymore setup. Start deleting
if self.getCleanConfig():
for cleanlayer in self.lnl:
self.cleanLayer(cleanlayer,truncate=False)
return
#build a list of layers with corresponding lastmodified/incremental flags
fd = LU.checkDateFormat(self.fromdate)#if date format wrong treated as None
td = LU.checkDateFormat(self.todate)
self.layer_total = len(self.lnl)
self.layer_count = 0
for each_layer in self.lnl:
ldslog.debug('BENCHMARK '+each_layer)
lm = LU.checkDateFormat(self.dst.getLastModified(each_layer))
srs = self.dst.getEPSGConversion(each_layer)
pk = self.hasPrimaryKey(each_layer)
filt = self.dst.getLayerConf().readLayerProperty(each_layer,'cql')
#Set (cql) filters in URI call using layer picking the one with highest precedence
self.src.setFilter(LU.precedence(self.cql,self.dst.getFilter(),filt))
#SRS are set in the DST since the conversion takes place during the write process. Needed here to trigger bypass to featureCopy
#print 'tp.epsg=',self.epsg,'srs=',srs,'!getsrs=',self.dst.getSRS()
self.dst.setSRS(LU.precedence(self.epsg,srs,None))
#Destination URI won't change because of incremental so set it here
self.dst.setURI(self.dst.destinationURI(each_layer))
#RB dst (not implemented)
#self.dst.setURI(self.dst.requestbuilder.destinationURI(each_layer))
#if PK is none do paging since page index uses pk (can't lookup matching FIDs for updates/deletes?)
if pk:
gdal.SetConfigOption('OGR_WFS_PAGING_ALLOWED','ON')
else:
gdal.SetConfigOption('OGR_WFS_PAGING_ALLOWED','OFF')
#check dates -> check incr read -> incr or non
nonincr = False
if any(i for i in [lm, fd, td]) and pk:
ldslog.debug('lm={}, fd={}, td={}'.format(lm,fd,td))
final_fd = (DataStore.EARLIEST_INIT_DATE if lm is None else lm) if fd is None else fd
final_td = self.dst.getCurrent() if td is None else td
#.........这里部分代码省略.........