一个用于可视化您的NetCDF和Grib数据的轻量级WMS服务器
项目描述
skinny WMS是一个小型的WMS服务器,可以帮助您可视化NetCDF和Grib数据。其原理很简单:skinny将浏览目录,或作为参数传递的单个文件,并尝试解释每个NetCDF或GRIB文件。从元数据中,将构建getCapabilities文档,并找到相关的样式来绘制数据。
功能
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
-
时间和高度维度的实现遵循OGC Met Ocean DWG WMS 1.3 Best Practice for using Web Map Services (WMS) with Time-Dependent or Elevation-Dependent Data。要启用维度分组(默认禁用),请设置环境变量
SKINNYWMS_ENABLE_DIMENSION_GROUPING=1
-
开发阶段:Alpha,
添加您自己的样式
多进程
缓存
如何安装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)
请确保您已安装Docker
和docker-compose
。然后运行
docker-compose up
这将构建一个dev镜像,并在http://localhost:5000启动一个基于docker-compose.yml和.env中存储的配置的本地Flask开发服务器(代码更改时自动重新加载),默认情况下尝试加载存储在skinnywms/testdata中的所有GRIB和NetCDF数据。
贡献
主要仓库以及相关项目都托管在GitHub上。测试、错误报告和对所有项目的贡献都受到热烈欢迎和高度赞赏。
- https://github.com/ecmwf/skinnywms
- https://github.com/ecmwf/magics-python
- https://github.com/ecmwf/magics
- https://github.com/ecmwf/eccodes
- https://github.com/ecmwf/ecmwflibs
主要开发者
Sylvie Lamy-Thepaut <https://github.com/sylvilamythepaut>
- ECMWFBaudouin Raoult <https://github.com/b8raoult>
- ECMWFEduard Rosert <https://github.com/EduardRosert>
- ECMWF
主要贡献者
Stephan Siemen <https://github.com/stephansiemen>
- ECMWFMilana 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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0d5dce125352f9b357c4a30704fe4a69e2dfed5fb179e5fe22b79f18d3a24c90 |
|
MD5 | 0996645c697488896cab3208a1f380f1 |
|
BLAKE2b-256 | b45dd15e8e8302ee8f6554078b70a9abf27878a1184a4eaa9c26edbf11a1efcd |
skinnywms-0.10.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 19462dd94832d6081bfe9532d994d322a45844c9721bc33c49cdca61b20f48df |
|
MD5 | 788e4164f790568b019a79b8cd7cca1b |
|
BLAKE2b-256 | de03a3aa66d471f0aec677b6ff4a6a094a6b59a29feb1c428559206195970e2f |