Greppo是一个开源的地理空间Web应用开发Python框架,能快速集成数据、算法、可视化功能和交互界面。Greppo基于Starlette、Vue、Leaflet等开源技术构建,遵循Apache V2协议,包含前端、库文件、配置文档等模块。
通过pip命令可直接安装:
pip install greppo
建议使用虚拟环境管理项目依赖,避免包冲突。以下是使用virtualenv的操作示例:
pip3 install virtualenv # 安装virtualenv
virtualenv ENV # 创建新环境
source ENV/bin/activate # 激活环境
pip install greppo # 安装Greppo
# 开发完成后退出环境
deactivate
Windows系统安装Greppo的依赖项Fiona时可能遇到问题,可通过Christoph Gohlke提供的wheel文件手动安装解决。
创建项目目录并编写脚本:
mkdir my-greppo-app
cd my-greppo-app
touch app.py
1、地理空间数据可视化示例(app.py)
from greppo import app
import geopandas as gpd
# 读取地理数据
data_gdf = gpd.read_file("geospatial_data.geojson")
buildings_gdf = gpd.read_file("./data/buildings.geojson")
# 添加叠加图层
app.overlay_layer(
buildings_gdf,
name="建筑物",
description="阿姆斯特丹某社区的建筑物",
style={"fillColor": "#F87979"},
visible=True,
)
# 添加基础图层
app.base_layer(
name="OpenStreetMap",
visible=True,
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
attribution='© <a target="_blank" href="http://osm.org/copyright">OpenStreetMap</a> contributors',
)
2、交互式参数示例(app.py)
from greppo import app
import numpy as np
# 创建可交互参数x
x = app.number(name="x", value=3)
# 生成数据列表
print('数值列表: ', np.ones(10) * x)
在命令行执行以下命令启动服务:
greppo serve app.py
打开浏览器访问localhost:8080
(端口可能因环境不同而变化,需参考命令行提示),即可查看运行效果。
Greppo提供图层控制、数据可视化等核心功能,支持自定义样式和交互逻辑,项目文档可访问 https://docs.greppo.io
查阅,遇到问题可通过以下渠道获取帮助:
• 官方网站:https://greppo.io
• Discord社区:https://discord.gg/RNJBjgh8gz
• GitHub仓库:https://github.com/greppo-io/greppo
Greppo底层依赖Starlette(Web框架)、Vue(前端视图)、Leaflet(地图渲染)、ChartJS(图表)、TailwindCSS(样式)等开源项目。