streamlit快速搭建芝加哥雨型应用
目的
通过streamlit快速搭建芝加哥雨型应用,该应用实现以下功能:
- 内置重庆各区县的暴雨强度计算公式,
- 支持自定义城市的暴雨公式参数,
- 支持雨型生成,输出图片和文字
- 提供降雨历时、汇水面积、径流系数输入,支持径流量计算
- 在线部署,网页使用。
原型
用 obsidian excalidraw 简单绘制原型。
主要原理
- 《关于发布重庆市暴雨强度修订公式及设计暴雨雨型的通知》(渝建〔2017〕443 号)
- 芝加哥合成暴雨过程线的公式推导 (vivifree.com)
主要功能实现
雨强计算
1 |
|
雨强分布计算
1 |
|
其余功能实现均较为简单,项目所有代码均开源在 GitHub,有兴趣的可以去参观,点个 star 最好了,仓库如下:
maoyu92/Chicago_rain_pattern (github.com)
如果发现代码有不对的地方,也留言提醒我一下。
应用部署
Streamlit 是非常好用的一个应用框架,支持免费部署一个应用,非常方便。
部署 GitHub
应用部署在 GitHub。通过 git 将本地仓库部署在 GitHub 上,具体方法可参考:
在vscode中使用git-新手向_新手vscode git-CSDN博客
这里跳过。
Streamlit 应用发布
登录 Streamlit,登录后点击右上角 create app。
选择 I have an app。
在连接上自己的 GitHub 后,依次选择仓库地址,分支,主文件,定义 url 名称,点击 depoly。
稍等片刻,如果一切顺利就成功了,非常丝滑~
注意事项
- 仓库文件需要包括 requirement.txt,为项目运行需要的环境。
- 注意代码引用文件需要用相对应用的方式,不要绝对引用。
成果预览
网址:Streamlit (chicagorainpattern.streamlit.app)
制作 exe 发布
nativefier
安装nativefier
如果安装不快或者安装不成功,可以试下先换为阿里源。
1 |
|
1 |
|
完成后会在执行命令的目录下生成一个可执行文件。
点击就可以直接运行
这种方法感觉像是内置了一个浏览器,缺点也很明显,只能根据网址生成,如果取消已生成的 web 应用,则无法生效。可能也是防止可以随便生成应用吧。还有就是文件比较大,分享比较麻烦,还不如直接发网址。
PyInstaller
包装 PyInstaller包
1 |
|
检查是否安装
1 |
|
将 pyinstaller. exe 路径放入系统变量
通常在 C:\ProgramData\anaconda 3\Scripts 这个下面。
创建一个.spec文件
1 |
|
遇到问题
pathlib与 pyinstaller 不兼容
1 |
|
继续执行创建. Spec 文件
运行了半天,结束后出现好几个文件
修改. Spec 文件
主要修改内容
- Pathex 路径正确
- Datas 都包括所有信息和位置关系
- Hookspath 指定自定义 hook 路径
1 |
|
使用. Spec 文件打包
1 |
|
失败,感觉打包还是有点难度。后面有空继续
打包完成后,在 dist/
(Windows上可能是 dist/YourAppName.exe
)找到可执行文件,并运行它来测试打包是否成功。
1 |
|