1 数据介绍

Esri_Land_Cover_2020_10m数据来源是Esri公司,基于10m哨兵影像数据,使用深度学习方法制作做的全球土地覆盖数据。该数据集一共分类十类,分别如下所示:

更多介绍参考【10米ESRI土地覆盖数据介绍与下载教程】。

2 数据处理

首先下载全球的esri土地覆盖文件,在此基础上操作。

2.1 找出中国范围的分块

2.1.1 生成影像边界框

根据影像范围生成影像的边界框shp,便于筛选。python代码如下。 这里使用pyshp创建矢量,pyshp需要是1.2.3版本。

# python3
from osgeo import gdal, osr, ogr
import os
import shapefile
# pyshp需要是1.2.3版本: pip install pyshp==1.2.3
from tqdm import tqdmdef tifbound(tifpath, shppath):"""生成一个tif的边框,保存到一个shp:param tifpath::param shppath::return:"""# 1 读取影像坐标点和投影ds = gdal.Open(tifpath)geo_transform = ds.GetGeoTransform()proj = ds.GetProjection()srs = osr.SpatialReference()srs.ImportFromWkt(proj)X, Y = ds.RasterXSize, ds.RasterYSizexres, yres = geo_transform[1], geo_transform[-1]x0, y0 = geo_transform[0], geo_transform[3]x1, y1 = x0 + X * xres, y0x2, y2 = x0 + X * xres, y0 + yres * Yx3, y3 = x0, y0 + yres * Yx4, y4 = x0, y0# 2 写出到矢量"""using pyshp create shpfile(1) type:You can reference shape types by the numbers or by constants defined by PyShp:shapefile.NULL = 0 shapefile.POINT = 1 shapefile.POLYLINE = 3 shapefile.POLYGON = 5shapefile.MULTIPOINT = 8 shapefile.POINTZ = 11 shapefile.POLYLINEZ = 13 shapefile.POLYGONZ = 15shapefile.MULTIPOINTZ = 18 shapefile.POINTM = 21 shapefile.POLYLINEM = 23 shapefile.POLYGONM = 25shapefile.MULTIPOINTM = 28 shapefile.MULTIPATCH = 31'''(2) field settingField name: the name describing the data at this column index.Field type: the type of data at this column index. Types can be: Character, Numbers, Longs, Dates, or Memo. The “Memo” type has no meaning within a GIS and is part of the xbase spec instead.Field length: the length of the data found at this column index. Older GIS software may truncate this length to 8 or 11 characters for “Character” fields.Decimal length: the number of decimal places found in “Number” fields."""w = shapefile.Writer(shapeType=5)# 设置字段,最大长度为254,C为字符串w.field('FIRST_FLD')w.field('SECOND_FLD', 'C', '40')# 添加几何和添加字段信息,添加两个示例,字段顺序区分先后w.poly([[[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4]]])w.record('First', os.path.basename(tifpath))# 保存w.save(shppath)# 设置投影,通过.prj文件设置,需要写入一个wkt字符串# 影像的投影直接写出wkt = srs.ExportToWkt()# 写出prj文件f = open(shppath.replace(".shp", ".prj"), 'w')f.write(wkt)f.close()ds = Noneif __name__ == '__main__':tifFolder = r"D:\dem\NPP\ESRI_2020_全球\esritif"shpFolder = r"D:\dem\NPP\ESRI_2020_全球\shps"tifs = [i for i in os.listdir(tifFolder) if i.endswith(".tif")]for tif in tqdm(tifs):tifpath = os.path.join(tifFolder, tif)shppath = os.path.join(shpFolder, tif[:-4] + ".shp")tifbound(tifpath,shppath)

2.1.2 根据矢量找到影像

