def clip_poly(jsonpath, task_id, search_time, res_path): start = time() set_conf(jsonpath, task_id, search_time, res_path) # os.mkdir(conf.sRslPath) pWGSLT, pWGSRB = BaseProcesses.read_json_area(conf.jsonpath) unitblock_list = get_unitblock_list(pWGSLT, pWGSRB) grid_dic = {} for unitblock in unitblock_list: lsGridcode = GridCalculate.GridCodeToGridlist_iPCSType(unitblock['sGridCodeLT'],\ unitblock['sGridCodeRB'], unitblock['iPCSType']) for sGridCode in lsGridcode: lbds10kmIn = SearchEngine.SearchByRgDttmDtpd(sGridCode, conf.sDatahomePath, conf.search_time, conf.iDataProduct, conf.iCloulLevel) for lbd_time in lbds10kmIn: if lbd_time not in grid_dic.keys(): grid_dic[lbd_time] = [lbd.sPathName for lbd in lbds10kmIn[lbd_time]] else: grid_dic[lbd_time] += [lbd.sPathName for lbd in lbds10kmIn[lbd_time]] for lbd_time in grid_dic: clip_dataset_list_groupby_time(grid_dic[lbd_time], lbd_time) grid_dic = None end = time() print("任务{1}耗时{0},涉及{2}个条带".format(end-start, task_id, len(unitblock_list)))
def DealIn10km(sGridCode, sDateTime, iDataProduct, iModelId, iCloulLevel, sDatahomePath, sRslPath): '''根据 格网编码 日期 类型, 处理单个10km格网内的业务 ——以基本结构表示的某景影像 1 根据格网序编号、日期、数据类型得到该网格内待处理数据列表 —Lbds 2 2 根据待处理数据列表,完成该格网的业务处理 —bds ''' lbds10kmIn = SearchEngine.SearchByRgDttmDtpd(sGridCode, sDatahomePath, sDateTime, iDataProduct, iCloulLevel) if (len(lbds10kmIn) >= 1): bdsRlt = Stitching.StichingIn10km(lbds10kmIn, iDataProduct, iModelId, sRslPath) else: bdsRlt = basic_data_struct() bdsRlt.sPathName = "0" return bdsRlt
if __name__ == "__main__": start = time() set_conf() os.mkdir(conf.sRslPath) pWGSLT, pWGSRB = BaseProcesses.read_json_area(conf.jsonpath) unitblock_list = get_unitblock_list(pWGSLT, pWGSRB) grid_dic = {} for unitblock in unitblock_list: lsGridcode = GridCalculate.GridCodeToGridlist_iPCSType(unitblock['sGridCodeLT'],\ unitblock['sGridCodeRB'], unitblock['iPCSType']) for sGridCode in lsGridcode: lbds10kmIn = SearchEngine.SearchByRgDttmDtpd( sGridCode, conf.sDatahomePath, conf.search_time, conf.iDataProduct, conf.iCloulLevel) for lbd_time in lbds10kmIn: if lbd_time not in grid_dic.keys(): grid_dic[lbd_time] = [ gdal.Open(lbd.sPathName) for lbd in lbds10kmIn[lbd_time] ] else: grid_dic[lbd_time] += [ gdal.Open(lbd.sPathName) for lbd in lbds10kmIn[lbd_time] ] for lbd_time in grid_dic: clip_dataset_list_groupby_time(grid_dic[lbd_time], lbd_time)