ARCGIS API for Python进行城市区域提取
作者:互联网
ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用、功能强大的Python库,以及大数据分析能力,可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化,同时提供对平台的空间数据管理和组织管理功能。本篇博客将和大家分享,使用ArcGIS API for Python进行城市区域提取的方法和流程。
数据准备:
不同时期的landsat影像
一、关于栅格函数
在前面的博客“环境镶嵌数据集的渲染模板使用”,“环境镶嵌数据集栅格函数使用(一)”中我们已经介绍了在镶嵌数据集上配置栅格函数以及发布的方法,我们也可以直接通过ArcGIS API for Python在客户端来使用栅格函数,ArcGIS API for Python包含了很多栅格函数和分析工具,如下图所示:编辑搜图编辑
二、城市区域提取的流程
城市区域提取的流程如下图所示:编辑搜图编辑
三、脚本实现过程
-
第一步:从portal中获取需要进行分析的数据
-
第二步:计算不同年份的NDVI并进行二值化处理
-
# 应用ndvi栅格函数生成不同年份ndvi
ndvi2000 = ndvi(selected2000,'4 3')
ndvi2015 = ndvi(selected2015,'4 3')
# ndvi二值化处理,设定阈值0,小于阈值为1表示裸地和水体,其余为0
ndvithreshold = 0
ndvi2000binarization = less_than([ndvi2000,ndvithreshold])*1+greater_than([ndvi2000,ndvithreshold])*0
ndvi2015binarization = less_than([ndvi2015,ndvithreshold])*1+greater_than([ndvi2015,ndvithreshold])*0
编辑搜图编辑
-
第三步:计算不同年份的NDBI并进行二值化处理
-
# 应用extract_band函数提取短波红外、近红外波段数据
swir = extract_band(selected2000,[5])
nearir = extract_band(selected2000,[4])
#计算不同年份的ndbi
ndbi2000 = FLOAT([swir-nearir])/FLOAT([swir+nearir])
ndbi2015 = FLOAT([extract_band(selected2015,[5])-extract_band(selected2015,[4])])/FLOAT([extract_band(selected2015,[5])+extract_band(selected2015,[4])])
#ndbi二值化处理,设定阈值0,小于阈值为0,其余为1表示城市建设区域和低密度植被覆盖裸地,可以调整阈值
ndbi2000binarization = less_than([ndbi2000,0])*0+greater_than([ndbi2000,0])*1
ndbi2015binarization = less_than([ndbi2015,0.1])*0+greater_than([ndbi2015,0.1])*1
编辑搜图编辑
-
第四步:城市建设用地提取
#生成不同年份的城市建设用地数据
citybuildinguse2000 = ndvi2000binarization * ndbi2000binarization
citybuildinguse2015 = ndvi2015binarization * ndbi2015binarization
#计算不同年份的城市建设用地变化
buildinguse_diff = (citybuildinguse2015 - citybuildinguse2000)
#变化结果重映射
threshold_val = 0.1
buildingusediff_remap = remap(buildinguse_diff,input_ranges=[threshold_val,1],output_values=[1],no_data_ranges=[-1,threshold_val],astype='u8')
#变化结果颜色映射
buildingusediff_colormap = colormap(buildingusediff_remap,colormap=[[1,124,252,0]],astype='u8')
#变化结果输出图片
from IPython.display import Image
dataextent = '11541010.6342307,3538686.96622601,11614210.6342307,3628986.96622601'
exportedimg = buildingusediff_colormap.export_image(bbox=dataextent,size=[1200,450],f='image')
Image(exportedimg)
编辑搜图编辑
欢迎大家留言,互相交流学习。
想了解ArcGIS最新的技术动态和最新的应用,请关注地理遥感生态网平台。
地理遥感生态网平台www.gisrs.cn主要由土地利用遥感监测数据、行政区划边界数据(行政村边界、乡镇街道边界、省市县边界)、气象数据(降雨量、气温、蒸散量、辐射、湿度、日照时数、风速、水汽压数据)、水文站点数据(径流量数据)、遥感数据(npp净初级生产力数据数据、NDVI数据、LAI叶面积指数、GPP初级生产力数据、地表温度LST数据、高精度遥感影像等)、土壤数据(土壤类型、土壤质地、土壤有机质、土壤PH值、土壤质地、土壤侵蚀、土壤NPK、土壤厚度土、土壤重金属含量分布、土壤含水量等)、POI兴趣点数据(餐饮服务、道路附属设施、地名地址信息、风景名胜、公共设施、公司企业、购物服务、交通设施服务、金融保险服务、科教文化服务、摩托车服务、汽车服务、汽车维修、汽车销售、商务住宅、生活服务、事件活动、体育休闲服务、通行设施、医疗保健服务、政府机构及社会团体、住宿服务等)、全国作物类型分布数据(大豆、玉米、水稻、甘蔗、小麦空间分布数据等)、生态系统服务空间数据集、中国湿地沼泽分类数据集、城市空气质量监测数据、中国水系流域空间分布数据集、中国道路空间分布数据、中国陆地生态系统类型分布数据、社会经济统计年鉴数据、中国GDP空间分布数据集、中国人口空间分布数据集、城市建筑轮廓空间分布数据、全国地质灾害空间分布数据(崩塌、塌陷、泥石流、地面沉降、地裂缝、滑坡、斜坡、地震等)、地质岩性分布图、地形地貌数字高程DEM数据(地貌类型矢量数据、12.5米高精度DEM数据等)、中国NDVI植被指数空间分布数据集、夜间灯光数据、三级流域矢量边界、植被类型分布、自然保护区分布、建筑轮廓分布等土地利用、生态环境、灾害监测、社会经济和气象气候系列数据。
ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用、功能强大的Python库,以及大数据分析能力,可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化,同时提供对平台的空间数据管理和组织管理功能。本篇博客将和大家分享,使用ArcGIS API for Python进行城市区域提取的方法和流程。
数据准备:
不同时期的landsat影像
一、关于栅格函数
在前面的博客“环境镶嵌数据集的渲染模板使用”,“环境镶嵌数据集栅格函数使用(一)”中我们已经介绍了在镶嵌数据集上配置栅格函数以及发布的方法,我们也可以直接通过ArcGIS API for Python在客户端来使用栅格函数,ArcGIS API for Python包含了很多栅格函数和分析工具,如下图所示:编辑搜图编辑
二、城市区域提取的流程
城市区域提取的流程如下图所示:编辑搜图编辑
三、脚本实现过程
-
第一步:从portal中获取需要进行分析的数据
-
第二步:计算不同年份的NDVI并进行二值化处理
-
# 应用ndvi栅格函数生成不同年份ndvi
ndvi2000 = ndvi(selected2000,'4 3')
ndvi2015 = ndvi(selected2015,'4 3')
# ndvi二值化处理,设定阈值0,小于阈值为1表示裸地和水体,其余为0
ndvithreshold = 0
ndvi2000binarization = less_than([ndvi2000,ndvithreshold])*1+greater_than([ndvi2000,ndvithreshold])*0
ndvi2015binarization = less_than([ndvi2015,ndvithreshold])*1+greater_than([ndvi2015,ndvithreshold])*0
编辑搜图编辑
-
第三步:计算不同年份的NDBI并进行二值化处理
-
# 应用extract_band函数提取短波红外、近红外波段数据
swir = extract_band(selected2000,[5])
nearir = extract_band(selected2000,[4])
#计算不同年份的ndbi
ndbi2000 = FLOAT([swir-nearir])/FLOAT([swir+nearir])
ndbi2015 = FLOAT([extract_band(selected2015,[5])-extract_band(selected2015,[4])])/FLOAT([extract_band(selected2015,[5])+extract_band(selected2015,[4])])
#ndbi二值化处理,设定阈值0,小于阈值为0,其余为1表示城市建设区域和低密度植被覆盖裸地,可以调整阈值
ndbi2000binarization = less_than([ndbi2000,0])*0+greater_than([ndbi2000,0])*1
ndbi2015binarization = less_than([ndbi2015,0.1])*0+greater_than([ndbi2015,0.1])*1
编辑搜图编辑
-
第四步:城市建设用地提取
#生成不同年份的城市建设用地数据
citybuildinguse2000 = ndvi2000binarization * ndbi2000binarization
citybuildinguse2015 = ndvi2015binarization * ndbi2015binarization
#计算不同年份的城市建设用地变化
buildinguse_diff = (citybuildinguse2015 - citybuildinguse2000)
#变化结果重映射
threshold_val = 0.1
buildingusediff_remap = remap(buildinguse_diff,input_ranges=[threshold_val,1],output_values=[1],no_data_ranges=[-1,threshold_val],astype='u8')
#变化结果颜色映射
buildingusediff_colormap = colormap(buildingusediff_remap,colormap=[[1,124,252,0]],astype='u8')
#变化结果输出图片
from IPython.display import Image
dataextent = '11541010.6342307,3538686.96622601,11614210.6342307,3628986.96622601'
exportedimg = buildingusediff_colormap.export_image(bbox=dataextent,size=[1200,450],f='image')
Image(exportedimg)
编辑搜图编辑
欢迎大家留言,互相交流学习。
想了解ArcGIS最新的技术动态和最新的应用,请关注地理遥感生态网平台。
地理遥感生态网平台www.gisrs.cn主要由土地利用遥感监测数据、行政区划边界数据(行政村边界、乡镇街道边界、省市县边界)、气象数据(降雨量、气温、蒸散量、辐射、湿度、日照时数、风速、水汽压数据)、水文站点数据(径流量数据)、遥感数据(npp净初级生产力数据数据、NDVI数据、LAI叶面积指数、GPP初级生产力数据、地表温度LST数据、高精度遥感影像等)、土壤数据(土壤类型、土壤质地、土壤有机质、土壤PH值、土壤质地、土壤侵蚀、土壤NPK、土壤厚度土、土壤重金属含量分布、土壤含水量等)、POI兴趣点数据(餐饮服务、道路附属设施、地名地址信息、风景名胜、公共设施、公司企业、购物服务、交通设施服务、金融保险服务、科教文化服务、摩托车服务、汽车服务、汽车维修、汽车销售、商务住宅、生活服务、事件活动、体育休闲服务、通行设施、医疗保健服务、政府机构及社会团体、住宿服务等)、全国作物类型分布数据(大豆、玉米、水稻、甘蔗、小麦空间分布数据等)、生态系统服务空间数据集、中国湿地沼泽分类数据集、城市空气质量监测数据、中国水系流域空间分布数据集、中国道路空间分布数据、中国陆地生态系统类型分布数据、社会经济统计年鉴数据、中国GDP空间分布数据集、中国人口空间分布数据集、城市建筑轮廓空间分布数据、全国地质灾害空间分布数据(崩塌、塌陷、泥石流、地面沉降、地裂缝、滑坡、斜坡、地震等)、地质岩性分布图、地形地貌数字高程DEM数据(地貌类型矢量数据、12.5米高精度DEM数据等)、中国NDVI植被指数空间分布数据集、夜间灯光数据、三级流域矢量边界、植被类型分布、自然保护区分布、建筑轮廓分布等土地利用、生态环境、灾害监测、社会经济和气象气候系列数据。
标签:分布,band,Python,数据,ARCGIS,API,栅格,extract,than 来源: https://www.cnblogs.com/gisrs-cn/p/16377968.html