草庐IT

土地利用数据分类过程教学/土地利用分类/遥感解译/土地利用获取来源介绍/地理数据获取

遥感云 2023-07-07 原文

 本篇主要介绍如何对影像数据进行分类解译,及过程教学,示例数据下载链接:数据下载链接

更多GIS遥感教程,来源于地理遥感生态网

一、背景介绍
           土地是人类赖以生存与发展的重要资源和物质保障,在“人口-资源-环境-发展(PRED)”复合系统 中,土地资源处于基础地位。随着现代社会人口的不断增长以及工业化、城市化进程的加速,人类对土地资源的开发利用强度不断增大,对土地资源的不合理利用,导致了严重的水土流失和生态环境恶化,人类面临的土地利用问题较历史上任何时候都更为突出。土地利用现状分析是在土地利用现状调查的基础上进行的。通过对土地资源的数量与质量、结构与分布以及土地利用现状与开发潜力等方面的分析,明确规划区域内土地资源的整体优势与劣势、制约优势土地资源开发利用的主要因素,揭示土地利用中存在的问题,从而明确土地资源开发利用的方向和重点,提出改善土地利用、提高土地利用率和生产力的对策和途径,既可以发挥区域资源优势、强化区域土地系统功能,又强调人地协调发展的土地利用规划,为制定土地利用规划提供重要的科学依据。因此,进行土地利用现状分析,对促进土地利用结构的调整与优化、综合整治、保护土地、充分挖掘土地利用上的潜力以及保持国民经济的持续健康发展等都具有十分重要的意义。 

二、计算过程        

1.数据获取与数据准备

      本研究采用的遥感影像数据来自美国马里兰大学和中国科学院国际科学数据服务平台,均采用美国陆地卫星于1990年和2018年所拍摄的LandsatTM/ OLI30m遥感影像,云量均接近0%。本文的遥感影像成像时间不一致,根据瞬时状态下最大限度使图像上尽可能丰富地反映地表信息的原则,本次遥感调查主要选择5月下旬至6月中旬或8月下旬至9月中旬的图像,由于地物信息较清楚,由此带来的地物反射光谱差异显著,容易识别,影像解译比较容易。

2.数据预处理

      在对影像数据进行分类解译之前,首先要对数据做预处理工作,主要步骤有:

    (1)波段选择及融合

      本文采用最佳指数法(Optimum Index Factor,简称)和特征值法相结合,共同确定了最佳波段组合,也就是Landsat5-TM4、3、2波段,Landsat8-OLI5、4、3波段,分别赋予红、绿、蓝色作为标准假彩色合成的RGB波段。这一假彩色影像最关键的是突出了植被特征,并且能提供丰富的信息,能充分显示各种地物特征的差别,便于分类,可以保证分类的准确性。

    (2)图像几何校正与配准

      采用的Landsat系列图像已经在中国遥感卫星地面站进行过辐射校正和几何粗校正,但为了使研究结果更加的科学、可信,则必须的对影像进行几何精校正。几何精校正是利用地面控制点(Ground control Point,GPC)对由各种随机因素引起的遥感图像进行几何畸变的校正。本研究以研究区的地形图作为参考图像,必要时辅以实地考察的GPS点,采用多项式几何纠正计算模型,对遥感影像进行几何精校正。

    (3)图像增强处理

      传感器获取的遥感图像含有大量地物特征信息,在图像上这些特征信息以灰度形式表现出来,当地物特征间表现的灰度差很小时,目视判读就无法辨认,图像增强处理是的目的在于突出图像中有用的信息,扩大不同图像特征之间的差别,从而提高对图像的解译和分析能力。遥感数字图像增强处理一般可分为两大类:频域法和空间域法。本文主要采用空间域图像增强方法,其遵循视觉效果比较好、计算相对简单、合乎应用要求的原则。另外,在后面遥感图像分类的新波段变量构造部分还应用了NDVI指数以区分植被和非植被以提高分类精度。

    (4)影像拼接与裁剪

      本案例中的研究区域为西宁市,则遥感影像数据需要覆盖整个研究区,因此需要进行影像拼接,进行拼接时首先要参照某一遥感影像,将其它遥感影像进行直方图匹配处理,使得所有用到的遥感影像具有基本一致的色调,然后再将要用到的影像进行无缝的拼接处理,之后经过裁剪得到覆盖整个研究区的遥感影像。

