有点像postgis磁盘上文件的st_summarystats
winston的Python项目详细描述
有点像文件系统上raster的postgisST_SummaryStats函数。 大多数情况下,我们只是把一些很棒的库串在一起:
安装
激活项目虚拟环境,然后:
pip install winston
如果您只想使用命令行功能,可以:
pip install --user winston
用法
您可以在命令行上使用winston,也可以将其用作模块。
命令行
要查看您的选项,只需:
winston --help
例如,要获取给定光栅文本文件中所有WKT的统计信息:
winston some_file.tif -f wkts.txt
或者只针对一个点,包括光栅元数据:
winston /path/to/data/*.tif -w 'POINT (-4.483545 54.150744)' -m
由于我们需要rasterio,您还可以使用rio命令行工具检查光栅:
rio insp /path/to/geo.tif
阅读Rasterio docs中的更多内容。
模块
您也可以在代码中使用winston:
>>> importrasterio>>> fromwinston.statsimportsummary>>> fromshapely.geometryimportPoint>>> src=rasterio.open('/path/to/raster.tif')>>> printsummary(src)Summary(count=37324800, sum=49041320.0, mean=5.8627439, min=0.0, max=10.0, std=2.2037256) >>> printsummary(src,bounds=(4,6))Summary(count=37324800, sum=9569182.0, mean=5.1044292, min=4.0, max=5.9999995, std=0.56939822) >>> printsummary(src,bounds=(4,6),mean_only=True)5.09 >>> printsummary(src,Point(-2.36,51.38).buffer(0.25))Summary(count=169, sum=1229.4401, mean=8.9740152, min=8.3602285, max=9.4269724, std=0.24473859)
使用tablib:
导出结果相当简单>>> importrasterio>>> importtablib>>> fromwinston.statsimportsummary>>> fromshapely.geometryimportPoint>>> src=rasterio.open('/path/to/raster.tif')>>> shapes=[Point(x,y).buffer(0.25)forx,yinzip(range(5),range(5,0,-1))]>>> summaries=[summary(src,shape)forshapeinshapes]>>> d=tablib.Dataset()>>> d.dict=[s.__dict__forsinsummaries]>>> printd.headers['count', 'sum', 'mean', 'min', 'max', 'std'] >>> open('output.csv','w').write(d.csv)
历史记录
0.3.0(2016-12-19)
- 更新的cli默认设置为更…理智
- 从摘要结果中删除data_count。
- 现在接受一个exclude_nodata_value以与postgis一致
- 添加了一些基本测试
0.2.3(2016-10-13)
- 将all_touched标志的默认值反转为与光栅一致
- 添加了缺少的需求(six)和重新组织的需求文件
0.2.2(2016-10-13)
- namedtuple参数排序中的错误修复(oops!)
0.2.1(2016-10-12)
- 接受wkt字符串以及geojson&shapely几何图形
- 修复“无结果”摘要的处理
0.2.0(2016-10-12)
winston.stats.summary:
- 现在可以接受形状几何体以及类似geojson的对象
- 我们不再将结果舍入到小数点后3位
- 统计信息现在以namedtuple而不是列表的形式返回
0.1.1(2016-10-12)
- 小包装修复。
0.1.0(2016-10-12)
- pypi上的第一个版本。