# 拼图 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
Python ArcPy ArcMap ArcGis 批量出图之拼图
于 2022-06-07 13:27:51 首次发布
该代码实现使用Python3+进行多张图像的拼接,包括MODIS和PARASOL图像,以及不同时间间隔的SCPTOASCPDOLPPHIORIGIN图像。同时,它还展示了如何从MXD文件中导出指定图层为JPEG图片,并应用特定的符号样式。
摘要由CSDN通过智能技术生成