如何将FMU与系统示意图PNG文件打包并在Jupyter Notebook中访问显示?
问题解答:FMU与PNG打包及Jupyter Notebook中显示PNG
一、FMU与PNG打包的可行性
完全可行,有两种常用实现方案:
- 方案1:同目录压缩打包:将编译好的FMU文件和PNG图片放在同一文件夹,直接打包成ZIP/RAR等压缩包即可。这种方式简单直观,不会修改FMU本身的结构。
- 方案2:将PNG嵌入FMU包内:FMU本质是符合特定规范的ZIP压缩文件,你可以直接用压缩软件打开FMU,将PNG图片添加到包内的非核心目录(比如新建一个
assets文件夹),只要不覆盖FMU原有必要文件(如modelDescription.xml、二进制仿真文件等),就不会影响FMU的正常仿真功能。
二、在Jupyter Notebook中访问并显示PNG的方法
根据打包方式不同,操作略有区别:
情况1:PNG与FMU在同一目录(或解压后同目录)
直接使用Python的IPython.display或matplotlib模块读取显示:
# 方法1:用IPython.display快速显示 from IPython.display import Image Image(filename='系统展示图.png') # 方法2:用matplotlib自定义显示样式 import matplotlib.pyplot as plt import matplotlib.image as mpimg img = mpimg.imread('系统展示图.png') plt.imshow(img) plt.axis('off') # 隐藏坐标轴 plt.show()
情况2:PNG嵌入FMU包内
通过zipfile模块直接读取FMU包内的PNG文件,无需完整解压:
from IPython.display import Image import zipfile import io # 打开FMU压缩包 with zipfile.ZipFile('你的模型.fmu', 'r') as fmu_zip: # 读取包内指定路径的PNG文件(示例路径为assets/系统展示图.png) with fmu_zip.open('assets/系统展示图.png') as png_file: img_data = io.BytesIO(png_file.read()) display(Image(img_data))
内容的提问来源于stack exchange,提问作者janpeter
相关产品推荐
相关产品推荐

