GeoServer中Polygon on Raster查询、栅格裁剪求和及原始像素获取问题
GeoServer栅格处理相关问题解答
1. 全流程实现多边形裁剪+像素值求和
该需求完全可通过GeoServer的WPS服务实现,操作前提是你已安装对应版本的WPS扩展(默认GeoServer安装包不自带WPS组件,需单独安装后重启服务生效)。
你不需要拆分裁剪和求和两步操作,直接调用gs:RasterZonalStatistics进程即可一步拿到结果:
- 传入参数说明:
data:你已发布的人口栅格图层名,格式为工作区:图层名zones:你的GeoJSON格式多边形对象,坐标系指定为EPSG:4326即可statistics:按需选择统计项,仅需要求和的话指定sum即可
- 执行后会直接返回多边形范围内所有像素的总和结果,无需额外处理。
如果确实需要单独获取裁剪后的栅格,可调用gs:CropCoverage进程,传入栅格图层和裁剪多边形,即可返回裁剪后的原始栅格对象。
大栅格处理注意提前调整GeoServer的WPS执行超时时间、JVM堆内存上限,避免请求中断。
2. 获取指定矩形范围的原始像素值
你之前请求WCS返回PNG是参数配置错误导致的,WCS本身支持返回原始栅格数据:
使用WCS 1.1.1版本的GetCoverage请求,关键参数配置如下:
service=WCS version=1.1.1 request=GetCoverage identifier=你的工作区:你的栅格图层名 boundingbox=minx,miny,maxx,maxy,urn:ogc:def:crs:EPSG::4326 format=image/tiff
注意请求中不要携带styles参数,否则会触发渲染逻辑返回图片而非原始栅格。请求成功后会直接返回指定矩形范围的原始GeoTIFF文件,包含所有未修改的原始像素值,你可自行做后续处理。
内容的提问来源于stack exchange,提问作者pitchtrim
相关产品推荐
相关产品推荐

