代码开源 | UrbanVCA(Python版)开源

文摘   科学   2024-07-07 09:27   湖北  

01

概述


本项目是UrbanVCA的Python版本。UrbanVCA是一款基于真实地块和矢量元胞自动机(Vector-based CA)的城市土地利用变化模拟和预测系统。
该系统同时支持城市内的土地利用相互转换和城市用地扩张过程。
本项目实现了三个数据预处理功能(即土地利用重分类功能、矢量动态地块分类功能和土地利用数据匹配功能),总体发展概率计算功能和UrbanVCA模型模拟功能。

本项目在GitHub开源,地址请点击最下方“阅读原文”获取。


02

运行流程


程序运行顺序:

- preparation
    - reclassification
    - DLPS
    - match
    - zonal
- mining_Pg_RF
- simulation


03

模块说明


1. 土地利用重分类

利用preparation_reclassification.py程序进行土地利用重分类。

该模块可以基于重分类字典, 将重分类字段的值转化为新值后写入新字段。

用户需要在主函数中设置各个参数。

参数input_file_name和output_file_name分别为土地利用类型文件(.shp)的地址和结果文件的输出地址;

参数reclass_field_name为土地利用类型文件中代表土地利用类型的字段名;

参数new_field_name为进行重分类后,新的土地利用类型的字段名;

参数reclass_dict为重分类字典,字典的键代表重分类前的土地利用类型,字典的值代表重分类后的土地利用类型。


2. 矢量动态地块分裂

利用preparation_DLPS.py进行矢量动态地块分裂。

该模块可以基于地块的凸包的MABR对地块进行分割。

用户需要在主函数中设置各个参数。

参数input_file_name和output_file_name分别为进行土地利用重分类后的土地利用类型文件(.shp)的地址和结果文件的输出地址;

参数max_iteration为分割次数;

参数allowable_parameter为容许参数。

3. 土地利用数据匹配功能

利用preparation_match.py进行土地利用的数据匹配。

该模块可以在两个不同时期地块中,将距离最近的地块视为同一地块,匹配前期和后期的用地类型。

用户需要在主函数中设置各个参数。

参数before_file_name为前期的进行矢量动态地块分裂后的土地利用类型文件的地址;

参数before_landuse_field_name为前期土地利用类型中表示用地类型的字段名;

参数after_file_name为后期的进行矢量动态地块分裂后的土地利用类型文件的地址;

参数after_landuse_field_name为后期土地利用类型中表示用地类型的字段名;

参数output_file_name为结果文件的输出地址。

4. 总体发展概率计算功能

利用preparation_zonal.py和mining_Pg_RF.py实现总体发展概率计算功能。

preparation_zonal.py用于分区统计,计算地块覆盖到的像元的统计值(平均值、最大值、最小值)。

用户需要在主函数中设置各个参数。

参数polygon_file_name表示匹配好的土地利用类型shapefile文件地址。

参数raster_file_config_list为多个tiff影像配置的列表。在每个影像中,第一项为影像地址,第二项为空间变量的字段名,第三项为像元的统计方式。

参数output_csvfile_name为csv结果文件的地址。

参数output_shapefile_name为shapefile结果文件的输出地址。

mining_Pg_RF.py可以利用随机森林算法,以地块为样本,地块在各空间变量上的的分区统计值为特征,后期土地利用类型为标签,挖掘总体发展概率。

用户需要在主函数中设置各个参数。

参数input_file_name为分区统计后的shapefile文件地址。

参数output_shapefile_name为shapefile结果文件的输出地址。

参数output_csvfile_name为csv结果文件的输出地址。

参数label_field_name为后期土地利用类型的字段名。

参数spatial_variable_field_name_list为各空间变量的字段名的列表。

参数tree_count为随机森林中决策树数量。

5. UrbanVCA模型模拟功能
利用simulation.py实现土地利用模拟功能。
该模快利用UrbanVCA模型,对前期的土地利用类型进行模拟,并结合后期真实的土地利用类型数据,对模拟精度进行评价。
用户需要在主函数中设置各个参数。
参数input_file_name为进行总体发展概率计算后的土地利用类型shapefile文件地址。
参数restricted_area_file_name为限制区域shapefile文件地址。
参数output_file_name为结果文件的输出地址。
参数before_landuse_field_name为前期土地利用类型的字段名。
参数after_landuse_field_name为后期土地利用类型的字段名。
参数RA_alpha为随机因子计算参数。
参数buffer_range为邻域范围。
参数iteration为迭代次数。
参数change为转换矩阵,用户可以手动设置土地之间的转换关系。若矩阵第n行第m列的值为1则代表类型n可以转换为类型m;若为0则不能转换。

6. 其他模块

assessment_FoM.py用于精度评价,可以计算出结果的FoM,UA和PA。

utils.py用于存放常用的函数。


04

依赖库


* osgeo
* gdal

* numpy


05

参考文献


[1] Yao, Y., Liu, X., Li, X., Liu, P., Hong, Y., Zhang, Y., & Mai, K. (2017). Simulating urban land-use changes at a large scale by integrating dynamic land parcel subdivision and vector-based cellular automata. International Journal of Geographical Information Science, 31(12), 2452-2479.
[2] Zhai, Y., Yao, Y., Guan, Q., Liang, X., Li, X., Pan, Y., … & Zhou, J. (2020). Simulating urban land use change by integrating a convolutional neural network with vector-based cellular automata. International Journal of Geographical Information Science, 34(7), 1475-1499.
[3] Yao, Y., Li, L., Liang, Z., Cheng, T., Sun, Z., Luo, P., … & Ye, X. (2021). UrbanVCA: a vector-based cellular automata framework to simulate the urban land-use change at the land-parcel level. arXiv preprint arXiv:2103.08538.



你可能感兴趣


论文 | 土地覆盖变化矢量元胞自动机模型的适用性及敏感性分析

论文 | Temporal-VCA:耦合时序数据和矢量元胞自动机模拟城市土地利用变化

论文 | 基于矢量元胞自动机的特大城市精细尺度经济空间分布演变预测研究

软件 | UrbanVCA v2.2 : 基于真实矢量地块的城市土地利用变化模拟和预测系统

教学 | 矢量地块级模拟和分析软件集(UrbanVCA和VecLI)学习视频




UrbanComp位置智能和城市感知
中国地质大学(武汉)地理与信息工程学院姚尧老师课题组,UrbanComp@HPSCIL的科研发布公众号。研究方向为地理位置智能、时空数据挖掘和可计算城市科学。团队主页:https://www.urbancomp.net。
 最新文章