跳转到主要内容

一个用于可视化您的NetCDF和Grib数据的轻量级WMS服务器

项目描述

skinny WMS是一个小型的WMS服务器,可以帮助您可视化NetCDF和Grib数据。其原理很简单:skinny将浏览目录,或作为参数传递的单个文件,并尝试解释每个NetCDF或GRIB文件。从元数据中,将构建getCapabilities文档,并找到相关的样式来绘制数据。

Docs Upload Python Package PyPI version Upload Python Package Docker Pulls Anaconda Version Anaconda Downloads License

功能

skinnyWMS实现了WMS端点的3个功能

  • getCapabilities:发现数据,构建一个XML文档,将每个识别的参数作为图层展示,并列出它们的预定义样式。(始终有一个默认样式)
  • getMap:返回使用所选样式的所选图层。
  • getLegendGraphic:返回图例。

使用方法

有两种方法开始使用它,它们都会启动一个小的Flask服务器。启动后,可以通过[http://127.0.0.1:5000/]访问一个小的leaflet客户端。

  • 演示
python demo.py --path /path/to/mydata
  • 命令行
skinny-wms --path /path/to/mydata
  • 或使用uwsgi
uwsgi --http localhost:5000 --master --process 20 --mount /=skinnywms.wmssvr:application --env SKINNYWMS_DATA_PATH=/path/to/mydata

使用Docker运行

默认情况下,docker镜像将使用uwsgi启动应用程序,并加载和显示一些演示数据。

  • 运行演示
docker run --rm -p 5000:5000 -it ecmwf/skinnywms 

现在您可以在http://localhost:5000/尝试leaflet演示。

  • 使用您机器上的数据运行
docker run --rm -p 5000:5000 -it \
    --volume=/path/to/my/data:/path/inside/the/container \
    --env SKINNYWMS_DATA_PATH=/path/inside/the/container \
      ecmwf/skinnywms

现在您可以在http://localhost:5000/使用您的数据访问leaflet演示。

  • 通过设置相应的环境变量来配置不同的选项
docker run --rm -p 5000:5000 -it \
    --volume=/path/to/my/data:/path/inside/the/container \
    --env SKINNYWMS_DATA_PATH=/path/inside/the/container \
    --env SKINNYWMS_HOST=0.0.0.0 \
    --env SKINNYWMS_PORT=5000 \
    --env SKINNYWMS_MOUNT=/mymodel/ \
    --env SKINNYWMS_UWSGI_WORKERS=4 \
    --env SKINNYWMS_ENABLE_DIMENSION_GROUPING=1 \
      ecmwf/skinnywms

现在您可以在http://localhost:5000/mymodel/wms?request=GetCapabilities访问您的数据的```GetCapabilities```文档。

安装

skinnyWMS依赖于ECMWF的Magics库。

如果您平台上没有安装Magics,skinnywms可在conda forge https://forge.conda.org.cn/上获得。

conda config --add channels conda-forge
conda install skinnywms

如果您已经安装了Magics,可以使用pip

pip install skinnywms

限制

  • skinnyWMS在格式良好和文档化的NetCDF和GRIB上表现更好。

  • 包含对应的风分量u、v的grib字段需要放在单个grib文件中,以便在skinnyWMS中作为向量/风矢显示。您可以使用ecCodes的grib_copy(包含在docker镜像中)将多个grib文件组合成一个文件,例如:

grib_copy input_wind_u_component.grb2 input_wind_v_component.grib2 output_wind_u_v_combined.grb2

添加您自己的样式

多进程

缓存

如何安装Magics

必须在系统上安装,并作为共享库可访问。一些Linux发行版提供了可能通过标准包管理器安装的二进制版本。

作为替代方案,您可以通过遵循https://software.ecmwf.int/magics/Installation+Guide中的说明安装官方源代码发行版。Magics可在GitHub https://github.com/ecmwf/magics上找到。

请注意,Magics对Windows操作系统的支持是实验性的。

作为另一种选择,您可以使用ecmwflibs包(目前处于Alpha开发阶段)来安装magics和eccodes库

pip install ecmwflibs

启动本地开发环境(Docker)

请确保您已安装Dockerdocker-compose。然后运行

docker-compose up

这将构建一个dev镜像,并在http://localhost:5000启动一个基于docker-compose.yml.env中存储的配置的本地Flask开发服务器(代码更改时自动重新加载),默认情况下尝试加载存储在skinnywms/testdata中的所有GRIB和NetCDF数据。

贡献

主要仓库以及相关项目都托管在GitHub上。测试、错误报告和对所有项目的贡献都受到热烈欢迎和高度赞赏。

主要开发者

  • Sylvie Lamy-Thepaut <https://github.com/sylvilamythepaut> - ECMWF
  • Baudouin Raoult <https://github.com/b8raoult> - ECMWF
  • Eduard Rosert <https://github.com/EduardRosert> - ECMWF

主要贡献者

  • Stephan Siemen <https://github.com/stephansiemen> - ECMWF
  • Milana Vuckovic <https://github.com/milanavuckovic> - ECMWF

许可证

版权所有 2017-2019 欧洲中期天气预报中心(ECMWF)。

遵循Apache许可证第2.0版(“许可证”);除非遵守许可证规定,否则不得使用此文件。您可以在以下地址获取许可证副本:[https://apache.ac.cn/licenses/LICENSE-2.0](https://apache.ac.cn/licenses/LICENSE-2.0)。除非适用法律要求或书面同意,否则在许可证下分发的软件按“现状”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的特定语言、权限和限制,请参阅许可证。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

skinnywms-0.10.0.tar.gz (18.4 MB 查看哈希值)

上传时间 源代码

构建分发

skinnywms-0.10.0-py3-none-any.whl (18.9 MB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面