​​​​​​​ARCGIS API for Python进行城市区域提取

简介: ​​​​​​​ARCGIS API for Python进行城市区域提取

ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用、功能强大的Python库,以及大数据分析能力,可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化,同时提供对平台的空间数据管理和组织管理功能。本篇博客将和大家分享,使用ArcGIS API for Python进行城市区域提取的方法和流程。


数据准备:

不同时期的landsat影像

一、关于栅格函数

在前面的博客“环境镶嵌数据集的渲染模板使用”,“环境镶嵌数据集栅格函数使用(一)”中我们已经介绍了在镶嵌数据集上配置栅格函数以及发布的方法,我们也可以直接通过ArcGIS API for Python在客户端来使用栅格函数,ArcGIS API for Python包含了很多栅格函数和分析工具,如下图所示:

微信截图_20230111102511.png


二、城市区域提取的流程

城市区域提取的流程如下图所示:

微信截图_20230111102518.png


三、脚本实现过程

  • 第一步:从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

微信截图_20230111102524.png


  • 第三步:计算不同年份的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
  • 微信截图_20230111102533.png

  • 第四步:城市建设用地提取


#生成不同年份的城市建设用地数据

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)

微信截图_20230111102542.png


欢迎大家留言,互相交流学习。

想了解ArcGIS最新的技术动态和最新的应用,请关注地理遥感生态网平台。

地理遥感生态网平台http://www.gisrs.cn主要由土地利用遥感监测数据、行政区划边界数据(行政村边界、乡镇街道边界、省市县边界)、气象数据(降雨量、气温、蒸散量、辐射、湿度、日照时数、风速、水汽压数据)、水文站点数据(径流量数据)、遥感数据(npp净初级生产力数据数据、NDVI数据、LAI叶面积指数、GPP初级生产力数据、地表温度LST数据、高精度遥感影像等)、土壤数据(土壤类型、土壤质地、土壤有机质、土壤PH值、土壤质地、土壤侵蚀、土壤NPK、土壤厚度土、土壤重金属含量分布、土壤含水量等)、POI兴趣点数据(餐饮服务、道路附属设施、地名地址信息、风景名胜、公共设施、公司企业、购物服务、交通设施服务、金融保险服务、科教文化服务、摩托车服务、汽车服务、汽车维修、汽车销售、商务住宅、生活服务、事件活动、体育休闲服务、通行设施、医疗保健服务、政府机构及社会团体、住宿服务等)、全国作物类型分布数据(大豆、玉米、水稻、甘蔗、小麦空间分布数据等)、生态系统服务空间数据集、中国湿地沼泽分类数据集、城市空气质量监测数据、中国水系流域空间分布数据集、中国道路空间分布数据、中国陆地生态系统类型分布数据、社会经济统计年鉴数据、中国GDP空间分布数据集、中国人口空间分布数据集、城市建筑轮廓空间分布数据、全国地质灾害空间分布数据(崩塌、塌陷、泥石流、地面沉降、地裂缝、滑坡、斜坡、地震等)、地质岩性分布图、地形地貌数字高程DEM数据(地貌类型矢量数据、12.5米高精度DEM数据等)、中国NDVI植被指数空间分布数据集、夜间灯光数据、三级流域矢量边界、植被类型分布、自然保护区分布、建筑轮廓分布等土地利用、生态环境、灾害监测、社会经济和气象气候系列数据。

相关文章
|
1天前
|
JSON 安全 API
如何高效编写API接口:以Python与Flask为例
构建RESTful API的简明教程:使用Python的Flask框架,从环境准备(安装Python,设置虚拟环境,安装Flask)到编写首个API(包括获取用户列表和单个用户信息的路由)。运行API服务器并测试在`http://127.0.0.1:5000/users`。进阶话题包括安全、数据库集成、API文档生成和性能优化。【6月更文挑战第27天】
17 7
|
2天前
|
JSON 数据可视化 API
技术心得:如何用Python和API收集与分析网络数据?
技术心得:如何用Python和API收集与分析网络数据?
10 2
|
26天前
|
人工智能 自然语言处理 API
利用Python调用KimiGPT API接口
Kimi作为国内目前广受欢迎的AI工具,因其出色的性能和智能功能,迅速赢得了大量用户的青睐。随着用户量的激增,系统在高峰时段可能会面临响应压力。正是借助这一热潮,Kimi团队适时推出了其API服务,使用户和开发者能够更加灵活和深入地集成和使用Kimi的智能功能。
|
2月前
|
存储 监控 API
使用Python构建一个简单的RESTful API
使用Python构建一个简单的RESTful API
36 3
|
2月前
|
API Python
使用Python构建简单的RESTful API
使用Python构建简单的RESTful API
25 1
|
12天前
|
数据采集 机器学习/深度学习 搜索推荐
Python第一章(图片与API接口)
Python第一章(图片与API接口)
|
18天前
|
关系型数据库 MySQL API
用Python一键艺龙酒店各个城市数据存入mysql
用Python一键艺龙酒店各个城市数据存入mysql
|
2月前
|
应用服务中间件 API nginx
使用Python和Flask构建RESTful Web API
使用Python和Flask构建RESTful Web API
37 0
|
8天前
|
机器学习/深度学习 人工智能 前端开发
Python中的模块化编程
【6月更文挑战第17天】Python模块化编程与软件架构设计的关键在于拆分任务到独立模块,提高代码的可维护性、可重用性和可扩展性。例如,学生管理系统可分解为录入、查询和删除模块。MVC和MVVM架构模式有助于组织代码,而微服务和函数式编程将在未来发展中扮演重要角色。通过示例代码,读者能学习如何实现这些概念,提升项目开发效率和质量。
155 57
|
15天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!