コード例 #1
0
    def __init__(self, configfile="../docs/default.ini"):
        cf = ConfigParser.ConfigParser()
        cf.read(configfile)

        # 【数据库】
        self.targetdb_DBIP = cf.get('targetdb', 'DBIP')
        self.targetdb_USRID = cf.get('targetdb', 'USRID')
        self.targetdb_PSW = cf.get('targetdb', 'PSW')
        self.targetdb_DBNAME = cf.get('targetdb', 'DBNAME')

        # 基础地图的表的名称
        self.base_pointtable = cf.get('targetdb', 'BASEPOINTTABLE')
        self.base_linetable = cf.get('targetdb', 'BASELINETABLE')

        # 全量跟新的表名称
        self.full_pointtable = cf.get('targetdb', 'FULLPOINTTABLE')
        self.full_linetable = cf.get('targetdb', 'FULLLINETABLE')

        # 【datause】
        self.datause_start = cf.get('datause', 'start')
        self.datause_end = cf.get('datause', 'end')

        #self.trace = SQLHelper(self.targetdb_DBIP, self.targetdb_USRID, self.targetdb_PSW, self.targetdb_DBNAME)
        self.trace = db.SQLServer(server=cf.get('sourcesdb', 'dbip'),
                                  user=cf.get('sourcesdb', 'USRID'),
                                  password=cf.get('sourcesdb', 'PSW'),
                                  database=cf.get('sourcesdb', 'DBNAME'))
        self.trace.GetConnect()

        prefix = "../temp/"

        self.cell_size = cf.getint('KDEparam', 'CELLSIZE')

        self.gaussian_blur = cf.getint('KDEparam', 'GAUS_BLUR')

        # 初始地图  :应该为OSM地图() 初始的init.db 在表 ‘edges’ 和表‘segment’ 中有一列 fclass 来表示道路的等级,用来后期更新成shapefile 文件
        #todo OSM -> init.db
        self.init_graphdb_filename = prefix + "db/initdb/skeleton_map_1m.db"
        self.full_graphdb_filename = prefix + "db/fulldb/skeleton_map_1m.db"

        self.init_graphdb_filename_bak = prefix + "db/initdb_bak/skeleton_map_1m.db"
        # 中间文件 kde.py的输出
        self.input_filename = prefix + "kde.png"
        # 中间文件 skeleton.py的输出
        self.skeleton_filename = prefix + "skeleton.png"
        # 数据的边界文件 两个作用:1)在kde.py中间算yscale和xscale;2)在graph_extract.py 中计算 如height、wigth、yscale和xscale等参数
        self.bounding_box_filename = prefix + "bounding_boxes/bounding_box_1m.txt"
        # 本次轨迹数据产生的db 文件
        self.graphdb_filename = prefix + "db/updatedb/1m/skeleton_map_1m.db"
        # 本次的轨迹文件
        self.trips_path = "../temp/kunshan_data"
        # 轨迹文件 经过HMM 后匹配的文件 todo (这里调用的作者的HMM算法,所以匹配轨迹文件分为两种,1)以unknow结尾;2)正常)
        self.newTripOut = prefix + 'newTripOut'
        # 将轨迹文件 经过HMM 后匹配的文件 中 以unkonw 结尾的数据提取出来,作为中断点,这些中断点作为 kde.py的输入
        self.matched_trips_directory_1 = prefix + 'matched_trips_directory_1'

        # 创建第一层文件夹updatedb
        fold = [
            prefix, prefix + "db", prefix + "db/initdb_bak",
            prefix + "db/fulldb/", prefix + "db/initdb/",
            prefix + "db/updatedb/", prefix + "db/updatedb/1m",
            "../temp/newTripOut", self.matched_trips_directory_1,
            prefix + "bounding_boxes", "../temp/shapefile/",
            "../temp/shapefile/after", "../temp/shapefile/before",
            "../temp/shapefile/update"
        ]
        for x in fold:
            if not os.path.exists(x):
                os.makedirs(x)