Ejemplo n.º 1
0
 def getPoiVisitsAndTrajectories(self,distThres=0.0005,visitMinTime=600,freqThres=2) :
     if (self.method==STOPBASEDALGORITHME) : self.poiExtractor=SBPoiExtractor(self.events,self.stops,distanceThres=distThres,stayTimeThres=visitMinTime,freqThres=freqThres)
     elif (self.method==WEIGHTBASEDALGORITHME) :
         self.poiExtractor=WBPoiExtractor(self.events,step=0.0001,overlap=1,visitMinTime=visitMinTime,freqThres=freqThres,bandwidth=0.001,weighter=VISITDURATION)
         self.poiExtractor.weightAll()
     self.poiExtractor.getPoi()
     self.poi=self.poiExtractor.poi
     self.visits=self.poiExtractor.visits
     self.trajectories=self.poiExtractor.trajectories
Ejemplo n.º 2
0
 def drawHeatmap(self,filename="image.png") :
     if (self.method==WEIGHTBASEDALGORITHME) :
         self.poiExtractor=WBPoiExtractor(self.events,step=0.0001,overlap=1,visitMinTime=600,freqThres=2,bandwidth=0.001,weighter=VISITDURATION)
         self.poiExtractor.weightAll()
         canvas = FigureCanvas(self.poiExtractor.heatmap())
         canvas.print_figure(filename)
     return filename
Ejemplo n.º 3
0
class Server :
    def __init__(self,linesTraces=None,method=STOPBASEDALGORITHME,linesPoi=None,linesVisits=None) :
        if (linesTraces) :
            self.method=method
            self.reader=MobilityTraceReader(linesTraces)
            if (method==STOPBASEDALGORITHME) :
                self.reader.readWithStop()
                self.events,self.stops=self.reader.events,self.reader.stops
            elif (method==WEIGHTBASEDALGORITHME) :
                self.reader.readWithPreProcessing(samplingTime=0,distanceMin=0,tempsMaxPerteSignal=float("inf"))
                self.events=self.reader.events
        elif (linesPoi and linesVisits) :
            poiReader=PoiReader(linesPoi,linesVisits)
            self.poi=poiReader.poi
            self.visits=poiReader.visits
            self.trajectories=poiReader.trajectories
    #-------------------------------------------------------------------------------------------------------------
    def getPoiVisitsAndTrajectories(self,distThres=0.0005,visitMinTime=600,freqThres=2) :
        if (self.method==STOPBASEDALGORITHME) : self.poiExtractor=SBPoiExtractor(self.events,self.stops,distanceThres=distThres,stayTimeThres=visitMinTime,freqThres=freqThres)
        elif (self.method==WEIGHTBASEDALGORITHME) :
            self.poiExtractor=WBPoiExtractor(self.events,step=0.0001,overlap=1,visitMinTime=visitMinTime,freqThres=freqThres,bandwidth=0.001,weighter=VISITDURATION)
            self.poiExtractor.weightAll()
        self.poiExtractor.getPoi()
        self.poi=self.poiExtractor.poi
        self.visits=self.poiExtractor.visits
        self.trajectories=self.poiExtractor.trajectories
    #-------------------------------------------------------------------------------------------------------------
    def getCEMMM(self,minimumSupport=3,k=10,maxSimilarite=0.2,relaxation=0.1,method=KFIRST) :
        closedPatternExtractor=CEMMM(self.poi,self.visits,self.trajectories,precision=600)
        if (method==KFIRST) : self.cemmm=closedPatternExtractor.cemmm(minimumSupport=minimumSupport,k=k,maxSimilarite=maxSimilarite)
        elif (method==SKYPATTERN) : self.cemmm=closedPatternExtractor.cemmm_skylines(minimumSupport=minimumSupport,relaxation=relaxation)
    #-------------------------------------------------------------------------------------------------------------
    def createZipFilePoiVisitsTrajectories(self) :
        destinationDirectory="Resultats"
        if not os.path.exists(destinationDirectory) : os.mkdir(destinationDirectory)

        self.poiExtractor.writePoi("{0}/poi.csv".format(destinationDirectory))
        self.poiExtractor.writeVisits("{0}/visits.csv".format(destinationDirectory))
        self.poiExtractor.writeTrajectories("{0}/trajectories.csv".format(destinationDirectory))

        zipFilePath="{0}/info.zip".format(destinationDirectory)
        zf=zipfile.ZipFile(zipFilePath, "w", zipfile.ZIP_DEFLATED)

        zf.write("{0}/poi.csv".format(destinationDirectory),"poi.csv")
        zf.write("{0}/visits.csv".format(destinationDirectory),"visits.csv")
        zf.write("{0}/trajectories.csv".format(destinationDirectory),"trajectories.csv")

        zf.close()
        return zipFilePath
    #-------------------------------------------------------------------------------------------------------------
    #                   Temporary Displays   
    #-------------------------------------------------------------------------------------------------------------
    def stringPOI(self) :
        S="-"*60+"<br>"
        S+="POI"+"<br>"
        S+="-"*60+"<br>"
        for p in self.poi : S+=str(p)+"<br>"
        S+="-"*60+"<br>"
        return S
    #-------------------------------------------------------------------------------------------------------------
    def stringVisits(self) :
        S="-"*60+"<br>"
        S+="Visits"+"<br>"
        S+="-"*60+"<br>"
        for v in self.visits : S+=str(v)+"<br>"
        S+="-"*60+"<br>"
        return S
    #-------------------------------------------------------------------------------------------------------------
    def stringTrajectories(self) :
        S="-"*60+"<br>"
        S+="Trajectories"+"<br>"
        S+="-"*60+"<br>"
        for t in self.trajectories : S+=str(t)+"<br>"
        S+="-"*60+"<br>"
        return S
    #-------------------------------------------------------------------------------------------------------------
    def stringCEMMM(self) :
        S="-"*60+"<br>"
        S+="Closed Exceptional Pattern"+"<br>"
        S+="-"*60+"<br>"
        for result in self.cemmm : S+=str(result[0])+":"+str(result[1])+"<br>"
        S+="-"*60+"<br>"
        return S
    #-------------------------------------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------------------------------------
    def drawMobilityTraceFigure(self,filename="image.png") :
        #self.reader.figureEvents().savefig(filename,dpi = 500)
        canvas = FigureCanvas(self.reader.figureEvents())
        canvas.print_figure(filename)
        return filename

    def drawHeatmap(self,filename="image.png") :
        if (self.method==WEIGHTBASEDALGORITHME) :
            self.poiExtractor=WBPoiExtractor(self.events,step=0.0001,overlap=1,visitMinTime=600,freqThres=2,bandwidth=0.001,weighter=VISITDURATION)
            self.poiExtractor.weightAll()
            canvas = FigureCanvas(self.poiExtractor.heatmap())
            canvas.print_figure(filename)
        return filename

    def drawPoi(self,filename="image.png") :
        if (self.method==WEIGHTBASEDALGORITHME) :
            canvas = FigureCanvas(self.poiExtractor.figurePoi(afficherText=False))
            canvas.print_figure(filename)
        return filename