Greppo是一个开源的地理空间Web应用开发Python框架,能快速集成数据、算法、可视化功能和交互界面。Greppo基于Starlette、Vue、Leaflet等开源技术构建,遵循Apache V2协议,包含前端、库文件、配置文档等模块。

Greppo安装

基础安装

通过pip命令可直接安装:

pip install greppo

建议使用虚拟环境管理项目依赖,避免包冲突。以下是使用virtualenv的操作示例:

pip3 install virtualenv  # 安装virtualenv
virtualenv ENV          # 创建新环境
source ENV/bin/activate # 激活环境
pip install greppo      # 安装Greppo
# 开发完成后退出环境
deactivate
Windows用户注意事项

Windows系统安装Greppo的依赖项Fiona时可能遇到问题,可通过Christoph Gohlke提供的wheel文件手动安装解决。

Greppo快速入门

项目初始化

创建项目目录并编写脚本:

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='&copy; <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

在命令行执行以下命令启动服务:

greppo serve app.py

打开浏览器访问localhost:8080(端口可能因环境不同而变化,需参考命令行提示),即可查看运行效果。

Greppo功能

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(样式)等开源项目。