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)