政务服务网站的建设原则,电商运营怎么学,网站营销有哪些,使用下载的整站asp源代码建设自己的私人网站需要注意哪些ArcGIS API for Python主要用于Web端的扩展和开发#xff0c;提供简单易用、功能强大的Python库#xff0c;以及大数据分析能力#xff0c;可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化#xff0c;同时提供对平台的空间数据管理和组织管理功能… ArcGIS API for Python主要用于Web端的扩展和开发提供简单易用、功能强大的Python库以及大数据分析能力可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化同时提供对平台的空间数据管理和组织管理功能。本篇博客将和大家分享使用ArcGIS API for Python进行城市区域提取的方法和流程。
数据准备 不同时期的landsat影像
一、关于栅格函数 在前面的博客“环境镶嵌数据集的渲染模板使用”“环境镶嵌数据集栅格函数使用一”中我们已经介绍了在镶嵌数据集上配置栅格函数以及发布的方法我们也可以直接通过ArcGIS API for Python在客户端来使用栅格函数ArcGIS API for Python包含了很多栅格函数和分析工具如下图所示 二、城市区域提取的流程 城市区域提取的流程如下图所示 三、脚本实现过程
第一步从portal中获取需要进行分析的数据
#从Portal中检索landsat影像发布的影像服务
from IPython.display import display
landsatitems gis.content.search(ndvisourceprj,Imagery Layer)
landsat landsatitems[0].layers[0]# 过滤得到不同年份的数据
selected2000 landsat.filter_by(Namecity2000prj)
selected2015 landsat.filter_by(Namecity2015prj)第二步计算不同年份的NDVI并进行二值化处理 # 应用ndvi栅格函数生成不同年份ndvi
ndvi2000 ndvi(selected2000,4 3)
ndvi2015 ndvi(selected2015,4 3)# ndvi二值化处理设定阈值0小于阈值为1表示裸地和水体其余为0
ndvithreshold 0
ndvi2000binarization less_than([ndvi2000,ndvithreshold])*1greater_than([ndvi2000,ndvithreshold])*0
ndvi2015binarization less_than([ndvi2015,ndvithreshold])*1greater_than([ndvi2015,ndvithreshold])*0第三步计算不同年份的NDBI并进行二值化处理 # 应用extract_band函数提取短波红外、近红外波段数据
swir extract_band(selected2000,[5])
nearir extract_band(selected2000,[4])#计算不同年份的ndbi
ndbi2000 FLOAT([swir-nearir])/FLOAT([swirnearir])
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])*0greater_than([ndbi2000,0])*1
ndbi2015binarization less_than([ndbi2015,0.1])*0greater_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],astypeu8)#变化结果颜色映射
buildingusediff_colormap colormap(buildingusediff_remap,colormap[[1,124,252,0]],astypeu8)#变化结果输出图片
from IPython.display import Image
dataextent 11541010.6342307,3538686.96622601,11614210.6342307,3628986.96622601
exportedimg buildingusediff_colormap.export_image(bboxdataextent,size[1200,450],fimage)
Image(exportedimg)原文链接https://bbs.csdn.net/forums/gisrs?spm1001.2014.3001.6682