Python ArcPy ArcMap ArcGis 批量出图之拼图

# 拼图 python3+
def multi_jpeg(date):
	# 子图文件夹
    inFolder = r'F:\WORKSPACE\DBN-PARASOL\DATASET\OUTCOME\JPG\05.27'
    img_number = 1
    plt.figure(dpi=750, figsize=(16, 6))    # dpi=200 分辨率,图片尺寸
    # 绘制第一行 MODIS PARASOL
    mImg = cv2.imread(r'F:\WORKSPACE\DBN-PARASOL\DATASET\OUTCOME\JPG\MODIS 1.0\{} MODIS.jpg'.format(date))
    mImg = mImg[:, :, [2, 1, 0]] #RGB色彩合成
    plt.subplot(1, 4, img_number) # 将当前画布划分成 1行 4列,img_number指示当前子图为第几张图,画布中位置以此确定。
    img_number += 1	# 以img_number确定子图位置
    plt.axis('off')	# 坐标轴显示与否
    plt.xticks([])
    plt.yticks([])
    plt.imshow(mImg)

    pImg = cv2.imread(r'F:\WORKSPACE\DBN-PARASOL\DATASET\OUTCOME\JPG\parasol 1.0\{} PARASOL.jpg'.format(date))
    pImg = pImg[:, :, [2, 1, 0]]
    plt.subplot(1, 4, img_number)
    img_number += 1
    plt.axis('off')
    plt.xticks([])
    plt.yticks([])
    plt.imshow(pImg)
    # # 绘制第二行 3x3 30min SCPTOA SCP DOLPPHI ORIGIN
    # for item in ['scptoa']:#, 'scp', 'pphi', 'origin']:
    #     img = inFolder + r'\{} {} 30.jpg'.format(date, item)
    #     print(img)
    #     dImg = cv2.imread(img)
    #     dImg = dImg[:, :, [2, 1, 0]]
    #     plt.subplot(1, 4, img_number)
    #     img_number += 1
    #     plt.axis('off')
    #     plt.xticks([])
    #     plt.yticks([])
    #     plt.imshow(dImg)
    pImg = cv2.imread(r'F:\WORKSPACE\DBN-PARASOL\DATASET\OUTCOME\JPG\05.27\{} scptoa 30 v05.29.jpg'.format(date))
    pImg = pImg[:, :, [2, 1, 0]]
    plt.subplot(1, 4, img_number)
    img_number += 1
    plt.axis('off')
    plt.xticks([])
    plt.yticks([])
    plt.imshow(pImg)

    pImg = cv2.imread(r'F:\WORKSPACE\DBN-PARASOL\DATASET\OUTCOME\JPG\5.18 3x3 0.07 1.0\{} scptoa 30 v05.27.jpg'.format(date))
    pImg = pImg[:, :, [2, 1, 0]]
    plt.subplot(1, 4, img_number)
    img_number += 1
    plt.axis('off')
    plt.xticks([])
    plt.yticks([])
    plt.imshow(pImg)

    plt.tight_layout(0.)	# 子图间距
    # plt.show()
plt.savefig(r'F:\WORKSPACE\DBN-PARASOL\DATASET\OUTCOME\JPG\daily\{} v05.29.jpg'.format(date))	# 保存当前画布

# 将mxd中的tif图层,依次导出成图片,python2.7
def dbn_to_jpg(mxd_file, jpg_file):
    res = arcpy.GetParameterAsText(2)  # 分辨率
    mxd = arcpy.mapping.MapDocument(mxd_file)

    text_element = arcpy.mapping.ListLayoutElements(mxd, 'TEXT_ELEMENT')[2]
    # print text_element.text

    originLayerName = "model 1.0.tif"  # 这里填入设置好的图层样式名称
    try:
        originLayer = arcpy.mapping.ListLayers(mxd, originLayerName)[0]
    except:
        pass
    layers = arcpy.mapping.ListLayers(mxd)
    for lyr in layers:
        if lyr.name in ['province', 'model 1.0.tif', 'model 1.5.tif']:
            continue
        print lyr.name
        names = lyr.name.split('.')[0].split('_')
        # origin_20070110_SC_3x3_30
        text_element.text = names[1] + ' ' + names[0] + ' ' + names[-1] + ' v05.27'
        # lyr.name.split('_')[1] + ' PARASOL'# '2007'+lyr.name.split('.')[0].split('_')[1]+' MODIS' #
        try:
            if (originLayer.isFeatureLayer and lyr.isFeatureLayer) or (originLayer.isRasterLayer and lyr.isRasterLayer):
                arcpy.ApplySymbologyFromLayer_management(in_layer=lyr, in_symbology_layer=originLayer)
        except:
            pass
        lyr.visible = True
        arcpy.mapping.ExportToJPEG(mxd, jpg_file.format(text_element.text), resolution=res)
        lyr.visible = False
        print 'done'
    mxd.save()
    del mxd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值