​​​​​​​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中获取需要进行分析的数据
#从Portal中检索landsat影像发布的影像服务
from IPython.display import display
landsatitems = gis.content.search('ndvisourceprj','Imagery Layer')
landsat = landsatitems[0].layers[0]# 过滤得到不同年份的数据
selected2000 = landsat.filter_by("Name='city2000prj'")
selected2015 = landsat.filter_by("Name='city2015prj'")

  • 第二步:计算不同年份的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)

原文链接:https://bbs.csdn.net/forums/gisrs?spm=1001.2014.3001.6682

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/529400.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型系列-GPT-3.5(ChatGPT)

文章目录 前言一、GPT-3.5的创新点二、GPT-3.5的训练流程SFT数据集RM数据集PPO数据集 三、ChatGPT的诞生总结 前言 《Training language models to follow instructions with human feedback,2022》 前文提到了GPT-3的缺点,其中最大的问题是&#xff1…

爬虫入门到精通_框架篇16(Scrapy框架基本使用_名人名言的抓取

1 目标站点分析 抓取网站:http://quotes.toscrape.com/ 主要显示了一些名人名言,以及作者、标签等等信息: 点击next,page变为2: 2 流程框架 抓取第一页:请求第一页的URL并得到源代码,进行下…

在用Java写算法的时候如何加快读写速度

对于解决该方法我们一般如下操作,不需要知道为什么,有模板(个人观点) 使用BufferedReader代替Scanner:Scanner类在读取大量输入时性能较差,而BufferedReader具有更高的读取速度。可以使用BufferedReader的r…

《C缺陷和陷阱》-笔记(4)

目录 一、边界计算与不对称边界 1.栏杆错误 2.程序简化 3.编写程序 4.移动字符 5.打印元素 二、求值顺序 一、边界计算与不对称边界 在C语言中,这个数组的下标范围是从0到9。一个拥有10个元素的数组中,它的元素的下标范围是从0到n-1。 例如&…

Buran勒索病毒通过Microsoft Excel Web查询文件进行传播

Buran勒索病毒首次出现在2019年5月,是一款新型的基于RaaS模式进行传播的新型勒索病毒,在一个著名的俄罗斯论坛中进行销售,与其他基于RaaS勒索病毒(如GandCrab)获得30%-40%的收入不同,Buran勒索病毒的作者仅占感染产生的25%的收入,…

网红老阳分享的蓝海赚钱项目,这三个真香!

在互联网经济飞速发展的当下,寻找蓝海项目成为了许多创业者和投资者的首要任务。近期,知名网红老阳分享了一些他认为具有巨大潜力的蓝海项目,其中包括RPO人力资源、视频号带货和Temu跨境电商。下面我们将对这三个项目进行详细解析。 老阳分享…

Python从0到100(三):Python中的变量介绍

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

MUMU模拟器12连logcat的方法

大家好,我是阿赵。   在开发手机游戏的时候,在真机上会出现各种问题,在查询问题的时候,安卓手机需要用adb连接来连接手机看logcat输出分析问题。但由于连接手机比较麻烦,所以我都习惯在电脑用安卓模拟器来测试。   …

代码随想录day17(3)二叉树:二叉树的中序遍历(leetcode94)

题目要求:实现二叉树的中序遍历。 思路:对于二叉树的中序遍历,通常可以使用递归算法与非递归(迭代)算法两种。 对于递归算法的处理与前序、后序基本相同,只是本次应先访问其左节点,然后进行pu…

Linux报错排查-CentOS/BigCloud_Enterprise_Linux系统yum安装kvm报错

Linux运维工具-ywtool 目录 一.系统环境二.问题描述三.问题解决四.其他命令 一.系统环境 系统版本:BigCloud_Enterprise_Linux 7.1 二.问题描述 通过yum安装kvm报错提示: /usr/bin/yum install -y qemu-kvm qemu-img libvirt libvirt-python virt-manager libvirt-client …

视频占用内存太大了怎么办 如何快速又无损的压缩视频 快来学习吧

视频文件太大是很多人在使用电脑或移动设备时经常遇到的问题。如果视频文件过大,不仅会占用过多的存储空间,还会让播放和传输变得困难。为了解决这个问题,我们需要学会如何缩小视频文件大小。那么如何缩小储存视频的大小呢?下面给…

【计算机网络_应用层】https协议——加密和窃密的攻防

文章目录 1.https协议的介绍2. 加密和解密2.1 什么是加密2.2 常见的加密方式2.2.1 对称加密2.2.2 非对称加密 2.3 数据摘要(数据指纹)2.4 数字签名 3. https协议的加密和解密方案一:使用对称加密(❌)方案二&#xff1a…