用于计算环境度量的开源python库
pylandstats的Python项目详细描述
PylandStats
开源pythonic库,用于计算pydata堆栈(numpy、pandas、matplotlib…)中的景观指标
功能
阅读geotiff土地利用/覆盖文件
importpylandstatsasplsls=pls.read_geotiff('data/vaud_g100_clc00_V18_5.tif')ls.plot_landscape(legend=True)
在补丁、类和景观级别计算pandas景观指标的数据帧
patch_metrics_df=ls.compute_patch_metrics_df()patch_metrics_df.head()
patch_id | class_val | area | perimeter | perimeter_area_ratio | shape_index | fractal_dimension | euclidean_nearest_neighbor |
---|---|---|---|---|---|---|---|
0 | 1 | 115 | 10600 | 92.17 | 2.409 | 1.130 | 1431.782 |
1 | 1 | 13 | 2600 | 200.00 | 1.625 | 1.100 | 223.607 |
2 | 1 | 2 | 600 | 300.00 | 1.000 | 1.012 | 223.607 |
3 | 1 | 69 | 6000 | 86.96 | 1.765 | 1.088 | 316.228 |
4 | 1 | 76 | 8800 | 115.79 | 2.444 | 1.137 | 316.228 |
class_metrics_df=ls.compute_class_metrics_df(metrics=['proportion_of_landscape','edge_density'])class_metrics_df
class_val | proportion_of_landscape | edge_density |
---|---|---|
1 | 7.702 | 4.459 |
2 | 92.298 | 4.459 |
同时分析景观的时空演变:
input_fnames=['data/vaud_g100_clc00_V18_5.tif','data/vaud_g100_clc06_V18_5a.tif','data/vaud_g100_clc12_V18_5a.tif']sta=pls.SpatioTemporalAnalysis(input_fnames,metrics=['proportion_of_landscape','edge_density','fractal_dimension_am','landscape_shape_index','shannon_diversity_index'],classes=[1],dates=[2000,2006,2012],)fig,axes=sta.plot_metrics(class_val=1,metrics=['proportion_of_landscape','edge_density','fractal_dimension_am'],num_cols=3)fig.suptitle('Class-level metrics (urban)')
有关更完整的概述,请参见documentation和pylandstats-notebooks存储库。
安装
安装pylandstats最简单的方法是使用conda:
$ conda install -c conda-forge pylandstats
它将安装pylandstats及其所有依赖项。或者,您可以使用pip:
$ pip install pylandstats
不过,请注意,BufferAnalysis
和SpatioTemporalBufferAnalysis
类使用geopandas,这不能与pip一起安装。如果您的系统中已经安装了the dependencies for geopandas,那么您可以使用geo
附加程序安装pylandstats,如:
$ pip install pylandstats[geo]
您将能够使用BufferAnalysis
和SpatioTemporalBufferAnalysis
类(不必使用conda)。
致谢
- 在爱科尔洛桑理工学院(EPFL)的支持下
- 用于测试数据集的Corine土地覆盖数据集是由欧盟出资制作的