中国范围的utm投影分带是43-53带,在arcgis中筛选出需要的影像。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKOcB3Z3-1640256149366)(https://gitee.com/kingbird0/picgorep/raw/master/picbed/2021-12-21-1640050774244.png)]

获取arcgis左侧数据库下的需要的图层 ,下面的代码需要在arcgis中运行

mxd = arcpy.mapping.MapDocument('current')
dfs = arcpy.mapping.ListDataFrames(mxd)
df = dfs[0]
lyrs= arcpy.mapping.ListLayers(mxd,"",df)
for lyr in lyrs:print('"'+lyr.name+'.tif'+'",')

2.2 投影转换

原始的数据为utm投影,转换为wgs84地理坐标。投影转换在arcigis中运行。将覆盖中国范围的文件名复制到tifs变量中。 转投影这一步比较慢,晚上睡觉的时候运行比较划算。

# -*- coding:utf-8 -*-
# arcgis中运行
import arcpy
import os
import sys
from arcpy import envarcpy.env.overwriteOutput = True
arcpy.env.addOutputsToMap = False
# global tif folder path
path = ur"D:\dem\NPP\ESRI_2020_全球\esritif"
outpath = ur"D:\dem\NPP\ESRI_2020_全球\wgs84"
if not os.path.exists(outpath):os.makedirs(outpath)tifs=["53U_20200101-20210101.tif",
"53T_20200101-20210101.tif",
"52U_20200101-20210101.tif",
"52R_20200101-20210101.tif",
"52S_20200101-20210101.tif",
"52T_20200101-20210101.tif",
"51U_20200101-20210101.tif",
"51N_20200101-20210101.tif",
"51P_20200101-20210101.tif",
"51Q_20200101-20210101.tif",
"51R_20200101-20210101.tif",
"51S_20200101-20210101.tif",
"51T_20200101-20210101.tif",
"43T_20200101-20210101.tif",
"43S_20200101-20210101.tif",
"44R_20200101-20210101.tif",
"44S_20200101-20210101.tif",
"44T_20200101-20210101.tif",
"45R_20200101-20210101.tif",
"45S_20200101-20210101.tif",
"45T_20200101-20210101.tif",
"45U_20200101-20210101.tif",
"46T_20200101-20210101.tif",
"46R_20200101-20210101.tif",
"46S_20200101-20210101.tif",
"47Q_20200101-20210101.tif",
"47R_20200101-20210101.tif",
"47S_20200101-20210101.tif",
"47T_20200101-20210101.tif",
"48P_20200101-20210101.tif",
"48Q_20200101-20210101.tif",
"48R_20200101-20210101.tif",
"48S_20200101-20210101.tif",
"48T_20200101-20210101.tif",
"49N_20200101-20210101.tif",
"49P_20200101-20210101.tif",
"49Q_20200101-20210101.tif",
"49R_20200101-20210101.tif",
"49S_20200101-20210101.tif",
"49T_20200101-20210101.tif",
"50N_20200101-20210101.tif",
"50P_20200101-20210101.tif",
"50Q_20200101-20210101.tif",
"50R_20200101-20210101.tif",
"50S_20200101-20210101.tif",
"50T_20200101-20210101.tif",
"50U_20200101-20210101.tif"]
arcpy.env.pyramid = "None"
for tif in tifs:intif = os.path.join(path,tif)outtif = os.path.join(outpath,tif[:-4]+"wgs.tif")sr = arcpy.SpatialReference(4326)arcpy.ProjectRaster_management(intif, outtif,sr, "NEAREST", "0.0000833333333333333333")

2.3 拼接

推荐使用python的gma库来拼接,速度快,效果好。
介绍参考。

3 数据展示

4 数据获取

公众号【老王GIS】回复关键词:esri2020c,按照提示获取。全程无套路。

esri土地覆盖全国拼接相关推荐

  1. Esri发布新的2050年全球土地覆盖预测地图

    Esri与克拉克实验室携手合作,为全球用户带来可预测并显示未来30年变化的地图   加州雷德兰兹--(美国商业资讯)--全球智能定位领域的领导者Esri今日宣布,公司将发布新版高分辨率2050年全球土 ...

  2. Esri发布包含最新全球数据集的新版土地覆盖地图

    Esri的ArcGIS Living Atlas of the World现已提供2017–2021年高分辨率地图 加州雷德兰兹--(美国商业资讯)--世界各地的政府和企业都在承诺采取更可持续.更公平 ...

  3. 土地覆盖/土地利用简介及数据集

    1 简介 土地覆盖:地球表面当前所具有的自然和人为影响所形成的覆盖物,是地球表面的自然状态,如森林.草场.农田.土壤.冰川.湖泊.沼泽湿地及道路等. 土地利用:是人类在生产活动中为达到一定的经济效益. ...

  4. 统计多个研究区多年土地覆盖变化教程

    引言 GEE,google earth engine,是一个地理数据的云计算平台,可以快速.批量处理数据. 我想统计一下自己的家乡,四川省乐至县,这十几年的各乡镇土地覆盖变化情况.考虑到本地计算需要进 ...

  5. 数据分享|中低分辨率土地覆盖数据

    中国1:100万植被数据集 介绍 本数据集详细反映了我国11个植被类型组.54个植被型的796个群系和亚群系植被单位的分布状况.水平地带性和垂直地带性分布规律,同时反映了我国2000多个植物优势种.主 ...

  6. 2021-10-24全球10米土地覆盖数据任意下载

    前段时间,Esri对外公布了全球10米土地覆盖数据,该数据利用欧洲航天局(ESA)的Sentinel-2卫星影像绘制而成.用户可以通过ArcGIS Living Atlas 中的 Web 服务直接访问 ...

  7. 【ArcGIS风暴】根据海拔(坡度)范围分级统计土地覆盖的类型和面积(兰州市GlobeLand30m数据为例)

    本文基于DEM和GlobeLand30m土地覆盖数据,讲解根据海拔范围和坡度范围分级逐级统计兰州市土地覆盖的类型和面积. 一.数据准备 1. DEM数据 海拔和坡度分级都要基于dem来实现.文中采用的 ...

  8. 【ArcGIS风暴】ArcGIS创建栅格数据集色彩映射表案例--以GlobeLand30土地覆盖数据为例

    矢量数据快速符号化,可以将常用的样式保存到样式符号库,栅格数据快速符号化,需要创建色彩映射表.本文以GlobeLand30土地覆盖数据为例,详解ArcGIS中创建与使用色彩映射表. 文章目录 一. A ...

  9. 关于地理数据收集与处理的基本工具推荐(2)---10m精度的全球土地覆盖数据下载

    10m分辨率土地覆盖数据下载 上期说到了高分辨率影像数据的下载,这一期来说说土地利用方式的下载方式. 土地利用数据的重要性就不用多说了,2019年之前的能公开的土地利用数据也就是30m的,也算是非常高 ...

最新文章

  1. 软件项目中的需求分析具体方法探讨之一
  2. IDEA IntelliJ 如何新建一个不用任何框架的web项目
  3. Redis中使用Java代码的方式实现发布订阅流程
  4. 最近使用的两个工具 winscp和xshell
  5. 查询hive表_大数据中Hive与HBase的区别与联系
  6. python 菜单 阻塞 其它程序_Python subprocess.call阻塞
  7. 句句真研—每日长难句打卡Day15
  8. 文件分片_文件分片上传原理解析
  9. 【SONiC Testbed —setup】Virtual Switch Testbed Setup
  10. [leetcode] 935 Knight Dialer 骑士拨号器
  11. 笔记本同时接入无线(外网)和有线(内网)
  12. PAT_乙级_1007_筱筱
  13. 光合作用9月五星推荐图书
  14. linux 查看环境变量和修改环境变量
  15. 激活win10管理员身份
  16. BGP机房的基本概念
  17. 删除字符串中所有的空格
  18. mysql兼容微信表情
  19. IC失效分析芯片测试
  20. SpringBoot 整合zxing生成或解析二维码

热门文章

  1. Typecho清新风格响应式网站主题-织音
  2. 排序 —— 希尔排序
  3. 计算机里有什么游戏,电脑上都有哪些游戏
  4. 编程判断输入的字符串是否是回文串。其中判断字符串是否为回文串要用函数实现。
  5. HTML期末大作业~ 大话西游之大圣娶亲电影4页面 ~学生网页设计作业源码(HTML+CSS+JS)...
  6. 权限系统设计及RBAC模型
  7. SourceCount代码统计工具使用
  8. 基于TensorFlow的CNN卷积网络模型花卉分类(1)
  9. SKIL/安装/Kubernetes
  10. Object.assign()是深拷贝还是浅拷贝?