用于使用noaanos网络摄像机应用测试平台(WebCAT)的Python工具

pywebcat的Python项目详细描述


PyWebCAT

PyPI versionDocumentation StatusbuildcodecovDOI

这个存储库提供了一种Pythonic方式来与NOAA国家海洋服务网络摄像机应用程序进行交互 试验台(网络广播)。实时数据托管在SECOORA site (东南沿海海洋观测区域协会),在专门的WebCAT page上。 历史数据也可以通过使用特定的HTTP请求检索文件来访问(使用 WebCAT page)。在

有关WebCAT的更多详细信息,请参阅本开放存取文件:

Dusek, G., Hernandez, D., Willis, M., Brown, J. A., Long, J. W., Porter, D. E., & Vance, T. C. (2019). WebCAT: Piloting the development of a web camera coastal observing network for diverse applications. Frontiers in Marine Science, 6, 353, 25 June 2019 | https://doi.org/10.3389/fmars.2019.00353

安装

pip install pywebcat

使用

CLI

使用网络视频的一个关键工作流程是将视频分割成帧进行进一步分析。因此,此功能以命令行参数pywebcat公开为CLI。在

^{pr2}$

CLI有助于有效地循环输入参数,以找到一个或多个WebCAT视频,并将它们分割成所需数量的帧,然后在本地保存。以下是2019年11月13日Buxton coastal相机在不同时间循环播放多个视频的示例(指定了10秒的间隔来保存帧,并启用了详细程度):

$ pywebcat -dir /Users/tbeuzen/Downloads -s buxtoncoastalcam -y 2019 -m 11 -d 13 -t 1000 1210 1530 -i 10 -v
Saving frames of buxtoncoastalcam_2019_11_13_1000...
100%|██████████████████████████████████████████████| 62/62 [00:14<00:00,  4.22it/s]
Saving frames of buxtoncoastalcam_2019_11_13_1210...
100%|██████████████████████████████████████████████| 62/62 [00:13<00:00,  4.51it/s]
Saving frames of buxtoncoastalcam_2019_11_13_1530...
100%|██████████████████████████████████████████████| 62/62 [00:14<00:00,  4.38it/s]

生成的目录结构如下所示:

Users/tbeuzen/Downloads
                └── buxtoncoastalcam
                    ├── buxtoncoastalcam_2019_11_13_1000
                    │   ├── buxtoncoastalcam_2019_11_13_1000.csv
                    │   └── jpg
                    │       ├── frame_0.jpg
                    │       ├── frame_280.jpg
                    │       ├── ...
                    ├── buxtoncoastalcam_2019_11_13_1210
                    │   ├── ...
                    └── buxtoncoastalcam_2019_11_13_1530
                        ├── ...

输出的.csv文件包含保存帧的元数据:

urlnameframepath
http://webcat-video.axds.co/buxtoncoastalcam/raw/2019/2019_11/2019_11_13/buxtoncoastalcam.2019-11-13_1000.mp4buxtoncoastalcam_2019_11_13_10000/Users/tbeuzen/Downloads/buxtoncoastalcam/buxtoncoastalcam_2019_11_13_1000/jpg/frame_0.jpg
http://webcat-video.axds.co/buxtoncoastalcam/raw/2019/2019_11/2019_11_13/buxtoncoastalcam.2019-11-13_1000.mp4buxtoncoastalcam_2019_11_13_1000280/Users/tbeuzen/Downloads/buxtoncoastalcam/buxtoncoastalcam_2019_11_13_1000/jpg/frame_280.jpg
............

模块

pywebcat实用程序也可以通过pywebcat.utils导入,以便在其他库或工作流中使用。请参阅demo Jupyter notebook中的示例。在

from pywebcat.utils import WebCAT
wc = WebCAT()
wc.generate_url("buxtoncoastalcam", 2019, 11, 13, 1000)  # create the video url

# attributes
wc.url     # the created url
wc.name    # unique name for the video object
wc.width   # frame width in pixels
wc.height  # frame height in pixels
wc.frames  # total frames in video
wc.fps     # frames per second

# methods
wc.download_url()        # download the video at the url
wc.save_frames()         # save video frames as .jpg
wc.plot_frames()         # plot select video frames
wc.plot_average_frame()  # plot time-averaged frame

贡献

欢迎您的投稿,并非常感谢!如果您对这个项目感兴趣,可以看看contributor guide。在

贡献者

欢迎并认可所有的贡献!您可以在contributors tab中看到当前贡献者的列表。在

致谢

感谢Southeast Coastal Ocean Observing Regional Association (SECOORA) and the WebCAT project使相机镜头公开,并支持开放科学和数据。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java日期格式的月和日的固定长度?   无法将java ArrayList<String>转换为字符串。   java当我使用log4j 1.2.15时,编译时出现错误;当更改为1.2.16时,一切正常   java如何使用ArgumentMatchers将任何队列告知Mockito?   如何解决“java”。Java电子邮件API中的lang.ExceptionInInitializerError   java是实例化对象名并设置其值的通用方法   java在多线程环境中,如果一个线程崩溃,如何关闭JVM?   java WebDriverManager在selenium中获取不正确版本的驱动程序   如果JAVA中后减量的优先级高于前增量,那么为什么下面的代码输出为22.0而不是20.0。?   在hibernate中找不到java属性   当我用java运行调度程序时,什么都没有发生   jackson如何在java中从数据库中检索json对象   java安卓:如何在自定义适配器中设置侦听器并获取imagebutton单击的位置   java MySQLIntegrityConstraintViolationException:列“问题id”不能为空错误   JavaSpring自定义注销过滤器在注销前执行一些操作?   java如何返回常量集合   java使用subselect进行一对多分页   java二进制搜索基础。陷入无限循环