更新策略(Update Strategy)
版本: 0.0.1(Beta)
- 更新策略部分对应《城市空间数据分析方法》中 4.3 更新策略部分的理论阐述和 Python 代码实现。调整了“2维度布局优化——空间决策支持系统”部分为更具有通用性的景观指数计算,及基于景观指数计算的2维度布局优化探索。指数计算部分使用PyLandStats。关于景观指数的解释可以查看Fragstats。
该部分功能包括:
A. 景观指数计算和空间更新策略(Landscape Metrics and Spatial Update Strategy)
- 斑块级(Patch)景观指数计算;
- 类型级(Class)景观指数计算;
- 景观级(Landscape)景观指数计算;
- 景观指数的时空分析(Spatio-temporal Analysis);
- 景观指数的区域分析(Zonal Analysis)——按给定的矢量数据(SHP 等)(Vector);
- 景观指数的区域分析(Zonal Analysis)——按给定经纬度点坐标,对应距离缓冲区统计分析(Buffer);
- 基于景观指数计算的2维度布局优化探索(2D Genetic Algorithm (Map Update Exploration))。
B. 元启发式算法(Meta-Heuristic Algorithm)【TODO】
案例示例和参数说明
A-0 通用输入参数
- Add layer:待计算的分类栅格数据(TIFF)。分类中避免使用值0,值0通常默认为空值或背景值。可以添加多个栅格数据用于不同时间点的景观指数分析。一般景观指数计算仅计算第1个添加的栅格数据(位于顶端的栅格数据)。可以单击添加到列表中的栅格文件,右侧文本框中会显示该栅格的基本信息;
栅格基本信息示例:
driver: GTiff
dtype: uint8
nodata: 0.0
width: 20040
height: 11294
count: 1
crs: EPSG:32649
transform: | 10.00, 0.00, 190582.09| | 0.00,-10.00, 3845810.00| | 0.00, 0.00, 1.00|
blockxsize: 128
blockysize: 128
tiled: True
interleave: band
-
Remove layer:移除选中添加到列表中的栅格;
-
Neighborhood Rule:可选邻接规则,以确定斑块邻接关系。包括'8’ (queen’s case/Moore neighborhood)和'4’ (rook’s case/Von Neumann neighborhood);
-
Nodata:配置栅格空值,默认为值0;
-
Class Val:Class级别指数计算,指定所要计算的单个类别。默认值0代表计算所有类别;
-
Hectares:将景观面积转换为公顷。默认值为转换为公顷。;
-
Edge Depth:作为边的单元格数.默认值为1;
-
Count Boundary:仅将景观边界相邻的单元视为核心(core)。默认值为 False;
-
Percent:用比例(proportion)表示指数,还是将其转换成百分比(percentage)。仅适用于部分指数。默认值为 True。
-
景观指数选择列表:指数选择列表包括5类,分别为 PATCH METRICS(斑块级), CLASS METRICS_Unique(类级),LANDSCAPE METRICS_Unique(景观级),DISTR METRICS_Class and Landscape(适用于类级和景观级),ENTROPY METRICS_Landscape(适用于景观级)。双击指数为选择,并显示在右侧的文本框中。在右侧的文本框中双击指数为移除指数。
- Distribution Statistics:用于 DISTR METRICS_Class and Landscape 类指数计算的统计方式。包括均值(MN),面积加权均值(AM),中位数(MD),区间(RA),标准差(SD)和变异系数(CV);
A-1 斑块级(Patch)景观指数计算
-
Patch-level Metrics:如果“景观指数选择列表”为空,则计算全部 Patch 级指数,否则仅计算选中的指数。计算后的结果显示于右侧的表格中;
-
Save to File:保存计算的景观指数,适用于所有类型指数的计算结果的保存;
计算全部指数:
计算选择的指数:
A-2 类型级(Class)景观指数计算
- Class-level Metrics:如果“景观指数选择列表”为空,则计算全部 Class 级指数,否则仅计算选中的指数。计算后的结果显示于右侧的表格中;
A-3 景观级(Landscape)景观指数计算
- Landscape-level Metrics:如果“景观指数选择列表”为空,则计算全部 Landscape 级指数,否则仅计算选中的指数。计算后的结果显示于右侧的表格中;
A-2,3+ DISTR METRICS_Class and Landscape(适用于类级和景观级)
DISTR METRICS_Class and Landscape 计算示例。
class 级示例:
landscape 级示例:
A-3+ ENTROPY METRICS_Landscape(适用于景观级)
ENTROPY METRICS_Landscape 计算示例:
A-4 景观指数的时空分析(Spatio-temporal Analysis)
-
Point in Time: 对应输入的多个栅格文件,时间点自定义标识;
-
Class-level Metrics (st):class 级指数的时空分析;
class 级指数时空分析全部指数:
class 级指数时空分析选择指数:
- Landscape-level Metrics (st):landscape 级指数的时空分析;
A-5 景观指数的区域分析(Zonal Analysis)——按给定的矢量数据(SHP 等)(Vector)
-
Zones-Vector:选择用于区域分析的矢量文件;
-
Zone Index:指定用于区域分析矢量文件各个区域的标识字段;
- Class-level Metrics (zv):class 级指数区域分析;
计算全部指数:
计算选择的指数:
- Landscape-level Metrics (zv):landscape 级指数区域分析;
A-6 景观指数的区域分析(Zonal Analysis)——按给定经纬度点坐标,对应距离缓冲区统计分析(Buffer);
-
Point Latitude:指定一个点的纬度;
-
Point Longitude:指定一个点的经度;
-
Buffer Dists:指定圆形缓冲区的距离;
-
View Zones-Buffer:查看缓冲区;
- Buffer Rings:圆面和圆环切换;
- Class-level Metrics (zb):class 级指数缓冲区分析;
- Landscape-level Metrics (zb):landscape 级指数缓冲区分析;
A-7 基于景观指数计算的2维度布局优化探索(2D Genetic Algorithm (Map Update Exploration))
使用2维度的遗传算法(2D-Genetic Algorithm,2D-GA)。
-
Load Quadrat:加载用于2维度布局优化探索的矢量样方文件。仅分析优化给定单个样方内的指数;
-
Population Size:种群(population)大小。默认为50;
-
Mutation Rate:变异系数。默认值为 0.5;
-
Crossover:交叉方式。包括 Crossover_CBO 和 Crossover_tsai;
-
Mutation:变异方式。包括 Mutation-MPO_MBO、Mutation-tsai_1 和 Mutation-tsai_2;
-
Mpo/Mbo:交叉算子。包括 Mpo 和 Mbo;
-
Generations:迭代次数;
-
Verbose:打印迭代信息的周期;
-
Classes:class 级指数计算时指定一个或多个类。如果不指定,默认计算所有类别;
-
Set Metrics Direction:配置指数是越大越好(Max),越小越好(Min),还是保持不变(Stay)。用于构建目标函数(target function);
-
Save to Raster:保存优化后的结果文件;
-
GA Run:开始计算。
在 QGis 中查看结果文件。