| | |
| | | parser = argparse.ArgumentParser(description='ArgUtils') |
| | | parser.add_argument("-src", type=str, default=get_full_path(), required=False) |
| | | parser.add_argument("-qgz", type=str, default=r"xyz.qgz", required=False) |
| | | parser.add_argument("-file", type=str, default=r"D:\xyz\dom0.2m\tif.txt", required=False) |
| | | parser.add_argument("-out", type=str, default=r"D:\xyz\dom0.2m\png", required=False) |
| | | parser.add_argument("-noData", type=int, default=0, required=False) |
| | | parser.add_argument("-file", type=str, default=r"D:\xyz\dem\dem.txt", required=False) |
| | | parser.add_argument("-out", type=str, default=r"D:\xyz\dem\dem\astgtm2.tif", required=False) |
| | | |
| | | return parser.parse_args() |
| | | |
| | | |
| | | # 读取文本文件 |
| | | def readTxt(filePath): |
| | | def read_txt(filePath): |
| | | f = open(filePath, encoding="utf-8") |
| | | lines = f.readlines() |
| | | f.close() |
| | |
| | | |
| | | |
| | | # 加载图层 |
| | | def loadLayers(prj, args): |
| | | def load_layers(prj, args): |
| | | for layer in prj.mapLayers().values(): |
| | | prj.removeMapLayer(layer) |
| | | |
| | | args.authid = None |
| | | lines = readTxt(args.file) |
| | | lines = read_txt(args.file) |
| | | for i in range(0, len(lines)): |
| | | if len(lines[i]) == 0: |
| | | continue |
| | |
| | | print("authid: " + args.authid) |
| | | prj.setCrs(layer.crs()) |
| | | |
| | | for j in range(1, layer.bandCount() + 1): |
| | | layer.dataProvider().setNoDataValue(j, args.noData) |
| | | |
| | | prj.addMapLayer(layer) |
| | | |
| | | |
| | | # 获取参数 |
| | | def getOps(args): |
| | | def get_ops(args): |
| | | ops = { |
| | | 'BACKGROUND_COLOR': QColor(0, 0, 0, 0), |
| | | 'DPI': 96, |
| | | 'EXTENT': args.ext, |
| | | 'METATILESIZE': 4, |
| | | 'OUTPUT_DIRECTORY': args.out, |
| | | # 'OUTPUT_HTML': 'TEMPORARY_OUTPUT', |
| | | 'OUTPUT_HTML': args.out + "\\view.html", |
| | | 'QUALITY': 100, |
| | | 'TILE_FORMAT': 0, |
| | | 'TILE_HEIGHT': 256, |
| | | 'TILE_WIDTH': 256, |
| | | 'TMS_CONVENTION': False, |
| | | 'ZOOM_MAX': args.max, |
| | | 'ZOOM_MIN': args.min |
| | | 'DATA_TYPE': 5, |
| | | 'OUTPUT': args.out, |
| | | 'NODATA_INPUT': 0, |
| | | 'NODATA_OUTPUT': 0, |
| | | 'OPTIONS': '' |
| | | } |
| | | print(ops) |
| | | |
| | |
| | | def merge(args): |
| | | import processing |
| | | |
| | | ops = getOps(args) |
| | | processing.run("qgis:tilesxyzdirectory", ops) |
| | | ops = get_ops(args) |
| | | processing.run("gdal:merge", ops) |
| | | |
| | | |
| | | # 初始化 |
| | |
| | | # prj.read(args.qgz) |
| | | print("FileName: " + prj.fileName()) |
| | | |
| | | loadLayers(prj, args) |
| | | load_layers(prj, args) |
| | | |
| | | merge(args) |
| | | |
| | |
| | | if __name__ == '__main__': |
| | | timer = time.time() |
| | | init() |
| | | |
| | | print(f'耗时:{time.time() - timer:.2f}s') |