前言
上一篇中介绍了分区统计(zonal statistics)工具,但是没法实现按组进行统计。打个比方说,一个省内有多种土地覆盖类型,例如林地、草地、水体等等,如何统计一个省内不同土地覆盖类型的总量及其所占的比例,就需要用到**geemap.zonal_statistics_by_group()**函数。
1 导入库并显示地图
!pip install geemap #安装geemap库
!pip install pycrs
from google.colab import drive
drive.mount('/content/drive')
import ee
import geemap
import os
Map = geemap.Map()
Map
2 分析国家土地覆盖数据 (NLCD)
2.1 添加数据
dataset = ee.Image('USGS/NLCD_RELEASES/2019_REL/NLCD/2019')
landcover = ee.Image(dataset.select('landcover'))
Map.addLayer(landcover, {}, 'NLCD 2016')
states = ee.FeatureCollection("TIGER/2018/States")
Map.addLayer(states, {}, 'US States')
Map.add_legend(builtin_legend='NLCD') #添加图例
显示结果
2.2 计算各州的土地覆盖构成
out_dir = os.path.join(os.path.expanduser('~'), 'Downloads')
nlcd_stats = os.path.join(out_dir, 'nlcd_stats.csv')
if not os.path.exists(out_dir):
os.makedirs(out_dir)
# statistics_type can be either 'SUM' or 'PERCENTAGE' #可以统计的类型,总数或者比例
# denominator can be used to convert square meters to other areal units, such as square kilometers
# denominator:可用于将平方米转换为其他面积单位,例如平方公里
geemap.zonal_statistics_by_group(
landcover,
states,
nlcd_stats,
statistics_type='SUM',
denominator=1000000,
decimal_places=2,
)
geemap.create_download_link(nlcd_stats)
统计结果
后记
大家如果有地信遥感方面的问题需要请教或者有项目需要合作,可以在闲 鱼软件的用户中搜索:遥感GIS工作室,请认准头像,谢谢。