3.分类方法

      本次服务是基于Landsat等遥感信息基础上,在多位专家的参与下,采用全数字人机交互作业方法,同时参照有关地理图件和统计资料,结合外业实地考察验证,对地物的几何形状,颜色特征、纹理特征和空间分布情况进行分析,并在综合各位专家意见后,建立遥感影像解译标志。在内业建立解译标志与实现数据获取的基础上,不断的对解译模板进行修改,直到修改的模板经过评价以后比较满意为止,以提高土地利用/覆盖类型精度。动态图斑数据主要采用“动态分割图斑法”。参照国内外现有土地利用/土地覆盖 的分类体系,结合本项目的开展的目的和要求以及遥感信息源的情况,制定了有6个一级分类,25个二级分类的土地利用/土地覆盖分类体系。

     在分类过程中,由于遥感图像自身的空间分辨率,同物异谱以及异物同谱现象广泛存在,所以错分和误分的情况很常见,因此对分类结果要做进一步的处理工作,也就是去除小图斑的工作,我们常称之为分类后处理。常用的分类后处理方法有:聚类统计(Clump)、过滤分析(Sieve)、去除分析(Eliminate)和分类重编码(Recode)等。

4.质量控制与检查

      各工序过程质量按要求进行过程检查 ,需100%检查。

     土地利用/覆盖数据抽样检查

      对获取的土地利用/覆盖数据产品进行空间抽样检查,验证土地利用/覆盖数据类型定性是否正确。验证的方式主要依靠高分影像(要考虑影像的时效性)与野外实地验证相结合的方式作业,未达到抽样精度90%的重新修正数据。

5.技术服务成果展示如下图

另附上获取30m土地利用数据获取来源:

1、地理遥感生态网

地理遥感生态网公布了1980年-2020年土地利用分类数据,精度有10m、30m、1000m。精度据官网介绍达到了92%精度。

2.地理空间数据云

(1)2000年全球土地覆盖计划(GLC2000)

(2)欧空局全球陆地覆盖数据(ESA GlobCover)

3.地理科学生态网

网站地址www.csdn.store

4.马里兰大学数据集

UMd基于AVHRR数据的5个波段及NDVI数据经过又一次组合建议数据矩阵,用分类树的方法进行了全球土地覆盖分类工作。其目的是希望建立一个比过去数据更高精度的数据集。

5.MCD12Q1.006 MODIS Land Cover Type

时间范围:2001-2020,MCD12Q1 V6 产品每年提供来自六种不同分类方案的全球土地覆盖类型。它是使用 MODIS Terra 和 Aqua 反射率数据的监督分类得出的。然后,受监督的分类经过额外的后处理,结合了先验知识和辅助信息,以进一步细化特定类别。

6.IGBP(国际地圈生物圈计划)

在大多的重要的、普遍使用的陆地数据集、土地覆盖数据不能满足一致的、长期的。如今的全球土地覆盖数据不管是在满足全球变化研究的须要方面,还是在满足各国或国际可行的资源管理规划方面都是不足的。在1992年法国图卢兹召开的IGBP工作会议上,讨论了IGBP核心科学计划对全球数据的需求,在IGBP-DIS的领导下对眼下的数据进行了评估,最后将LUCC作为其几个核心研究计划之首。与此同一时候。做出了用AVHRR数据制作全球1公里土地覆盖特征数据的建议,IGBP-DIS成立了土地覆盖工作组(LCWG)。启动了基于AVHRR的全球1公里土地覆盖数据项目,项目由U.S. Geological Survey (USGS),University of Nebraska-Lincoln (UNL), 内布拉斯加州林肯大学和欧洲联合研究中心承担。其目标是:採用USGS的方法,利用1992年四月到1992年三月的AVHRR数据开发出1km分辨率的全球土地覆盖数据集。分类系统採取IGBP制定的分类系统,把全球分为17类。

7.清华大学10m/30m数据下载

网站地址http://data.ess.tsinghua.edu.cn/

有关土地利用数据分类过程教学/土地利用分类/遥感解译/土地利用获取来源介绍/地理数据获取的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  3. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  4. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  5. ruby - 获取模块中定义的所有常量的值 - 2

    我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c

  6. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  7. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  8. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  9. ruby - 没有类方法获取 Ruby 类名 - 2

    如何在Ruby中获取BasicObject实例的类名?例如,假设我有这个:classMyObjectSystem我怎样才能使这段代码成功?编辑:我发现Object的实例方法class被定义为returnrb_class_real(CLASS_OF(obj));。有什么方法可以从Ruby中使用它? 最佳答案 我花了一些时间研究irb并想出了这个:classBasicObjectdefclassklass=class这将为任何从BasicObject继承的对象提供一个#class您可以调用的方法。编辑评论中要求的进一步解释:假设你有对象

  10. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

随机推荐